From 6ebb058a1e017e316c6c21df56bb9c146cae0358 Mon Sep 17 00:00:00 2001 From: Peter van 't Hof <p.j.van_t_hof@lumc.nl> Date: Tue, 20 May 2014 13:56:48 +0200 Subject: [PATCH] - Fixed output of star --- .../nl/lumc/sasc/biopet/wrappers/Star.scala | 38 ++++++++----------- .../biopet/pipelines/mapping/Mapping.scala | 10 +++-- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/biopet-framework/src/main/java/nl/lumc/sasc/biopet/wrappers/Star.scala b/biopet-framework/src/main/java/nl/lumc/sasc/biopet/wrappers/Star.scala index 50b2c4427..605ea9f5e 100644 --- a/biopet-framework/src/main/java/nl/lumc/sasc/biopet/wrappers/Star.scala +++ b/biopet-framework/src/main/java/nl/lumc/sasc/biopet/wrappers/Star.scala @@ -9,39 +9,31 @@ import scala.sys.process._ class Star(private var globalConfig: Config) extends CommandLineFunction { def this() = this(new Config(Map())) this.analysisName = "STAR" - var config: Config = _ + var config: Config = Config.mergeConfigs(globalConfig.getAsConfig("star"), globalConfig) - @Argument(doc="STAR executeble", shortName="star_exe", required=false) var star_exe: String = _ - @Input(doc="The reference file for the bam files.", shortName="R") var referenceFile: File = _ + @Argument(doc="STAR executeble", shortName="star_exe", required=false) + var star_exe: String = config.getAsString("exe", "/usr/local/bin/STAR") + @Input(doc="The reference file for the bam files.", shortName="R") var referenceFile: File = new File(config.getAsString("referenceFile")) @Input(doc="Fastq file R1", shortName="R1") var R1: File = _ @Input(doc="Fastq file R2", shortName="R2", required=false) var R2: File = _ @Argument(doc="Output Directory", shortName="outputDir") var outputDir: String = _ @Argument(doc="GenomeDir", required=false) var genomeDir: String = _ + if (genomeDir == null) genomeDir = config.getAsString("genomeDir", referenceFile.getParent + "/star") @Argument(doc="STAR runmode", shortName="runmode", required=false) var runmode: String = _ - @Output - var outputSam: File = _ - - def init() { - config = Config.mergeConfigs(globalConfig.getAsConfig("star"), globalConfig) - star_exe = config.getAsString("exe", "/usr/local/bin/STAR") - if (genomeDir == null) genomeDir = config.getAsString("genomeDir", referenceFile.getParent + "/star") - this.addJobReportBinding("version", "NA") - - jobResourceRequests :+= "h_vmem=" + config.getAsString("vmem", "6G") - var threads: Int = config.getAsInt("threads", 8) - var maxThreads: Int = config.getAsInt("maxthreads", 24) - if (threads > maxThreads) threads = maxThreads - nCoresRequest = Option(threads) - - referenceFile = new File(config.getAsString("referenceFile")) - - outputSam = new File(outputDir + "/star_output.sam") - } + this.addJobReportBinding("version", "NA") + + jobResourceRequests :+= "h_vmem=" + config.getAsString("vmem", "6G") + var threads: Int = config.getAsInt("threads", 8) + var maxThreads: Int = config.getAsInt("maxthreads", 24) + if (threads > maxThreads) threads = maxThreads + nCoresRequest = Option(threads) + + @Output var outputSam: File = new File(outputDir + "/star_output.sam") def commandLine : String= { - init() + //init() var cmd: String = required("cd",outputDir) + "&&" + required(star_exe) if (runmode != null && runmode == "genomeGenerate") { // Create index cmd += required("--runmode", runmode) + diff --git a/mapping/src/main/java/nl/lumc/sasc/biopet/pipelines/mapping/Mapping.scala b/mapping/src/main/java/nl/lumc/sasc/biopet/pipelines/mapping/Mapping.scala index 915c7360f..0fc8ea9ee 100644 --- a/mapping/src/main/java/nl/lumc/sasc/biopet/pipelines/mapping/Mapping.scala +++ b/mapping/src/main/java/nl/lumc/sasc/biopet/pipelines/mapping/Mapping.scala @@ -14,6 +14,7 @@ import scala.util.parsing.json._ import org.broadinstitute.sting.utils.variant._ class Mapping(private var globalConfig: Config) extends QScript { + qscript => @Argument(doc="Config Json file",shortName="config", required=false) var configfiles: List[File] = Nil @Input(doc="R1 fastq file", shortName="R1",required=true) var input_R1: File = _ @Input(doc="R2 fastq file", shortName="R2", required=false) var input_R2: File = _ @@ -79,21 +80,22 @@ class Mapping(private var globalConfig: Config) extends QScript { fastq_R1 = flexiprep.outputFiles("output_R1") if (paired) fastq_R2 = flexiprep.outputFiles("output_R2") } - var bamFile:File = "" + var bamFile:File = null if (aligner == "bwa") { val bwaCommand = new Bwa(config) { R1 = fastq_R1; if (paired) R2 = fastq_R2; RG = getReadGroup; output = new File(outputDir + outputName + ".sam") } add(bwaCommand) bamFile = addSortSam(List(bwaCommand.output), swapExt(outputDir,bwaCommand.output,".sam",".bam"), outputDir) } else if (aligner == "star") { - val starCommand = new Star(config) { R1 = fastq_R1; if (paired) R2 = fastq_R2; this.outputDir = outputDir } + val starCommand = new Star(config) { R1 = fastq_R1; if (paired) R2 = fastq_R2; this.outputDir = qscript.outputDir + "star/" ; + outputSam = new File(this.outputDir + "/star_output.sam") } add(starCommand) bamFile = addAddOrReplaceReadGroups(List(starCommand.outputSam), swapExt(outputDir,starCommand.outputSam,".sam",".bam"), outputDir) } if (!skipMarkduplicates) bamFile = addMarkDuplicates(List(bamFile), swapExt(outputDir,bamFile,".bam",".dedup.bam"), outputDir) } - + def addSortSam(inputSam:List[File], outputFile:File, dir:String) : File = { val sortSam = new SortSam { input = inputSam @@ -124,6 +126,8 @@ class Mapping(private var globalConfig: Config) extends QScript { if (RGCN != null) this.RGCN = RGCN if (RGDS != null) this.RGDS = RGDS } + add(addOrReplaceReadGroups) + return addOrReplaceReadGroups.output } -- GitLab