Skip to content
Snippets Groups Projects
Commit 2f38f1f1 authored by Peter van 't Hof's avatar Peter van 't Hof
Browse files

Added python parser to buildin python scripts

parent 9519ee04
No related branches found
No related tags found
No related merge requests found
package nl.lumc.sasc.biopet.wrappers
import java.io.FileOutputStream
import nl.lumc.sasc.biopet.core._
import org.broadinstitute.sting.queue.function.CommandLineFunction
import org.broadinstitute.sting.commandline._
import java.io.File
import scala.collection.JavaConversions._
trait Python extends CommandLineFunction {
@Argument(doc="Pyhton exe", shortName="script")
var python_exe: String = "python"
@Input(doc="Pyhton script", shortName="script", required=false)
var python_script: File = _
private var python_script_name : String = _
def setPythonScript(script:String, subpackage:String) {
python_script_name = script
//val pack = getClass.getPackage.toString.replaceAll(".", "/")
//logger.info(pack)
// for (r <- getClass.getClassLoader.getResources("/nl/lumc/sasc/biopet/pipelines/flexiprep/scripts/*")) {
// logger.info(r)
// logger.info(r.getContent)
// }
python_script = new File(".queue/tmp/" + subpackage + python_script_name)
if (!python_script.getParentFile.exists) python_script.getParentFile.mkdirs
val is = getClass.getResourceAsStream(subpackage + python_script_name)
val os = new FileOutputStream(python_script)
org.apache.commons.io.IOUtils.copy(is, os)
os.close()
}
def getPythonCommand() : String = {
required(python_exe) + required(python_script)
}
}
package nl.lumc.sasc.biopet.pipelines.flexiprep.scripts
//import java.io.FileOutputStream
import nl.lumc.sasc.biopet.core._
import nl.lumc.sasc.biopet.wrappers._
import org.broadinstitute.sting.queue.function.CommandLineFunction
import org.broadinstitute.sting.commandline._
import java.io.File
class FastqSync(val globalConfig: Config) extends CommandLineFunction with Python {
def this() = this(new Config(Map()))
analysisName = "fastqsync"
val config: Config = globalConfig.getAsConfig(analysisName)
logger.debug("Config for " + analysisName + ": " + config)
setPythonScript("__init__.py", "scripts/pyfastqc/")
setPythonScript("sync_paired_end_reads.py", "scripts/")
@Input(doc="Start fastq") var input_start_fastq: File = _
@Input(doc="R1 input") var input_R1: File = _
@Input(doc="R2 input") var input_R2: File = _
@Output(doc="R1 output") var output_R1: File = _
@Output(doc="R2 output") var output_R2: File = _
@Output(doc="stats output") var output_stats: File = _
def commandLine = {
getPythonCommand +
required(input_start_fastq) +
required(input_R1) +
required(input_R2) +
required(output_R1) +
required(output_R2) +
" > " +
required(output_stats)
}
}
\ No newline at end of file
package nl.lumc.sasc.biopet.pipelines.flexiprep.scripts
import nl.lumc.sasc.biopet.core._
import org.broadinstitute.sting.queue.function.CommandLineFunction
import nl.lumc.sasc.biopet.wrappers.Python
import org.broadinstitute.sting.commandline._
import java.io.File
class FastqcToContams(val globalConfig: Config) extends CommandLineFunction with Python {
def this() = this(new Config(Map()))
analysisName = "getcontams"
val config: Config = globalConfig.getAsConfig(analysisName)
logger.debug("Config for " + analysisName + ": " + config)
setPythonScript("__init__.py", "scripts/pyfastqc/")
setPythonScript("fastqc_contam.py", "scripts/")
@Input(doc="Fastqc output", shortName="fastqc", required=true) var fastqc_output: File = _
@Input(doc="Contams input", shortName="fastqc", required=true) var contams_file: File = _
@Output(doc="Output file", shortName="out", required=true) var out: File = _
def commandLine = {
getPythonCommand +
required(fastqc_output.getParent()) +
required("-c",contams_file) +
" > " +
required(out)
}
}
\ No newline at end of file
package nl.lumc.sasc.biopet.pipelines.flexiprep.scripts
import nl.lumc.sasc.biopet.core._
import org.broadinstitute.sting.queue.function.CommandLineFunction
import nl.lumc.sasc.biopet.wrappers.Python
import org.broadinstitute.sting.commandline._
import java.io.File
class FastqcToQualtype(val globalConfig: Config) extends CommandLineFunction with Python {
def this() = this(new Config(Map()))
analysisName = "getqualtype"
val config: Config = globalConfig.getAsConfig(analysisName)
logger.debug("Config for " + analysisName + ": " + config)
setPythonScript("__init__.py", "scripts/pyfastqc/")
setPythonScript("qual_type_sickle.py", "scripts/")
@Input(doc="Fastqc output", shortName="fastqc", required=true) var fastqc_output: File = _
@Output(doc="Output file", shortName="out", required=true) var out: File = _
def commandLine = {
getPythonCommand +
required(fastqc_output.getParent()) +
" > " +
required(out)
}
}
\ No newline at end of file
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