From 4818d27652c5c7bb941e5612652bc3d44bc41c29 Mon Sep 17 00:00:00 2001 From: Peter van 't Hof <p.j.van_t_hof@lumc.nl> Date: Sun, 15 May 2016 16:19:51 +0200 Subject: [PATCH] Added config for each genome --- .../generateindexes/GenerateIndexes.scala | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/generate-indexes/src/main/scala/nl/lumc/sasc/biopet/pipelines/generateindexes/GenerateIndexes.scala b/generate-indexes/src/main/scala/nl/lumc/sasc/biopet/pipelines/generateindexes/GenerateIndexes.scala index a2c02fa8f..2fa39920c 100644 --- a/generate-indexes/src/main/scala/nl/lumc/sasc/biopet/pipelines/generateindexes/GenerateIndexes.scala +++ b/generate-indexes/src/main/scala/nl/lumc/sasc/biopet/pipelines/generateindexes/GenerateIndexes.scala @@ -42,9 +42,7 @@ class GenerateIndexes(val root: Configurable) extends QScript with BiopetQScript var referenceConfig: Map[String, Any] = null - var configDeps: List[File] = Nil - - def outputConfigFile = new File(outputDir, "reference.json") + protected var configDeps: List[File] = Nil /** This is executed before the script starts */ def init(): Unit = { @@ -59,6 +57,7 @@ class GenerateIndexes(val root: Configurable) extends QScript with BiopetQScript val speciesConfig = ConfigUtils.any2map(c) val speciesDir = new File(outputDir, speciesName) for ((genomeName, c) <- speciesConfig) yield genomeName -> { + var configDeps: List[File] = Nil val genomeConfig = ConfigUtils.any2map(c) val fastaUris = genomeConfig.getOrElse("fasta_uri", throw new IllegalArgumentException(s"No fasta_uri found for $speciesName - $genomeName")) match { @@ -246,6 +245,18 @@ class GenerateIndexes(val root: Configurable) extends QScript with BiopetQScript "bowtie_index" -> bowtie2Index.reference.getAbsolutePath.stripSuffix(".fa").stripSuffix(".fasta") ) + add(new InProcessFunction { + @Input val deps: List[File] = configDeps + + @Output val out: File = new File(genomeDir, s"$speciesName-$genomeName.json") + + def run: Unit = { + val writer = new PrintWriter(out) + writer.println(ConfigUtils.mapToJson(Map("references" -> Map(speciesName -> Map(genomeName -> outputConfig)))).spaces2) + writer.close() + } + }) + this.configDeps :::= configDeps outputConfig } } @@ -253,10 +264,10 @@ class GenerateIndexes(val root: Configurable) extends QScript with BiopetQScript add(new InProcessFunction { @Input val deps: List[File] = configDeps - @Output val out = outputConfigFile + @Output val out = new PrintWriter(outputDir, "references.json") def run: Unit = { - val writer = new PrintWriter(outputConfigFile) + val writer = new PrintWriter(out) writer.println(ConfigUtils.mapToJson(Map("references" -> outputConfig)).spaces2) writer.close() } -- GitLab