From 4b8c95f6411ad24430743c9313b3ef108adac13e Mon Sep 17 00:00:00 2001
From: Wai Yi Leung <w.y.leung@lumc.nl>
Date: Thu, 12 Feb 2015 15:12:38 +0100
Subject: [PATCH] Fix RPKM directory path from config

---
 .../scala/nl/lumc/sasc/biopet/extensions/Ln.scala |  5 +++++
 .../biopet/pipelines/kopisu/ConiferPipeline.scala | 15 ++++++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Ln.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Ln.scala
index 394ad5cdd..4bcaea82d 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Ln.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Ln.scala
@@ -32,6 +32,11 @@ class Ln(val root: Configurable) extends InProcessFunction with Configurable {
 
   var relative: Boolean = true
 
+  override def freezeFieldValues(): Unit = {
+    jobOutputFile = new File(out.getParent + File.separator + "." + out.getName + "." + this.analysisName + ".out")
+    super.freezeFieldValues()
+  }
+
   lazy val cmd: String = {
     lazy val inCanonical: String = {
       // need to remove "/~" to correctly expand path with tilde
diff --git a/public/kopisu/src/main/scala/nl/lumc/sasc/biopet/pipelines/kopisu/ConiferPipeline.scala b/public/kopisu/src/main/scala/nl/lumc/sasc/biopet/pipelines/kopisu/ConiferPipeline.scala
index c45de4eac..54926853c 100644
--- a/public/kopisu/src/main/scala/nl/lumc/sasc/biopet/pipelines/kopisu/ConiferPipeline.scala
+++ b/public/kopisu/src/main/scala/nl/lumc/sasc/biopet/pipelines/kopisu/ConiferPipeline.scala
@@ -15,7 +15,7 @@
  */
 package nl.lumc.sasc.biopet.pipelines.kopisu
 
-import java.io.{ BufferedWriter, FileWriter, File }
+import java.io.{ FileFilter, BufferedWriter, FileWriter, File }
 
 import nl.lumc.sasc.biopet.core.{ PipelineCommand, _ }
 import nl.lumc.sasc.biopet.core.config._
@@ -86,11 +86,16 @@ class ConiferPipeline(val root: Configurable) extends QScript with BiopetQScript
     if (!RPKMonly) {
       /** Collect the rpkm_output to a temp directory, where we merge with the control files */
       var refRPKMlist: List[File] = Nil
-      for (f <- controlsDir.listFiles()) {
-        var target = new File(RPKMdir + File.separator + f.getName)
+      // Sync the .txt only, these files contain the RPKM Values
+      for (controlRPKMfile <- controlsDir.list.filter(_.toLowerCase.endsWith(".txt"))) {
+        val target = new File(RPKMdir + File.separator + controlRPKMfile.getName)
+        val source = new File(controlsDir + File.separator + controlRPKMfile)
         if (!target.exists()) {
-          logger.info("Creating " + target.getAbsolutePath)
-          add(Ln(this, f, target, true))
+          add(Ln(this, source, target, false))
+          refRPKMlist :+= target
+        } else if (!target.equals(source)) {
+          target.delete()
+          add(Ln(this, source, target, false))
           refRPKMlist :+= target
         }
       }
-- 
GitLab