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 5994d5b66c0da213107ffde4189f5c3cc5a9023c..5d8862e7c038eefea1adb9bff26869599f9f13a8 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 @@ -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 "v0.11.2" => Some(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) } } }