From 991903f55acf74199a2e76eae25b4f6ed0ee5593 Mon Sep 17 00:00:00 2001
From: Peter van 't Hof <p.j.van_t_hof@lumc.nl>
Date: Wed, 4 Jun 2014 14:50:52 +0200
Subject: [PATCH] Marked temp files as intermediate

---
 .../pipelines/flexiprep/Flexiprep.scala       | 49 +++++++++++--------
 1 file changed, 28 insertions(+), 21 deletions(-)

diff --git a/flexiprep/src/main/java/nl/lumc/sasc/biopet/pipelines/flexiprep/Flexiprep.scala b/flexiprep/src/main/java/nl/lumc/sasc/biopet/pipelines/flexiprep/Flexiprep.scala
index 1a0173d49..a06465661 100644
--- a/flexiprep/src/main/java/nl/lumc/sasc/biopet/pipelines/flexiprep/Flexiprep.scala
+++ b/flexiprep/src/main/java/nl/lumc/sasc/biopet/pipelines/flexiprep/Flexiprep.scala
@@ -56,24 +56,18 @@ class Flexiprep(private var globalConfig: Config) extends QScript with BiopetQSc
     init()
     runInitialFastqc()
     
-    outputFiles += ("output_R1" -> zcatIfNeeded(input_R1,outputDir))
-    if (paired) outputFiles += ("output_R2" -> zcatIfNeeded(input_R2,outputDir))
+    outputFiles += ("fastq_input_R1" -> zcatIfNeeded(input_R1,outputDir))
+    if (paired) outputFiles += ("fastq_input_R2" -> zcatIfNeeded(input_R2,outputDir))
     
-    addSeqstat(outputFiles("output_R1"), "seqstat_R1")
-    if (paired) addSeqstat(outputFiles("output_R2"), "seqstat_qc_R2")
+    addSeqstat(outputFiles("fastq_input_R1"), "seqstat_R1")
+    if (paired) addSeqstat(outputFiles("fastq_input_R2"), "seqstat_R2")
     
-    addSha1sum(outputFiles("output_R1"), "sha1_R1")
-    if (paired) addSha1sum(outputFiles("output_R2"), "sha1_R2")
+    addSha1sum(outputFiles("fastq_input_R1"), "sha1_R1")
+    if (paired) addSha1sum(outputFiles("fastq_input_R2"), "sha1_R2")
+    
+    if (paired) runTrimClip(outputFiles("fastq_input_R1"), outputFiles("fastq_input_R2"), outputDir)
+    else runTrimClip(outputFiles("fastq_input_R1"), outputDir)
     
-    var results: Map[String,File] = Map()
-    if (paired) {
-      results = runTrimClip(outputFiles("output_R1"), outputFiles("output_R2"), outputDir)
-      outputFiles += ("output_R1" -> results("output_R1"))
-      outputFiles += ("output_R2" -> results("output_R2"))
-    } else {
-      results = runTrimClip(outputFiles("output_R1"), outputDir)
-      outputFiles += ("output_R1" -> results("output_R1"))
-    }
     runFinalize(List(outputFiles("output_R1")), List(outputFiles("output_R2")))
   }
   
@@ -110,10 +104,16 @@ class Flexiprep(private var globalConfig: Config) extends QScript with BiopetQSc
     return fastqcToContams.out
   }
   
