diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJson.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJson.scala
index 1dde5ba87f257ac9ce78463c881be8880a5d8dc1..ad5f07c98d32564e592f14b0a65fcf01f30c0bc2 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJson.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJson.scala
@@ -44,7 +44,7 @@ object SamplesTsvToJson extends ToolCommand {
     println(jsonString)
   }
 
-  def mapFromFile(inputFile: File) : Map[String, Any] = {
+  def mapFromFile(inputFile: File): Map[String, Any] = {
     val reader = Source.fromFile(inputFile)
     val lines = reader.getLines().toList.filter(!_.isEmpty)
     val header = lines.head.split("\t")
@@ -78,7 +78,7 @@ object SamplesTsvToJson extends ToolCommand {
     librariesValues.foldLeft(Map[String, Any]())((acc, kv) => mergeMaps(acc, kv))
   }
 
-  def stringFromInputs(inputs: List[File]) : String = {
+  def stringFromInputs(inputs: List[File]): String = {
     val map = inputs.map(f => mapFromFile(f)).foldLeft(Map[String, Any]())((acc, kv) => mergeMaps(acc, kv))
     mapToJson(map).spaces2
   }
diff --git a/public/biopet-framework/src/test/resources/test.summary.json b/public/biopet-framework/src/test/resources/test.summary.json
new file mode 100644
index 0000000000000000000000000000000000000000..aff9e962e4662f9f76f4a53f2a8fe0557ecb92d4
--- /dev/null
+++ b/public/biopet-framework/src/test/resources/test.summary.json
@@ -0,0 +1,17 @@
+{
+  "samples" : {
+    "016" : {
+      "libraries" : {
+        "L001" : {
+          "flexiprep" : {
+            "settings" : {
+              "skip_trim" : false,
+              "skip_clip" : false,
+              "paired" : true
+            }
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/MpileupToVcfTest.scala b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/MpileupToVcfTest.scala
index 6f6fef89bcf752d442b647083d437e438351553d..032f9a913373c0f3be617e45cc26a928ca69821d 100644
--- a/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/MpileupToVcfTest.scala
+++ b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/MpileupToVcfTest.scala
@@ -13,7 +13,6 @@ import org.testng.annotations.Test
 
 import scala.collection.JavaConversions._
 
-
 /**
  * Created by ahbbollen on 27-8-15.
  */
@@ -52,7 +51,7 @@ class MpileupToVcfTest extends TestNGSuite with MockitoSugar with Matchers {
   @Test
   def extraValidateOutVcf() = {
     val tmp = File.createTempFile("mpileup", ".vcf")
-    val args = Array("-I", pileup, "--sample", "test", "-o", tmp.getAbsolutePath, "--minDP", "1" ,"--minAP", "1")
+    val args = Array("-I", pileup, "--sample", "test", "-o", tmp.getAbsolutePath, "--minDP", "1", "--minAP", "1")
     main(args)
 
     val vcfReader = new VCFFileReader(tmp, false)
diff --git a/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/PrefixFastqTest.scala b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/PrefixFastqTest.scala
index 7f85dc9f8e65a3d7bddf75e91df69d168e9f5221..41db9e3ae268a62860fd3fbe9a27e4430165429e 100644
--- a/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/PrefixFastqTest.scala
+++ b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/PrefixFastqTest.scala
@@ -11,7 +11,6 @@ import org.testng.annotations.Test
 
 import scala.collection.JavaConversions._
 
-
 /**
  * Created by ahbbollen on 28-8-15.
  */
@@ -41,7 +40,7 @@ class PrefixFastqTest extends TestNGSuite with MockitoSugar with Matchers {
 
     val reader = new FastqReader(temp)
 
-    for (read <- reader.iterator()){
+    for (read <- reader.iterator()) {
       read.getReadString.startsWith("AAA") shouldBe true
     }
   }
diff --git a/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJsonTest.scala b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJsonTest.scala
index 5a21bafa17d3f97fd36332db6949b1630f2f8bec..6fba307e38a25d3eb6c6c8b78e2afe8af93553ac 100644
--- a/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJsonTest.scala
+++ b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJsonTest.scala
@@ -8,7 +8,6 @@ import org.scalatest.mock.MockitoSugar
 import org.scalatest.testng.TestNGSuite
 import org.testng.annotations.Test
 
-
 /**
  * Created by ahbbollen on 28-8-15.
  */
@@ -28,22 +27,22 @@ class SamplesTsvToJsonTest extends TestNGSuite with MockitoSugar with Matchers {
   @Test
   def testNoSampleColumn() = {
     val tsv = resourcePath("/no_sample.tsv")
-    val thrown = the [IllegalStateException] thrownBy main(Array("-i", tsv))
-    thrown.getMessage should equal ("Sample column does not exist in: "  + tsv)
+    val thrown = the[IllegalStateException] thrownBy main(Array("-i", tsv))
+    thrown.getMessage should equal("Sample column does not exist in: " + tsv)
   }
 
   @Test
   def testNumberInLibs = {
     val tsv = resourcePath("/number.tsv")
-    val thrown = the [IllegalStateException] thrownBy main(Array("-i", tsv))
-    thrown.getMessage should equal ("Sample or library may not start with a number")
+    val thrown = the[IllegalStateException] thrownBy main(Array("-i", tsv))
+    thrown.getMessage should equal("Sample or library may not start with a number")
   }
 
   @Test
   def testSampleIDs = {
     val tsv = resourcePath("/same.tsv")
-    val thrown = the [IllegalStateException] thrownBy main(Array("-i", tsv))
-    thrown.getMessage should equal ("Combination of Sample_ID_1 and Lib_ID_1 is found multiple times")
+    val thrown = the[IllegalStateException] thrownBy main(Array("-i", tsv))
+    thrown.getMessage should equal("Combination of Sample_ID_1 and Lib_ID_1 is found multiple times")
 
   }
 
@@ -52,7 +51,7 @@ class SamplesTsvToJsonTest extends TestNGSuite with MockitoSugar with Matchers {
     val tsv = new File(resourcePath("/sample.tsv"))
     val json = stringFromInputs(List(tsv))
 
-    json should equal (
+    json should equal(
       """|{
         |  "samples" : {
         |    "Sample_ID_1" : {
@@ -73,6 +72,4 @@ class SamplesTsvToJsonTest extends TestNGSuite with MockitoSugar with Matchers {
         |}""".stripMargin)
   }
 
-
-
 }
diff --git a/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/SummaryToTsvTest.scala b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/SummaryToTsvTest.scala
new file mode 100644
index 0000000000000000000000000000000000000000..5bf947eb0c5a515ce6980c060328c7e3a5eaa61f
--- /dev/null
+++ b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/SummaryToTsvTest.scala
@@ -0,0 +1,73 @@
+package nl.lumc.sasc.biopet.tools
+
+import java.io.File
+import java.nio.file.Paths
+
+import nl.lumc.sasc.biopet.tools.SamplesTsvToJson._
+import org.scalatest.Matchers
+import org.scalatest.mock.MockitoSugar
+import org.scalatest.testng.TestNGSuite
+import org.testng.annotations.Test
+
+import nl.lumc.sasc.biopet.core.summary.Summary
+
+
+/**
+ * Created by ahbbollen on 31-8-15.
+ */
+class SummaryToTsvTest extends TestNGSuite with MockitoSugar with Matchers {
+  import SummaryToTsv._
+  private def resourcePath(p: String): String = {
+    Paths.get(getClass.getResource(p).toURI).toString
+  }
+
+  @Test
+  def testMain = {
+    val tsv = resourcePath("/test.summary.json")
+
+    noException should be thrownBy main(Array("-s", tsv, "-p", "something=flexiprep:settings:skip_trim",
+      "-m", "root"))
+    noException should be thrownBy main(Array("-s", tsv, "-p", "something=flexiprep:settings:skip_trim",
+      "-m", "sample"))
+    noException should be thrownBy main(Array("-s", tsv, "-p", "something=flexiprep:settings:skip_trim",
+      "-m", "lib"))
+  }
+
+  @Test
+  def testHeader  = {
+    val tsv = resourcePath("/test.summary.json")
+    val path = List("something=flexiprep:settings:skip_trim")
+
+    val paths = path.map(x => {
+      val split = x.split("=", 2)
+      split(0) -> split(1).split(":")
+    }).toMap
+
+    createHeader(paths) should equal("\tsomething")
+  }
+
+  @Test
+  def testLine = {
+    val tsv = resourcePath("/test.summary.json")
+    val path = List("something=flexiprep:settings:skip_trim")
+
+    val paths = path.map(x => {
+      val split = x.split("=", 2)
+      split(0) -> split(1).split(":")
+    }).toMap
+
+    val summary = new Summary(new File(tsv))
+    val values = fetchValues(summary, paths)
+
+    val line = values.head._2.keys.map(x => createLine(paths, values, x)).head
+    line should equal("value\t")
+    val sample_values = fetchValues(summary, paths, true, false)
+    val sample_line = sample_values.head._2.keys.map(x => createLine(paths, sample_values, x)).head
+    sample_line should equal("016\t")
+
+    val lib_values = fetchValues(summary, paths, false, true)
+    val lib_line = lib_values.head._2.keys.map(x => createLine(paths, lib_values, x)).head
+    lib_line should equal("016-L001\tfalse")
+  }
+
+}