diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVTools.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVTools.scala new file mode 100644 index 0000000000000000000000000000000000000000..d017864f6988828100f6bbda421fbf734a9a5878 --- /dev/null +++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVTools.scala @@ -0,0 +1,14 @@ +/** + * Created by wyleung on 5-1-15. + */ + +package nl.lumc.sasc.biopet.extensions.igvtools + +import nl.lumc.sasc.biopet.core.BiopetCommandLineFunction + +abstract class IGVTools extends BiopetCommandLineFunction { + executable = config("exe", default = "igvtools", submodule = "igvtools", freeVar = false) + override def versionCommand = executable + " version" + override val versionRegex = """IGV Version: ([\d\.]) .*""".r + override val versionExitcode = List(0) +} \ No newline at end of file diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVToolsCount.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVToolsCount.scala new file mode 100644 index 0000000000000000000000000000000000000000..52ec0cee1e425406e72dfaa65f1750f47d67c1a3 --- /dev/null +++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/igvtools/IGVToolsCount.scala @@ -0,0 +1,35 @@ + +package nl.lumc.sasc.biopet.extensions.igvtools + +import nl.lumc.sasc.biopet.core.config.Configurable +import org.broadinstitute.gatk.utils.commandline.{ Input, Output, Argument } +import java.io.File + +class IGVToolsCount(val root: Configurable) extends IGVTools { + @Input(doc = "Bam File") + var input: File = _ + + @Argument(doc = "Genome name") + var genomename: String = _ + + @Output(doc = "output File") + var output: File = _ + + def cmdLine = required(executable) + required("count") + required(input) + required(output) + required(genomename) +} + +object IGVToolsCount { + def apply(root: Configurable, input: File, output: File, genomename: String): IGVToolsCount = { + val counting = new IGVToolsCount(root) + counting.input = input + counting.output = output + counting.genomename = genomename + return counting + } + + def apply(root: Configurable, input: File, genomename: String): IGVToolsCount = { + return apply(root, input, new File(swapExtension(input.getCanonicalPath)), genomename) + } + + private def swapExtension(inputFile: String) = inputFile + ".tdf" +} \ No newline at end of file diff --git a/public/yamsvp/src/main/scala/nl/lumc/sasc/biopet/pipelines/yamsvp/Yamsvp.scala b/public/yamsvp/src/main/scala/nl/lumc/sasc/biopet/pipelines/yamsvp/Yamsvp.scala index 0454f686865962f252096a24a865c4f95f869732..8db0c6aa816bc986d44e6746c06f7e2a25a7e7df 100644 --- a/public/yamsvp/src/main/scala/nl/lumc/sasc/biopet/pipelines/yamsvp/Yamsvp.scala +++ b/public/yamsvp/src/main/scala/nl/lumc/sasc/biopet/pipelines/yamsvp/Yamsvp.scala @@ -24,6 +24,7 @@ import nl.lumc.sasc.biopet.core.MultiSampleQScript import nl.lumc.sasc.biopet.core.PipelineCommand import nl.lumc.sasc.biopet.extensions.Ln +import nl.lumc.sasc.biopet.extensions.igvtools.IGVToolsCount import nl.lumc.sasc.biopet.extensions.sambamba.{ SambambaIndex, SambambaMerge, SambambaMarkdup } import nl.lumc.sasc.biopet.extensions.svcallers.pindel.Pindel import nl.lumc.sasc.biopet.extensions.svcallers.{ Breakdancer, Delly, CleverCaller } @@ -91,21 +92,25 @@ class Yamsvp(val root: Configurable) extends QScript with MultiSampleQScript { val bamFile: File = if (libraryBamfiles.size == 1) { // When the sample has only 1 run, make a link in the main alignment directory - val alignmentlink = Ln(root, libraryBamfiles.head, + val alignmentlink = Ln(this, libraryBamfiles.head, alignmentDir + sampleID + ".merged.bam", true) add(alignmentlink, isIntermediate = true) alignmentlink.out } else if (libraryBamfiles.size > 1) { - val mergeSamFiles = new SambambaMerge(root) + val mergeSamFiles = new SambambaMerge(this) mergeSamFiles.input = libraryBamfiles mergeSamFiles.output = alignmentDir + sampleID + ".merged.bam" add(mergeSamFiles, isIntermediate = true) mergeSamFiles.output } else null - val bamMarkDup = SambambaMarkdup(root, bamFile) + val bamMarkDup = SambambaMarkdup(this, bamFile) add(bamMarkDup) + // create an IGV TDF file + val tdfCount = IGVToolsCount(this, bamMarkDup.output, config("genomename", default = "hg19")) + add(tdfCount) + /// bamfile will be used as input for the SV callers. First run Clever // val cleverVCF : File = sampleDir + "/" + sampleID + ".clever.vcf"