-  def runTrimClip(R1_in:File, outDir:String) : Map[String,File] = {
-    return runTrimClip(R1_in, new File(""), outDir)
+  def runTrimClip(R1_in:File, outDir:String, chunk:String) {
+    runTrimClip(R1_in, new File(""), outDir, chunk)
+  }
+  def runTrimClip(R1_in:File, outDir:String) {
+    runTrimClip(R1_in, new File(""), outDir, "")
+  }
+  def runTrimClip(R1_in:File, R2_in:File, outDir:String) {
+    runTrimClip(R1_in, R2_in, outDir, "")
   }
-  def runTrimClip(R1_in:File, R2_in:File, outDir:String) : Map[String,File] = {
+  def runTrimClip(R1_in:File, R2_in:File, outDir:String, chunk:String) {
     var results: Map[String,File] = Map()
 
     var R1: File = new File(R1_in)
@@ -121,6 +121,7 @@ class Flexiprep(private var globalConfig: Config) extends QScript with BiopetQSc
     
     if (!skipClip) { // Adapter clipping
       val cutadapt_R1 = new Cutadapt(config) {
+        if (!skipTrim || paired) this.isIntermediate = true
         this.fastq_input = R1
         this.fastq_output = swapExt(outDir, R1, R1_ext, ".clip"+R1_ext)
         if (outputFiles.contains("contams_R1")) this.contams_file = outputFiles("contams_R1")
@@ -129,6 +130,7 @@ class Flexiprep(private var globalConfig: Config) extends QScript with BiopetQSc
       R1 = cutadapt_R1.fastq_output
       if (paired) {
         val cutadapt_R2 = new Cutadapt(config) {
+          if (!skipTrim || paired) this.isIntermediate = true
           this.fastq_input = R2
           this.fastq_output = swapExt(outDir, R2, R2_ext, ".clip"+R2_ext)
           if (outputFiles.contains("contams_R2")) this.contams_file = outputFiles("contams_R2")
@@ -136,6 +138,7 @@ class Flexiprep(private var globalConfig: Config) extends QScript with BiopetQSc
         add(cutadapt_R2)
         R2 = cutadapt_R2.fastq_output
         val fastqSync = new FastqSync(config) {
+          if (!skipTrim) this.isIntermediate = true
           this.input_start_fastq = cutadapt_R1.fastq_input
           this.input_R1 = cutadapt_R1.fastq_output
           this.input_R2 = cutadapt_R2.fastq_output
@@ -144,6 +147,7 @@ class Flexiprep(private var globalConfig: Config) extends QScript with BiopetQSc
           this.output_stats = swapExt(outDir, R1, R1_ext, ".sync.stats")
         }
         add(fastqSync)
+        outputFiles += ("syncStats" -> fastqSync.output_stats)
         R1 = fastqSync.output_R1
         R2 = fastqSync.output_R2
       }
@@ -154,10 +158,12 @@ class Flexiprep(private var globalConfig: Config) extends QScript with BiopetQSc
         this.input_R1 = R1
         this.output_R1 = swapExt(outDir, R1, R1_ext, ".trim"+R1_ext)
         if (outputFiles.contains("qualtype_R1")) this.qualityTypeFile = outputFiles("qualtype_R1")
+        if (!skipClip) this.deps :+= outputFiles(chunk + "fastq_input_R1")
         if (paired) {
           this.input_R2 = R2
           this.output_R2 = swapExt(outDir, R2, R2_ext, ".trim"+R2_ext)
           this.output_singles = swapExt(outDir, R2, R2_ext, ".trim.singles"+R1_ext)
+          if (!skipClip) this.deps :+= outputFiles(chunk + "fastq_input_R2")
         }
         this.output_stats = swapExt(outDir, R1, R1_ext, ".trim.stats")
       }
@@ -166,9 +172,8 @@ class Flexiprep(private var globalConfig: Config) extends QScript with BiopetQSc
       if (paired) R2 = sickle.output_R2
     }
     
-    results += ("output_R1" -> R1)
-    if (paired) results += ("output_R2" -> R2)
-    return results
+    outputFiles += ("output_R1" -> R1)
+    if (paired) outputFiles += ("output_R2" -> R2)
   }
   
   def runFinalize(fastq_R1:List[File], fastq_R2:List[File]) {
@@ -239,6 +244,8 @@ class Flexiprep(private var globalConfig: Config) extends QScript with BiopetQSc
       val zcatCommand = new Zcat(config)
       zcatCommand.in = file
       zcatCommand.out = new File(runDir + newFile)
+      //zcatCommand.jobOutputFile = outputDir + "." + file.getName + ".out"
+      if (!this.skipClip || !this.skipTrim) zcatCommand.isIntermediate = true
       add(zcatCommand)
       return zcatCommand.out
     } else return file
-- 
GitLab