From 2e9fffdb1b0ee3c68c8afcd8a4610aae891b22bb Mon Sep 17 00:00:00 2001
From: Wai Yi Leung <w.y.leung@lumc.nl>
Date: Wed, 20 Jan 2016 15:00:57 +0100
Subject: [PATCH] PindelVCF wrapper

---
 .../biopet/extensions/pindel/PindelVCF.scala  | 90 +++++++++++++++++++
 1 file changed, 90 insertions(+)
 create mode 100644 public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/pindel/PindelVCF.scala

diff --git a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/pindel/PindelVCF.scala b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/pindel/PindelVCF.scala
new file mode 100644
index 000000000..bcf16c8f1
--- /dev/null
+++ b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/pindel/PindelVCF.scala
@@ -0,0 +1,90 @@
+package nl.lumc.sasc.biopet.extensions.pindel
+
+import java.io.File
+
+import nl.lumc.sasc.biopet.core.{ Version, Reference, BiopetCommandLineFunction }
+import nl.lumc.sasc.biopet.utils.config.Configurable
+import org.broadinstitute.gatk.utils.commandline.{ Output, Input }
+
+/**
+  * Created by wyleung on 20-1-16.
+  */
+class PindelVCF(val root: Configurable) extends BiopetCommandLineFunction with Reference with Version {
+  executable = config("exe", default = "pindel2vcf")
+
+  override def defaultCoreMemory = 2.0
+  override def defaultThreads = 1
+
+  def versionRegex = """Version:? (.*)""".r
+  override def versionExitcode = List(1)
+  def versionCommand = executable + " -h"
+
+  /**
+    * Required parameters
+    */
+  @Input
+  var reference: File = referenceFasta
+
+  @Output
+  var outputVCF: File = _
+
+  var referenceDate: String = config("reference_date")
+
+  override def beforeGraph: Unit = {
+    if (reference == null) reference = referenceFasta()
+  }
+
+  var pindelOutput: Option[File] = config("pindel_output")
+  var pindelOutputRoot: Option[File] = config("pindel_output_root")
+  var chromosome: Option[String] = config("chromosome")
+  var windowSize: Option[Int] = config("window_size")
+  var minCoverage: Option[Int] = config("min_coverage")
+  var hetCutoff: Option[Float] = config("het_cutoff")
+  var homCutoff: Option[Float] = config("hom_cutoff")
+  var minSize: Option[Int] = config("min_size")
+  var maxSize: Option[Int] = config("max_size")
+  var bothStrandSupported: Boolean = config("both_strand_supported", default = false)
+  var minSupportingSamples: Option[Int] = config("min_supporting_samples")
+  var minSupportingReads: Option[Int] = config("min_supporting_reads")
+  var maxSupportingReads: Option[Int] = config("max_supporting_reads")
+  var regionStart: Option[Int] = config("region_start")
+  var regionEnd: Option[Int] = config("region_end")
+  var maxInternalRepeats: Option[Int] = config("max_internal_repeats")
+  var compactOutLimit: Option[Int] = config("compact_output_limit")
+  var maxInternalRepeatLength: Option[Int] = config("max_internal_repeatlength")
+  var maxPostindelRepeats: Option[Int] = config("max_postindel_repeat")
+  var maxPostindelRepeatLength: Option[Int] = config("max_postindel_repeatlength")
+  var onlyBalancedSamples: Boolean = config("only_balanced_samples")
+  var somaticP: Boolean = config("somatic_p")
+  var minimumStrandSupport: Option[Int] = config("minimum_strand_support")
+  var gatkCompatible: Boolean = config("gatk_compatible")
+
+  def cmdLine = required(executable) +
+    required("--reference_name", referenceSpecies) +
+    required("--reference_date", referenceDate) +
+    optional("--pindel_output", pindelOutput) +
+    optional("--pindel_output_root", pindelOutputRoot) +
+    required("--vcf", outputVCF) +
+    optional("--chromosome", chromosome) +
+    optional("--window_size", windowSize) +
+    optional("--min_coverage", minCoverage) +
+    optional("--het_cutoff", hetCutoff) +
+    optional("--hom_cutoff", homCutoff) +
+    optional("--min_size", minSize) +
+    optional("--max_size", maxSize) +
+    conditional(bothStrandSupported, "--both_strands_supported") +
+    optional("--min_supporting_samples", minSupportingSamples) +
+    optional("--min_supporting_reads", minSupportingReads) +
+    optional("--max_supporting_reads", maxSupportingReads) +
+    optional("--region_start", regionStart) +
+    optional("--region_end", regionEnd) +
+    optional("--max_internal_repeats", maxInternalRepeats) +
+    optional("--compact_output_limit", compactOutLimit) +
+    optional("--max_internal_repeatlength", maxInternalRepeatLength) +
+    optional("--max_postindel_repeats", maxPostindelRepeats) +
+    optional("--max_postindel_repeatlength", maxPostindelRepeatLength) +
+    conditional(onlyBalancedSamples, "--only_balanced_samples") +
+    conditional(somaticP, "--somatic_p") +
+    optional("--minimum_strand_support", minimumStrandSupport) +
+    conditional(gatkCompatible, "--gatk_compatible")
+}
-- 
GitLab