diff --git a/gatk/src/main/java/nl/lumc/sasc/biopet/pipelines/gatk/modules/BiopetVariantAnnotator.scala b/gatk/src/main/java/nl/lumc/sasc/biopet/pipelines/gatk/modules/BiopetVariantAnnotator.scala new file mode 100644 index 0000000000000000000000000000000000000000..dff9dc8a1ee8aa363b98f161b1cf577fc12228f5 --- /dev/null +++ b/gatk/src/main/java/nl/lumc/sasc/biopet/pipelines/gatk/modules/BiopetVariantAnnotator.scala @@ -0,0 +1,46 @@ +package nl.lumc.sasc.biopet.pipelines.gatk.modules + +import nl.lumc.sasc.biopet.core._ +import org.broadinstitute.sting.queue.QScript +import org.broadinstitute.sting.queue.extensions.gatk._ + +class BiopetVariantAnnotator(private var globalConfig: Config) extends QScript with BiopetQScript { + qscript => + def this() = this(new Config()) + + @Argument(doc="Config Json file",shortName="config", required=false) var configfiles: List[File] = Nil + @Argument(doc="Reference",shortName="R") var referenceFile: File = _ + @Argument(doc="Variant",shortName="V") var variants: List[File] = Nil + @Argument(doc="Output directory", shortName="outputDir", required=false) var outputDir: String = _ + @Argument(doc="Scattercount",shortName="SC") var scattercount: Int = 0 + + def init { + for (file <- configfiles) globalConfig.loadConfigFile(file) + config = Config.mergeConfigs(globalConfig.getAsConfig("variantannotator"), globalConfig) + if (outputDir == null) outputDir = this.qSettings.runDirectory + if (scattercount == 0 && config.contains("scattercount")) scattercount = config.getAsInt("scattercount") + } + + def script { + init + + for (inputFile <- qscript.variants) { + val variantAnnotator = new VariantAnnotator with gatkArguments { + val config: Config = Config.mergeConfigs(qscript.config.getAsConfig("variantannotator"), qscript.config) + this.variant = inputFile + if (config.contains("dbsnp")) this.dbsnp = config.getAsString("dbsnp") + this.out = swapExt(outputDir, inputFile,".vcf",".annotated.vcf") + if (qscript.scattercount > 1) this.scatterCount = qscript.scattercount + if (config.contains("scattercount")) this.scatterCount = config.getAsInt("scattercount") + } + add(variantAnnotator) + } + + } + + trait gatkArguments extends CommandLineGATK { + this.reference_sequence = referenceFile + this.memoryLimit = 2 + this.jobResourceRequests :+= "h_vmem=4G" + } +}