diff --git a/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala b/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala index 81f81f26aafed8ba2126217acec768232077084d..231d8240b05382746e19624ab5170c81f3344dc2 100644 --- a/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala +++ b/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala @@ -13,12 +13,11 @@ trait MultiSampleQScript extends BiopetQScript { def getLibrary(key: String) = libraries(key) } - var samplesConfig: Map[String, Any] = Map() + var samplesConfig: Map[String, Any] = config("samples") var samplesOutput: Map[String, SampleOutput] = Map() def globalSampleDir: String = outputDir + "samples/" final def runSamplesJobs() { - samplesConfig = config("samples") if (samplesConfig == null) samplesConfig = Map() if (Config.global.contains("samples")) for ((key, value) <- samplesConfig) { var sample = Configurable.any2map(value) @@ -32,7 +31,11 @@ trait MultiSampleQScript extends BiopetQScript { def runSingleSampleJobs(sampleConfig: Map[String, Any]): SampleOutput def runSingleSampleJobs(sample: String): SampleOutput = { - return runSingleSampleJobs(Configurable.any2map(samplesConfig(sample))) + var map = Configurable.any2map(samplesConfig(sample)) + if (map.contains("ID") && map("ID") != sample) + throw new IllegalStateException("ID in config not the same as the key") + else map += ("ID" -> sample) + return runSingleSampleJobs(map) } final def runLibraryJobs(sampleConfig: Map[String, Any]): Map[String, LibraryOutput] = { diff --git a/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/pipelines/gatk/GatkPipeline.scala b/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/pipelines/gatk/GatkPipeline.scala index c5bb656d039e5bb2b9b19792d03f7a7d2cfaa75c..fda10eb8723ad20f2bc9af75dbf9444e12da32f5 100644 --- a/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/pipelines/gatk/GatkPipeline.scala +++ b/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/pipelines/gatk/GatkPipeline.scala @@ -18,7 +18,7 @@ class GatkPipeline(val root: Configurable) extends QScript with MultiSampleQScri def this() = this(null) @Argument(doc = "Only Sample", shortName = "sample", required = false) - val onlySample: String = "" + val onlySample: List[String] = Nil @Argument(doc = "Skip Genotyping step", shortName = "skipgenotyping", required = false) var skipGenotyping: Boolean = false @@ -115,7 +115,7 @@ class GatkPipeline(val root: Configurable) extends QScript with MultiSampleQScri recalibration.biopetScript } } - } else runSingleSampleJobs(onlySample) + } else for (sample <- onlySample) runSingleSampleJobs(sample) } // Called for each sample