diff --git a/biopet-tools-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/tools/MergeOtuMaps.scala b/biopet-tools-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/tools/MergeOtuMaps.scala index d7abf1a8f04520febfbd122cb8883732d86586d9..7cdb85288d36e7124f83a0dc9d2518384d4381af 100644 --- a/biopet-tools-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/tools/MergeOtuMaps.scala +++ b/biopet-tools-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/tools/MergeOtuMaps.scala @@ -31,9 +31,14 @@ class MergeOtuMaps(val root: Configurable) extends ToolCommandFunction { @Output(doc = "Output", shortName = "output", required = true) var output: File = _ + var skipPrefix: List[String] = config("skip_prefix", default = Nil) + override def defaultCoreMemory = 6.0 - override def cmdLine = super.cmdLine + repeat("-I", input) + required("-o", output) + override def cmdLine = super.cmdLine + + repeat("-I", input) + + required("-o", output) + + repeat("-p", skipPrefix) } diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeOtuMaps.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeOtuMaps.scala index 989d7d9a8a6bd53cae624f5ab7eeff23cbae5db1..0a2a49c0030154d3e7e3263018ae07eae4650777 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeOtuMaps.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeOtuMaps.scala @@ -24,7 +24,9 @@ import scala.io.Source * Created by pjvan_thof on 12/18/15. */ object MergeOtuMaps extends ToolCommand { - case class Args(inputFiles: List[File] = Nil, outputFile: File = null) extends AbstractArgs + case class Args(inputFiles: List[File] = Nil, + outputFile: File = null, + skipPrefix: List[String] = Nil) extends AbstractArgs class OptParser extends AbstractOptParser { opt[File]('I', "input") minOccurs 2 required () unbounded () valueName "" action { (x, c) => @@ -33,6 +35,9 @@ object MergeOtuMaps extends ToolCommand { opt[File]('o', "output") required () unbounded () maxOccurs 1 valueName "" action { (x, c) => c.copy(outputFile = x) } + opt[String]('p', "skipPrefix") unbounded () valueName "" action { (x, c) => + c.copy(skipPrefix = x :: c.skipPrefix) + } } /** @@ -40,23 +45,24 @@ object MergeOtuMaps extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) + val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) - var map: Map[Long, String] = Map() + var map: Map[String, String] = Map() - for (inputFile <- commandArgs.inputFiles) { + for (inputFile <- cmdArgs.inputFiles) { logger.info(s"Start reading $inputFile") val reader = Source.fromFile(inputFile) reader.getLines().foreach { line => val values = line.split("\t", 2) - val key = values.head.toLong - map += key -> (line.stripPrefix(s"$key") + map.getOrElse(key, "")) + val key = values.head + if (!cmdArgs.skipPrefix.exists(key.startsWith)) + map += key -> (line.stripPrefix(s"$key") + map.getOrElse(key, "")) } reader.close() } - logger.info(s"Start writing to ${commandArgs.outputFile}") - val writer = new PrintWriter(commandArgs.outputFile) + logger.info(s"Start writing to ${cmdArgs.outputFile}") + val writer = new PrintWriter(cmdArgs.outputFile) map.foreach { case (key, list) => writer.println(key + list) } writer.close() } diff --git a/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/Gears.scala b/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/Gears.scala index 696eb315c4a7920d4dc063a023b6f56fb79e713e..5673960bc5f8a181c94cc15be0f0ce986c53c160 100644 --- a/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/Gears.scala +++ b/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/Gears.scala @@ -37,6 +37,8 @@ class Gears(val root: Configurable) extends QScript with MultiSampleQScript { qs Some(gearsReport) } + override def defaults = Map("mergeotumaps" -> Map("skip_prefix" -> "New.")) + override def fixedValues = Map("gearssingle" -> Map("skip_flexiprep" -> true)) /** Init for pipeline */ diff --git a/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala b/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala index e74051fb357037865130563eaba23f4f3ce34d45..d28668c484e60ce3aaf781fb974fffd16651477e 100644 --- a/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala +++ b/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsReport.scala @@ -43,7 +43,6 @@ object GearsReport extends MultisampleReportBuilder { val qiimeOpenOtuTable = summary.getValue("gears", "files", "pipeline", "qiime_open_otu_table", "path") .map(x => new File(x.toString)) - ReportPage( (if (krakenExecuted) List("Kraken analysis" -> ReportPage(List(), List( "Krona plot" -> ReportSection("/nl/lumc/sasc/biopet/pipelines/gears/krakenKrona.ssp"