Skip to content
Snippets Groups Projects
Commit 24f1405c authored by wyleung's avatar wyleung
Browse files

Breakdancer, scaliform reformat

parent 8dee06e5
No related branches found
No related tags found
No related merge requests found
...@@ -22,22 +22,22 @@ class BreakdancerConfig(val root: Configurable) extends BiopetCommandLineFunctio ...@@ -22,22 +22,22 @@ class BreakdancerConfig(val root: Configurable) extends BiopetCommandLineFunctio
var min_insertsize: Option[Int] = config("min_insertsize", default = 450) var min_insertsize: Option[Int] = config("min_insertsize", default = 450)
var solid_data: Boolean = config("solid", default = false) var solid_data: Boolean = config("solid", default = false)
var sd_cutoff: Option[Int] = config("sd_cutoff", default = 4) // Cutoff in unit of standard deviation [4] var sd_cutoff: Option[Int] = config("sd_cutoff", default = 4) // Cutoff in unit of standard deviation [4]
// we set this to a higher number to avoid biases in small numbers in sorted bams // we set this to a higher number to avoid biases in small numbers in sorted bams
var min_observations: Option[Int] = config("min_observations", default = 10000) // Number of observation required to estimate mean and s.d. insert size [10_000] var min_observations: Option[Int] = config("min_observations", default = 10000) // Number of observation required to estimate mean and s.d. insert size [10_000]
var coefvar_cutoff: Option[Int] = config("coef_cutoff", default = 1) // Cutoff on coefficients of variation [1] var coefvar_cutoff: Option[Int] = config("coef_cutoff", default = 1) // Cutoff on coefficients of variation [1]
var histogram_bins: Option[Int] = config("histogram_bins", default = 50) // Number of bins in the histogram [50] var histogram_bins: Option[Int] = config("histogram_bins", default = 50) // Number of bins in the histogram [50]
def cmdLine = required(executable) + def cmdLine = required(executable) +
optional("-q", min_mq) + optional("-q", min_mq) +
conditional(use_mq, "-m") + conditional(use_mq, "-m") +
optional("-s", min_insertsize) + optional("-s", min_insertsize) +
conditional(solid_data, "-s") + conditional(solid_data, "-s") +
optional("-c", sd_cutoff) + optional("-c", sd_cutoff) +
optional("-n", min_observations) + optional("-n", min_observations) +
optional("-v", coefvar_cutoff) + optional("-v", coefvar_cutoff) +
optional("-b", histogram_bins) + optional("-b", histogram_bins) +
required(input) + " 1> " + required(output) required(input) + " 1> " + required(output)
} }
object BreakdancerConfig { object BreakdancerConfig {
...@@ -61,35 +61,30 @@ object BreakdancerConfig { ...@@ -61,35 +61,30 @@ object BreakdancerConfig {
private def swapExtension(inputFile: String) = inputFile.substring(0, inputFile.lastIndexOf(".bam")) + ".breakdancer.cfg" private def swapExtension(inputFile: String) = inputFile.substring(0, inputFile.lastIndexOf(".bam")) + ".breakdancer.cfg"
} }
/* /*
* The caller * The caller
* *
**/ **/
class BreakdancerCaller(val root: Configurable) extends BiopetCommandLineFunction {
class BreakdancerCaller(val root: Configurable) extends BiopetCommandLineFunction {
executable = config("exe", default = "breakdancer-max", freeVar = false) executable = config("exe", default = "breakdancer-max", freeVar = false)
override val defaultVmem = "6G" override val defaultVmem = "6G"
override val defaultThreads = 1 // breakdancer can only work on 1 single thread override val defaultThreads = 1 // breakdancer can only work on 1 single thread
override val versionRegex = """.*[Vv]ersion:? (.*)""".r override val versionRegex = """.*[Vv]ersion:? (.*)""".r
override val versionExitcode = List(1) override val versionExitcode = List(1)
override def versionCommand = executable override def versionCommand = executable
@Input(doc = "The breakdancer configuration file") @Input(doc = "The breakdancer configuration file")
var input: File = _ var input: File = _
// @Argument(doc = "Work directory") // @Argument(doc = "Work directory")
// var workdir: String = _ // var workdir: String = _
@Output(doc = "Breakdancer VCF output") @Output(doc = "Breakdancer TSV output")
var output: File = _ var output: File = _
/* /*
Options: Options:
-o STRING operate on a single chromosome [all chromosome] -o STRING operate on a single chromosome [all chromosome]
...@@ -115,36 +110,36 @@ class BreakdancerCaller(val root: Configurable) extends BiopetCommandLineFunctio ...@@ -115,36 +110,36 @@ class BreakdancerCaller(val root: Configurable) extends BiopetCommandLineFunctio
var q: Option[Int] = config("qs", default = 35) var q: Option[Int] = config("qs", default = 35)
var r: Option[Int] = config("r", default = 2) var r: Option[Int] = config("r", default = 2)
var x: Option[Int] = config("x", default = 1000) var x: Option[Int] = config("x", default = 1000)
var b: Option[Int] = config("b", default = 100) var b: Option[Int] = config("b", default = 100)
var t: Boolean = config("t", default = false) var t: Boolean = config("t", default = false)
var d: String = config("d") var d: String = config("d")
var g: String = config("g") var g: String = config("g")
var l: Boolean = config("l", default = false) var l: Boolean = config("l", default = false)
var a: Boolean = config("a", default = false) var a: Boolean = config("a", default = false)
var h: Boolean = config("h", default = false) var h: Boolean = config("h", default = false)
var y: Option[Int] = config("y", default = 30) var y: Option[Int] = config("y", default = 30)
override def beforeCmd { override def beforeCmd {
} }
def cmdLine = required(executable) + def cmdLine = required(executable) +
optional("-s", s) + optional("-s", s) +
optional("-c", c) + optional("-c", c) +
optional("-m", m) + optional("-m", m) +
optional("-q", q) + optional("-q", q) +
optional("-r", r) + optional("-r", r) +
optional("-x", x) + optional("-x", x) +
optional("-b", b) + optional("-b", b) +
conditional(t ,"-t") + conditional(t, "-t") +
optional("-d", d) + optional("-d", d) +
optional("-g", g) + optional("-g", g) +
conditional(l ,"-l") + conditional(l, "-l") +
conditional(a ,"-a") + conditional(a, "-a") +
conditional(h ,"-h") + conditional(h, "-h") +
optional("-y", y) + optional("-y", y) +
required(input) + required(input) +
">" + ">" +
required(output) required(output)
} }
object BreakdancerCaller { object BreakdancerCaller {
...@@ -159,23 +154,18 @@ object BreakdancerCaller { ...@@ -159,23 +154,18 @@ object BreakdancerCaller {
/// Breakdancer is actually a mini pipeline executing binaries from the breakdancer package /// Breakdancer is actually a mini pipeline executing binaries from the breakdancer package
class Breakdancer(val root: Configurable) extends QScript with BiopetQScript { class Breakdancer(val root: Configurable) extends QScript with BiopetQScript {
def this() = this(null) def this() = this(null)
@Input(doc = "Input file (bam)") @Input(doc = "Input file (bam)")
var input: File = _ var input: File = _
@Input(doc = "Reference Fasta file") @Input(doc = "Reference Fasta file")
var reference: File = _ var reference: File = _
@Argument(doc = "Work directory") @Argument(doc = "Work directory")
var workdir: String = _ var workdir: String = _
var deps : List[File] = Nil var deps: List[File] = Nil
@Output(doc = "Breakdancer VCF output")
lazy val outputvcf: File = {
new File(workdir + "/" + input.getName.substring(0, input.getName.lastIndexOf(".bam")) + ".breakdancer.vcf")
}
@Output(doc = "Breakdancer config") @Output(doc = "Breakdancer config")
lazy val configfile: File = { lazy val configfile: File = {
new File(workdir + "/" + input.getName.substring(0, input.getName.lastIndexOf(".bam")) + ".breakdancer.cfg") new File(workdir + "/" + input.getName.substring(0, input.getName.lastIndexOf(".bam")) + ".breakdancer.cfg")
...@@ -184,32 +174,35 @@ class Breakdancer(val root: Configurable) extends QScript with BiopetQScript { ...@@ -184,32 +174,35 @@ class Breakdancer(val root: Configurable) extends QScript with BiopetQScript {
lazy val outputraw: File = { lazy val outputraw: File = {
new File(workdir + "/" + input.getName.substring(0, input.getName.lastIndexOf(".bam")) + ".breakdancer.tsv") new File(workdir + "/" + input.getName.substring(0, input.getName.lastIndexOf(".bam")) + ".breakdancer.tsv")
} }
@Output(doc = "Breakdancer VCF output")
lazy val outputvcf: File = {
new File(workdir + "/" + input.getName.substring(0, input.getName.lastIndexOf(".bam")) + ".breakdancer.vcf")
}
override def init() { override def init() {
} }
def biopetScript() { def biopetScript() {
// read config and set all parameters for the pipeline // read config and set all parameters for the pipeline
logger.info("Starting Breakdancer configuration") logger.info("Starting Breakdancer configuration")
val bdcfg = BreakdancerConfig(this, input, this.configfile) val bdcfg = BreakdancerConfig(this, input, this.configfile)
bdcfg.deps = this.deps bdcfg.deps = this.deps
outputFiles += ("cfg" -> bdcfg.output ) outputFiles += ("cfg" -> bdcfg.output)
add( bdcfg ) add(bdcfg)
val output_tsv: File = this.outputraw val breakdancer = BreakdancerCaller(this, bdcfg.output, this.outputraw)
val breakdancer = BreakdancerCaller( this, bdcfg.output, output_tsv ) add(breakdancer)
add( breakdancer ) outputFiles += ("tsv" -> breakdancer.output)
outputFiles += ("tsv" -> breakdancer.output )
val bdvcf = BreakdancerVCF(this, breakdancer.output, this.outputvcf)
val bdvcf = BreakdancerVCF( this, breakdancer.output, this.outputvcf ) add(bdvcf)
add( bdvcf ) outputFiles += ("vcf" -> bdvcf.output)
outputFiles += ("vcf" -> bdvcf.output )
} }
} }
object Breakdancer extends PipelineCommand { object Breakdancer extends PipelineCommand {
def apply(root: Configurable, input: File, reference: File, runDir: String): Breakdancer = { def apply(root: Configurable, input: File, reference: File, runDir: String): Breakdancer = {
val breakdancer = new Breakdancer(root) val breakdancer = new Breakdancer(root)
breakdancer.input = input breakdancer.input = input
breakdancer.reference = reference breakdancer.reference = reference
......
...@@ -37,15 +37,15 @@ class BreakdancerVCF(val root: Configurable) extends PythonCommandLineFunction { ...@@ -37,15 +37,15 @@ class BreakdancerVCF(val root: Configurable) extends PythonCommandLineFunction {
def cmdLine = { def cmdLine = {
getPythonCommand + getPythonCommand +
"-i " + required(input) + "-i " + required(input) +
"-o " + required(output) "-o " + required(output)
} }
} }
object BreakdancerVCF { object BreakdancerVCF {
def apply(root: Configurable, input:File, output:File): BreakdancerVCF = { def apply(root: Configurable, input: File, output: File): BreakdancerVCF = {
val bd = new BreakdancerVCF(root) val bd = new BreakdancerVCF(root)
bd.input =input bd.input = input
bd.output = output bd.output = output
return bd return bd
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment