diff --git a/flexiprep/src/main/scala/nl/lumc/sasc/biopet/function/fastq/Fastqc.scala b/flexiprep/src/main/scala/nl/lumc/sasc/biopet/function/fastq/Fastqc.scala index 413defa02ec12e5aadee30bdf7a8628936d74b95..cc48a1682bd22c2a89c305f14b8d7aa933143e9d 100644 --- a/flexiprep/src/main/scala/nl/lumc/sasc/biopet/function/fastq/Fastqc.scala +++ b/flexiprep/src/main/scala/nl/lumc/sasc/biopet/function/fastq/Fastqc.scala @@ -18,13 +18,14 @@ class Fastqc(val root: Configurable) extends BiopetCommandLineFunction { @Output(doc = "Output", shortName = "out") var output: File = _ - + executable = config("exe", default = "fastqc") var java_exe: String = config("exe", default = "java", submodule = "java") var kmers: Option[Int] = config("kmers") var quiet: Boolean = config("quiet") var noextract: Boolean = config("noextract") var nogroup: Boolean = config("nogroup") + var extract: Boolean = config("extract", default = true) override val versionRegex = """FastQC (.*)""".r override val defaultThreads = 4 @@ -45,9 +46,24 @@ class Fastqc(val root: Configurable) extends BiopetCommandLineFunction { optional("--kmers", kmers) + conditional(nogroup, "--nogroup") + conditional(noextract, "--noextract") + + conditional(extract, "--extract") + conditional(quiet, "--quiet") + required("-o", output.getParent()) + - required(fastqfile) + - required(" > ", output, escape = false) + required(fastqfile) } } + +object Fastqc { + def apply(root:Configurable, fastqfile: File, outDir: String): Fastqc = { + val fastqcCommand = new Fastqc(root) + fastqcCommand.fastqfile = fastqfile + var filename: String = fastqfile.getName() + if (filename.endsWith(".gz")) filename = filename.substring(0, filename.size - 3) + if (filename.endsWith(".gzip")) filename = filename.substring(0, filename.size - 5) + if (filename.endsWith(".fastq")) filename = filename.substring(0, filename.size - 6) + //if (filename.endsWith(".fq")) filename = filename.substring(0,filename.size - 3) + fastqcCommand.jobOutputFile = new File(outDir + "/" + filename + "_fastqc.zip") + fastqcCommand.afterGraph + return fastqcCommand + } +} \ No newline at end of file diff --git a/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/Flexiprep.scala b/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/Flexiprep.scala index 38b9809da96dab04285e9c96fe58307fdc40f7af..00eb4cba9f707b308c25504e1578c02911cf4b7f 100644 --- a/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/Flexiprep.scala +++ b/flexiprep/src/main/scala/nl/lumc/sasc/biopet/pipelines/flexiprep/Flexiprep.scala @@ -81,13 +81,13 @@ class Flexiprep(val root: Configurable) extends QScript with BiopetQScript { addSha1sum(outputFiles("fastq_input_R1"), "sha1_R1") if (paired) addSha1sum(outputFiles("fastq_input_R2"), "sha1_R2") - var fastqc_R1 = runFastqc(input_R1, outputDir + "/" + R1_name + ".fastqc/") + var fastqc_R1 = Fastqc(this, input_R1, outputDir + "/" + R1_name + ".fastqc/") outputFiles += ("fastqc_R1" -> fastqc_R1.output) outputFiles += ("qualtype_R1" -> getQualtype(fastqc_R1, R1_name)) outputFiles += ("contams_R1" -> getContams(fastqc_R1, R1_name)) if (paired) { - var fastqc_R2 = runFastqc(input_R2, outputDir + "/" + R2_name + ".fastqc/") + var fastqc_R2 = Fastqc(this, input_R2, outputDir + "/" + R2_name + ".fastqc/") outputFiles += ("fastqc_R2" -> fastqc_R2.output) outputFiles += ("qualtype_R2" -> getQualtype(fastqc_R2, R2_name)) outputFiles += ("contams_R2" -> getContams(fastqc_R2, R2_name)) @@ -226,9 +226,9 @@ class Flexiprep(val root: Configurable) extends QScript with BiopetQScript { addSha1sum(R1, "sha1_qc_R1") if (paired) addSha1sum(R2, "sha1_qc_R2") - - outputFiles += ("fastqc_R1_final" -> runFastqc(outputFiles("output_R1"), outputDir + "/" + R1_name + ".qc.fastqc/").output) - if (paired) outputFiles += ("fastqc_R2_final" -> runFastqc(outputFiles("output_R2"), outputDir + "/" + R2_name + ".qc.fastqc/").output) + + outputFiles += ("fastqc_R1_final" -> Fastqc(this, outputFiles("output_R1"), outputDir + "/" + R1_name + ".qc.fastqc/").output) + if (paired) outputFiles += ("fastqc_R2_final" -> Fastqc(this, outputFiles("output_R2"), outputDir + "/" + R2_name + ".qc.fastqc/").output) } if (!skipSummary) { @@ -245,20 +245,6 @@ class Flexiprep(val root: Configurable) extends QScript with BiopetQScript { } } - def runFastqc(fastqfile: File, outDir: String): Fastqc = { - val fastqcCommand = new Fastqc(this) - fastqcCommand.fastqfile = fastqfile - var filename: String = fastqfile.getName() - if (filename.endsWith(".gz")) filename = filename.substring(0, filename.size - 3) - if (filename.endsWith(".gzip")) filename = filename.substring(0, filename.size - 5) - if (filename.endsWith(".fastq")) filename = filename.substring(0, filename.size - 6) - //if (filename.endsWith(".fq")) filename = filename.substring(0,filename.size - 3) - fastqcCommand.output = outDir + "/" + filename + "_fastqc.output" - fastqcCommand.afterGraph - add(fastqcCommand) - return fastqcCommand - } - def extractIfNeeded(file: File, runDir: String): File = { if (file.getName().endsWith(".gz") || file.getName().endsWith(".gzip")) { var newFile: File = swapExt(runDir, file, ".gz", "")