diff --git a/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/variantcallers/VarscanCnsSingleSample.scala b/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/variantcallers/VarscanCnsSingleSample.scala index f838a22344cb20786364420e9e5dbf32d083e0a2..11610dd6f6559a558d1aa273a9047c7389fe23aa 100644 --- a/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/variantcallers/VarscanCnsSingleSample.scala +++ b/public/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/variantcallers/VarscanCnsSingleSample.scala @@ -2,6 +2,8 @@ package nl.lumc.sasc.biopet.pipelines.shiva.variantcallers import java.io.PrintWriter +import nl.lumc.sasc.biopet.core.BiopetCommandLineFunction +import nl.lumc.sasc.biopet.core.extensions.PythonCommandLineFunction import nl.lumc.sasc.biopet.extensions.gatk.CombineVariants import nl.lumc.sasc.biopet.extensions.{ Ln, Tabix, Bgzip } import nl.lumc.sasc.biopet.extensions.samtools.SamtoolsMpileup @@ -20,12 +22,12 @@ class VarscanCnsSingleSample(val root: Configurable) extends Variantcaller { "disable_baq" -> true, "depth" -> 1000000 ), - "mpileup2cns" -> Map("strand_filter" -> 0) + "varscanmpileup2cns" -> Map("strand_filter" -> 0) ) override def fixedValues = Map( "samtoolsmpileup" -> Map("output_mapping_quality" -> true), - "mpileup2cns" -> Map("output_vcf" -> 1) + "varscanmpileup2cns" -> Map("output_vcf" -> 1) ) def biopetScript: Unit = { @@ -42,10 +44,24 @@ class VarscanCnsSingleSample(val root: Configurable) extends Variantcaller { writer.println(sample) writer.close() + val fixMpileup = new PythonCommandLineFunction { + setPythonScript("fix_mpileup.py", "/nl/lumc/sasc/biopet/pipelines/shiva/scripts/") + override val root: Configurable = this.root + override def configName = "fix_mpileup" + def cmdLine = getPythonCommand + } + + def removeEmptyPile() = new BiopetCommandLineFunction { + override val root: Configurable = this.root + override def configName = "remove_empty_pile" + executable = config("exe", default = "grep", freeVar = false) + override def cmdLine: String = required(executable) + required("-vP") + required("""\t\t""") + } + val varscan = new VarscanMpileup2cns(this) varscan.vcfSampleList = Some(sampleVcf) - add(mpileup | varscan | new Bgzip(this) > sampleVcf) + add(mpileup | fixMpileup | removeEmptyPile() | varscan | new Bgzip(this) > sampleVcf) add(Tabix(this, sampleVcf)) sampleVcf