diff --git a/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala b/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala index f7fe320910bef857d1f6e184a7d037ce4b64b73b..8774bdc985be4e03c6e09cec23d4070373c79866 100644 --- a/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala +++ b/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala @@ -56,17 +56,36 @@ class Toucan(val root: Configurable) extends QScript with BiopetQScript with Sum normalizer.outputVcf = swapExt(outputDir, vep.output, ".vcf", ".normalized.vcf.gz") add(normalizer) + // Optional annotation steps, depend is some files existing in the config val gonlVcfFile: Option[File] = config("gonl_vcf") + val exacVcfFile: Option[File] = config("exac_vcf") + + var outputFile = normalizer.outputVcf + gonlVcfFile match { case Some(gonlVcfFile) => { val vcfWithVcf = new VcfWithVcf(this) - vcfWithVcf.input = normalizer.outputVcf + vcfWithVcf.input = outputFile vcfWithVcf.secondaryVcf = gonlVcfFile vcfWithVcf.output = swapExt(outputDir, normalizer.outputVcf, ".vcf.gz", ".gonl.vcf.gz") vcfWithVcf.fields ::= ("AF", "AF_gonl", None) add(vcfWithVcf) + outputFile = vcfWithVcf.output + } + case _ => + } + + exacVcfFile match { + case Some(exacVcfFile) => { + val vcfWithVcf = new VcfWithVcf(this) + vcfWithVcf.input = outputFile + vcfWithVcf.secondaryVcf = exacVcfFile + vcfWithVcf.output = swapExt(outputDir, outputFile, ".vcf.gz", ".exac.vcf.gz") + vcfWithVcf.fields ::= ("MAF", "MAF_exac", None) + add(vcfWithVcf) + outputFile = vcfWithVcf.output } - case _ => normalizer.outputVcf + case _ => } }