From 4875e508ae70985338a3f757540dd5c6f70d954e Mon Sep 17 00:00:00 2001
From: Peter van 't Hof <p.j.van_t_hof@lumc.nl>
Date: Fri, 18 Sep 2015 14:41:29 +0200
Subject: [PATCH] Add input files to pipelines

---
 .../nl/lumc/sasc/biopet/pipelines/bamtobigwig/Bam2Wig.scala  | 1 +
 .../lumc/sasc/biopet/pipelines/bammetrics/BamMetrics.scala   | 3 ++-
 .../nl/lumc/sasc/biopet/pipelines/basty/BastyTrait.scala     | 2 ++
 .../scala/nl/lumc/sasc/biopet/core/extensions/CheckMd5.scala | 5 +++++
 .../main/scala/nl/lumc/sasc/biopet/pipelines/carp/Carp.scala | 4 ++++
 .../nl/lumc/sasc/biopet/pipelines/gentrap/Gentrap.scala      | 2 ++
 .../main/scala/nl/lumc/sasc/biopet/pipelines/sage/Sage.scala | 2 ++
 .../scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala  | 1 +
 8 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/public/bam2wig/src/main/scala/nl/lumc/sasc/biopet/pipelines/bamtobigwig/Bam2Wig.scala b/public/bam2wig/src/main/scala/nl/lumc/sasc/biopet/pipelines/bamtobigwig/Bam2Wig.scala
index 451350227..c0935d99c 100644
--- a/public/bam2wig/src/main/scala/nl/lumc/sasc/biopet/pipelines/bamtobigwig/Bam2Wig.scala
+++ b/public/bam2wig/src/main/scala/nl/lumc/sasc/biopet/pipelines/bamtobigwig/Bam2Wig.scala
@@ -35,6 +35,7 @@ class Bam2Wig(val root: Configurable) extends QScript with BiopetQScript {
   var bamFile: File = null
 
   def init(): Unit = {
+    inputFiles :+= InputFile(bamFile)
   }
 
   def biopetScript(): Unit = {
diff --git a/public/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetrics.scala b/public/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetrics.scala
index 24b0a29b1..04a16c80b 100644
--- a/public/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetrics.scala
+++ b/public/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetrics.scala
@@ -71,7 +71,8 @@ class BamMetrics(val root: Configurable) extends QScript with SummaryQScript wit
   }
 
   /** executed before script */
-  def init() {
+  def init(): Unit = {
+    inputFiles :+= InputFile(inputBam)
   }
 
   /** Script to add jobs */
diff --git a/public/basty/src/main/scala/nl/lumc/sasc/biopet/pipelines/basty/BastyTrait.scala b/public/basty/src/main/scala/nl/lumc/sasc/biopet/pipelines/basty/BastyTrait.scala
index 1990085ce..a2a1f8328 100644
--- a/public/basty/src/main/scala/nl/lumc/sasc/biopet/pipelines/basty/BastyTrait.scala
+++ b/public/basty/src/main/scala/nl/lumc/sasc/biopet/pipelines/basty/BastyTrait.scala
@@ -89,6 +89,8 @@ trait BastyTrait extends MultiSampleQScript {
     addAll(shiva.functions)
     addSummaryQScript(shiva)
 
+    inputFiles :::= shiva.inputFiles
+
     addSamplesJobs()
   }
 
diff --git a/public/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/extensions/CheckMd5.scala b/public/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/extensions/CheckMd5.scala
index 002d6f9d9..72222b25e 100644
--- a/public/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/extensions/CheckMd5.scala
+++ b/public/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/extensions/CheckMd5.scala
@@ -21,6 +21,11 @@ class CheckMd5 extends InProcessFunction {
   @Argument(required = true)
   var md5sum: String = _
 
+  override def freezeFieldValues(): Unit = {
+    super.freezeFieldValues()
+    jobOutputFile = new File(md5file.getParentFile, md5file.getName + ".check.out")
+  }
+
   /** Exits whenever the input md5sum is not the same as the output md5sum */
   def run: Unit = {
     val outputMd5sum = WriteSummary.parseChecksum(md5file).toLowerCase
diff --git a/public/carp/src/main/scala/nl/lumc/sasc/biopet/pipelines/carp/Carp.scala b/public/carp/src/main/scala/nl/lumc/sasc/biopet/pipelines/carp/Carp.scala
index fcb9aa3e6..8302ea982 100644
--- a/public/carp/src/main/scala/nl/lumc/sasc/biopet/pipelines/carp/Carp.scala
+++ b/public/carp/src/main/scala/nl/lumc/sasc/biopet/pipelines/carp/Carp.scala
@@ -78,6 +78,10 @@ class Carp(val root: Configurable) extends QScript with MultiSampleQScript with
         if (config.contains("R1")) {
           mapping.input_R1 = config("R1")
           if (config.contains("R2")) mapping.input_R2 = config("R2")
+
+          inputFiles :+= InputFile(mapping.input_R1, config("R1_md5"))
+          mapping.input_R2.foreach(inputFiles :+= InputFile(_, config("R2_md5")))
+
           mapping.init()
           mapping.biopetScript()
           addAll(mapping.functions)
diff --git a/public/gentrap/src/main/scala/nl/lumc/sasc/biopet/pipelines/gentrap/Gentrap.scala b/public/gentrap/src/main/scala/nl/lumc/sasc/biopet/pipelines/gentrap/Gentrap.scala
index c50075708..d033594c6 100644
--- a/public/gentrap/src/main/scala/nl/lumc/sasc/biopet/pipelines/gentrap/Gentrap.scala
+++ b/public/gentrap/src/main/scala/nl/lumc/sasc/biopet/pipelines/gentrap/Gentrap.scala
@@ -844,6 +844,8 @@ class Gentrap(val root: Configurable) extends QScript
       def addJobs(): Unit = {
         // create per-library alignment file
         addAll(mappingJob.functions)
+        // Input file checking
+        inputFiles :::= mappingJob.inputFiles
         // add bigwig track
         addAll(bam2wigModule.functions)
         qscript.addSummaryQScript(mappingJob)
diff --git a/public/sage/src/main/scala/nl/lumc/sasc/biopet/pipelines/sage/Sage.scala b/public/sage/src/main/scala/nl/lumc/sasc/biopet/pipelines/sage/Sage.scala
index 4aaee19c2..202c19095 100644
--- a/public/sage/src/main/scala/nl/lumc/sasc/biopet/pipelines/sage/Sage.scala
+++ b/public/sage/src/main/scala/nl/lumc/sasc/biopet/pipelines/sage/Sage.scala
@@ -88,6 +88,8 @@ class Sage(val root: Configurable) extends QScript with MultiSampleQScript {
       mapping.sampleId = Some(sampleId)
 
       protected def addJobs(): Unit = {
+        inputFiles :+= InputFile(inputFastq, config("R1_md5"))
+
         flexiprep.outputDir = new File(libDir, "flexiprep/")
         flexiprep.input_R1 = inputFastq
         flexiprep.init()
diff --git a/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala b/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala
index 606853f93..57089b2ee 100644
--- a/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala
+++ b/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala
@@ -35,6 +35,7 @@ class Toucan(val root: Configurable) extends QScript with BiopetQScript with Sum
   var inputVCF: File = _
 
   def init(): Unit = {
+    inputFiles :+= InputFile(inputVCF)
   }
 
   override def defaults = ConfigUtils.mergeMaps(Map(
-- 
GitLab