From 11f01f92cd17c5c975978db69e31cada0084c0b9 Mon Sep 17 00:00:00 2001
From: Peter van 't Hof <p.j.van_t_hof@lumc.nl>
Date: Mon, 3 Aug 2015 11:19:19 +0200
Subject: [PATCH] Review changes to kraken

---
 .../biopet/extensions/kraken/Kraken.scala     | 61 ++++++++-----------
 1 file changed, 26 insertions(+), 35 deletions(-)

diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/kraken/Kraken.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/kraken/Kraken.scala
index 89d72249a..da53b6841 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/kraken/Kraken.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/kraken/Kraken.scala
@@ -28,6 +28,15 @@ class Kraken(val root: Configurable) extends BiopetCommandLineFunction {
   @Input(doc = "Input: FastQ or FastA")
   var input: List[File] = _
 
+  @Output(doc = "Unidentified reads", required = false)
+  var unclassified_out: Option[File] = None
+
+  @Output(doc = "Identified reads", required = false)
+  var classified_out: Option[File] = None
+
+  @Output(doc = "Output with hits per sequence")
+  var output: File = _
+
   var db: File = config("db")
 
   var inputFastQ: Boolean = true
@@ -36,55 +45,37 @@ class Kraken(val root: Configurable) extends BiopetCommandLineFunction {
   var compressionBzip: Boolean = false
 
   var quick: Boolean = false
-  var min_hits: Option[Int] = config("min_hits")
-
-  @Output(doc = "Unidentified reads", required = false)
-  var unclassified_out: Option[File] = None
-  @Output(doc = "Identified reads", required = false)
-  var classified_out: Option[File] = None
+  var minHits: Option[Int] = config("min_hits")
 
-  @Output(doc = "Output with hits per sequence")
-  var output: File = _
-  var preload: Boolean = config("preload", default = true)
+  var preLoad: Boolean = config("preload", default = true)
   var paired: Boolean = config("paired", default = false)
 
   executable = config("exe", default = "kraken")
   override def versionRegex = """Kraken version ([\d\w\-\.]+)\n.*""".r
   override def versionExitcode = List(0, 1)
+  override def versionCommand = executable + " --version"
 
   override def defaultCoreMemory = 8.0
   override def defaultThreads = 4
 
-  override def versionCommand = executable + " --version"
-
   /** Sets readgroup when not set yet */
   override def beforeGraph(): Unit = {
     super.beforeGraph()
+    //FIXME: This does not do anything
   }
 
   /** Returns command to execute */
-  def cmdLine = {
-    var cmd: String = required(executable) +
-      "--db" + required(db) +
-      optional("--threads", nCoresRequest) +
-      conditional(inputFastQ, "--fastq-input") +
-      conditional(!inputFastQ, "--fasta-input") +
-      conditional(quick, "--quick")
-
-    min_hits match {
-      case Some(v) => cmd += "--min_hits " + v
-      case _       => cmd += ""
-    }
-
-    cmd += optional("--unclassified-out ", unclassified_out.get) +
-      optional("--classified-out ", classified_out.get) +
-      "--output" + required(output) +
-      conditional(preload, "--preload") +
-      conditional(paired, "--paired")
-
-    // finally the input files (R1 [R2])
-    cmd += input.mkString(" ")
-
-    cmd
-  }
+  def cmdLine = required(executable) +
+    "--db" + required(db) +
+    optional("--threads", nCoresRequest) +
+    conditional(inputFastQ, "--fastq-input") +
+    conditional(!inputFastQ, "--fasta-input") +
+    conditional(quick, "--quick") +
+    optional("--min_hits", minHits) +
+    optional("--unclassified-out ", unclassified_out.get) +
+    optional("--classified-out ", classified_out.get) +
+    "--output" + required(output) +
+    conditional(preLoad, "--preload") +
+    conditional(paired, "--paired") +
+    repeat(input)
 }
-- 
GitLab