From 944b9af0d38f0484bb63e9c20665ff2fadc7c18d Mon Sep 17 00:00:00 2001
From: Peter van 't Hof <p.j.van_t_hof@lumc.nl>
Date: Tue, 3 Feb 2015 11:51:23 +0100
Subject: [PATCH] Added addMultisampleJobs method

---
 .../sasc/biopet/core/MultiSampleQScript.scala   | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala
index 478a26aa0..0857be0ef 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala
@@ -26,7 +26,7 @@ import org.broadinstitute.gatk.utils.commandline.{ Argument }
  */
 trait MultiSampleQScript extends BiopetQScript {
   @Argument(doc = "Only Sample", shortName = "sample", required = false)
-  val onlySample: List[String] = Nil
+  private val onlySamples: List[String] = Nil
 
   require(Config.global.map.contains("samples"), "No Samples found in config")
 
@@ -94,7 +94,7 @@ trait MultiSampleQScript extends BiopetQScript {
     protected def addJobs()
 
     /** function add all libraries in one call */
-    protected final def addLibsJobs(): Unit = {
+    protected final def addPerLibJobs(): Unit = {
       for ((libraryId, library) <- libraries) {
         library.addAndTrackJobs()
       }
@@ -128,14 +128,21 @@ trait MultiSampleQScript extends BiopetQScript {
   protected def sampleIds: Set[String] = ConfigUtils.any2map(Config.global.map("samples")).keySet
 
   /** Runs addAndTrackJobs method for each sample */
-  final def addSamplesJobs() {
-    if (onlySample.isEmpty) samples.foreach { case (sampleId, sample) => sample.addAndTrackJobs() }
-    else onlySample.foreach(sampleId => samples.get(sampleId) match {
+  final def addPerSampleJobs() {
+    if (onlySamples.isEmpty) {
+      samples.foreach { case (sampleId, sample) => sample.addAndTrackJobs() }
+      addMultiSampleJobs()
+    } else onlySamples.foreach(sampleId => samples.get(sampleId) match {
       case Some(sample) => sample.addAndTrackJobs()
       case None         => logger.warn("sampleId '" + sampleId + "' not found")
     })
   }
 
+  /**
+   * Method where the multisample jobs should be added, this will be executed only when running the -sample argument is not given
+   */
+  def addMultiSampleJobs()
+
   /** Stores sample state */
   private var currentSample: Option[String] = None
 
-- 
GitLab