diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/BiopetQScript.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/BiopetQScript.scala index 374ba068fb576e26b7f1fa33eaf1896c3ff36f63..1a3f565880dc3a2bd5450efd86cfa188e647eef4 100644 --- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/BiopetQScript.scala +++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/BiopetQScript.scala @@ -17,7 +17,7 @@ package nl.lumc.sasc.biopet.core import java.io.File import java.io.PrintWriter -import nl.lumc.sasc.biopet.core.config.{ Config, Configurable } +import nl.lumc.sasc.biopet.core.config.{ ConfigValueIndex, Config, Configurable } import org.broadinstitute.gatk.utils.commandline.Argument import org.broadinstitute.gatk.queue.QSettings import org.broadinstitute.gatk.queue.function.QFunction @@ -29,7 +29,14 @@ trait BiopetQScript extends Configurable with GatkLogging { @Argument(doc = "JSON config file(s)", fullName = "config_file", shortName = "config", required = false) val configfiles: List[File] = Nil - var outputDir: String = _ + var outputDir: String = { + val temp = Config.getValueFromMap(Config.global.map, ConfigValueIndex(this.configName, configPath, "output_dir")) + if (temp.isEmpty) throw new IllegalArgumentException("No output_dir defined in config") + else { + val t = temp.get.value.toString + if (!t.endsWith("/")) t + "/" else t + } + } @Argument(doc = "Disable all scatters", shortName = "DSC", required = false) var disableScatter: Boolean = false diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala index 2579be01565cbf92d08519dee02e8ae568000c9f..e6d43d5a3b0bdc86d8900e8926032a0496cac7b9 100644 --- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala +++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/core/MultiSampleQScript.scala @@ -108,7 +108,7 @@ trait MultiSampleQScript extends BiopetQScript { def createFile(suffix: String) = new File(sampleDir, sampleId + suffix) /** Returns sample directory */ - def sampleDir = outputDir + "samples" + File.pathSeparator + sampleId + File.pathSeparator + def sampleDir = outputDir + "samples" + File.separator + sampleId + File.separator } /** Sample type, need implementation in pipeline */ @@ -130,7 +130,8 @@ trait MultiSampleQScript extends BiopetQScript { } /** - * Runs addAndTrackJobs method for each sample */ + * Runs addAndTrackJobs method for each sample + */ final def addSamplesJobs() { for ((sampleId, sample) <- samples) { sample.addAndTrackJobs() diff --git a/public/carp/src/main/scala/nl/lumc/sasc/biopet/pipelines/carp/Carp.scala b/public/carp/src/main/scala/nl/lumc/sasc/biopet/pipelines/carp/Carp.scala index df58ab964cab259f1cdf8c22cf4a2970f5c87a87..47e892ab987176c9260942b82a12c0ec3da71aed 100644 --- a/public/carp/src/main/scala/nl/lumc/sasc/biopet/pipelines/carp/Carp.scala +++ b/public/carp/src/main/scala/nl/lumc/sasc/biopet/pipelines/carp/Carp.scala @@ -80,6 +80,8 @@ class Carp(val root: Configurable) extends QScript with MultiSampleQScript { merge.sortOrder = "coordinate" merge.output = bamFile add(merge) + + //TODO: Add BigWIg track } val macs2 = new Macs2CallPeak(qscript) @@ -103,13 +105,13 @@ class Carp(val root: Configurable) extends QScript with MultiSampleQScript { addSamplesJobs for ((sampleId, sample) <- samples) { - for (control <- sample.controls) { - if (!samples.contains(control)) - throw new IllegalStateException("For sample: " + sampleId + " this control: " + control + " does not exist") + for (controlId <- sample.controls) { + if (!samples.contains(controlId)) + throw new IllegalStateException("For sample: " + sampleId + " this control: " + controlId + " does not exist") val macs2 = new Macs2CallPeak(this) macs2.treatment = sample.bamFile - macs2.control = samples(control).bamFile - macs2.name = sample + "_VS_" + control + macs2.control = samples(controlId).bamFile + macs2.name = sampleId + "_VS_" + controlId macs2.outputdir = sample.sampleDir + "/" + "macs2/" + macs2.name + "/" add(macs2) }