diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Fastqc.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Fastqc.scala index 2671c05e531a2bc965c31eb92a940f68439051b8..fed5e514be34618f41d2e8348eba6d15e67fab29 100644 --- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Fastqc.scala +++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Fastqc.scala @@ -31,10 +31,10 @@ class Fastqc(val root: Configurable) extends BiopetCommandLineFunction { var adapters: Option[File] = None @Input(doc = "Fastq file", shortName = "FQ") - var fastqfile: File = _ + var fastqfile: File = null @Output(doc = "Output", shortName = "out") - var output: File = _ + var output: File = null executable = config("exe", default = "fastqc") var java_exe: String = config("exe", default = "java", submodule = "java", freeVar = false) @@ -50,19 +50,31 @@ class Fastqc(val root: Configurable) extends BiopetCommandLineFunction { override def afterGraph { this.checkExecutable + + val fastqcDir = executable.substring(0, executable.lastIndexOf("/")) + contaminants = contaminants match { + // user-defined contaminants file take precedence + case userDefinedValue @ Some(_) => userDefinedValue + // otherwise, use default contaminants file (depending on FastQC version) case None => - val fastqcDir = executable.substring(0, executable.lastIndexOf("/")) val defaultContams = getVersion match { - case "v0.11.2" => Option(new File(fastqcDir + "/Configuration/contaminant_list.txt")) - case _ => Option(new File(fastqcDir + "/Contaminants/contaminant_list.txt")) + case "v0.11.2" => new File(fastqcDir + "/Configuration/contaminant_list.txt") + case _ => new File(fastqcDir + "/Contaminants/contaminant_list.txt") } + config("contaminants", default = defaultContams) + } + + adapters = adapters match { + // user-defined contaminants file take precedence + case userDefinedValue @ Some(_) => userDefinedValue + // otherwise, check if adapters are already present (depending on FastQC version) + case None => val defaultAdapters = getVersion match { case "v0.11.2" => Option(new File(fastqcDir + "/Configuration/adapter_list.txt")) case _ => None } - config("contaminants", default = defaultContams) - case wrapped @ Some(_) => wrapped + defaultAdapters.collect { case adp => config("adapters", default = adp) } } }