From 002c7f8f926269cbce7706a84b438570d1cd658e Mon Sep 17 00:00:00 2001 From: Sander van der Zeeuw <s.a.j.van_der_zeeuw@lumc.nl> Date: Thu, 29 Jan 2015 10:26:07 +0100 Subject: [PATCH] bug fixes in carp pipeline --- .../sasc/biopet/pipelines/carp/Carp.scala | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) 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 c03b4252f..a69ec4d32 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 @@ -16,6 +16,7 @@ package nl.lumc.sasc.biopet.pipelines.carp import nl.lumc.sasc.biopet.extensions.Ln +import nl.lumc.sasc.biopet.extensions.macs2.Macs2CallPeak import nl.lumc.sasc.biopet.extensions.picard.MergeSamFiles import org.broadinstitute.gatk.queue.QScript import org.broadinstitute.gatk.utils.commandline.{ Argument, Input } @@ -53,18 +54,30 @@ class Carp(val root: Configurable) extends QScript with MultiSampleQScript { runSamplesJobs - //val macs2 = new Macs2CallPeak(this) - //macs2.treatment = new File("patient.bam") - //macs2.control = new File("control.bam") + for (sample <- getSamples) { + val controls: List[String] = config("control", sample = sample, default = Nil) + + for (control <- controls) { + if (!getSamples.exists(_ == control)) + throw new IllegalStateException("For sample: " + sample + " this control: " + control + " does not exist") + val macs2 = new Macs2CallPeak(this) + macs2.treatment = samplesOutput(sample).mappedBamFile + macs2.control = samplesOutput(control).mappedBamFile + macs2.name = sample + "_VS_" + control + macs2.outputdir = globalSampleDir + sample + "/" + "macs2/" + macs2.name + "/" + add(macs2) + } + } } def runSingleSampleJobs(sampleConfig: Map[String, Any]): SampleOutput = { val sampleOutput = new SampleOutput - val sampleID: String = sampleConfig("ID").toString + val sampleID: String = getCurrentSample + val sampleDir = globalSampleDir + sampleID + "/" sampleOutput.libraries = runLibraryJobs(sampleConfig) val bamfiles = sampleOutput.libraries.map(_._2.mappedBamFile).toList - sampleOutput.mappedBamFile = new File(globalSampleDir + sampleID + "/" + sampleID + ".bam") + sampleOutput.mappedBamFile = new File(sampleDir + sampleID + ".bam") if (bamfiles.length == 1) { add(Ln(this, bamfiles.head, sampleOutput.mappedBamFile)) val oldIndex = new File(bamfiles.head.getAbsolutePath.stripSuffix(".bam") + ".bai") @@ -78,14 +91,20 @@ class Carp(val root: Configurable) extends QScript with MultiSampleQScript { add(merge) } + val macs2 = new Macs2CallPeak(this) + macs2.treatment = sampleOutput.mappedBamFile + macs2.name = sampleID + macs2.outputdir = sampleDir + "macs2/" + macs2.name + "/" + add(macs2) + return sampleOutput } def runSingleLibraryJobs(runConfig: Map[String, Any], sampleConfig: Map[String, Any]): LibraryOutput = { val libraryOutput = new LibraryOutput - val runID: String = runConfig("ID").toString - val sampleID: String = sampleConfig("ID").toString + val runID: String = getCurrentLibrary + val sampleID: String = getCurrentSample val runDir: String = globalSampleDir + sampleID + "/run_" + runID + "/" if (runConfig.contains("R1")) { -- GitLab