From 674e3168bada9e6e0220af32b241f648aa7179db Mon Sep 17 00:00:00 2001
From: Wai Yi Leung <w.y.leung@lumc.nl>
Date: Tue, 19 Jan 2016 18:10:46 +0100
Subject: [PATCH] Style refactor of PindelCaller wrapper

---
 .../extensions/pindel/PindelCaller.scala      | 125 +++++++++---------
 1 file changed, 64 insertions(+), 61 deletions(-)

diff --git a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/pindel/PindelCaller.scala b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/pindel/PindelCaller.scala
index 0ccb2468b..f0bc396a3 100644
--- a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/pindel/PindelCaller.scala
+++ b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/pindel/PindelCaller.scala
@@ -34,48 +34,49 @@ class PindelCaller(val root: Configurable) extends BiopetCommandLineFunction wit
   override def defaultCoreMemory = 4.0
   override def defaultThreads = 4
 
-  override def versionRegex = """Pindel version:? (.*)""".r
+  def versionRegex = """Pindel version:? (.*)""".r
   override def versionExitcode = List(1)
-  override def versionCommand = executable
+  def versionCommand = executable
 
   /**
    * Required parameters
    */
+  @Input
   var reference: File = referenceFasta
 
   @Input(doc = "Input specification for Pindel to use")
   var input: File = _
 
   @Argument(doc = "The pindel configuration file", required = false)
-  var pindel_file: Option[File] = None
+  var pindelFile: Option[File] = None
 
   @Argument(doc = "Configuration file with: bam-location/insert size/name", required = false)
-  var config_file: Option[File] = None
+  var configFile: Option[File] = None
 
   @Argument(doc = "Work directory")
-  var output_prefix: File = _
+  var outputPrefix: File = _
 
   @Output(doc = "Output file of pindel, pointing to the DEL file")
-  var output_file: File = _
+  var outputFile: File = _
 
   var RP: Option[Int] = config("RP")
-  var min_distance_to_the_end: Option[Int] = config("min_distance_to_the_end")
+  var minDistanceToTheEnd: Option[Int] = config("min_distance_to_the_end")
   // var threads
-  var max_range_index: Option[Int] = config("max_range_index")
-  var window_size: Option[Int] = config("window_size")
-  var sequencing_error_rate: Option[Float] = config("sequencing_error_rate")
+  var maxRangeIndex: Option[Int] = config("max_range_index")
+  var windowSize: Option[Int] = config("window_size")
+  var sequencingErrorRate: Option[Float] = config("sequencing_error_rate")
   var sensitivity: Option[Float] = config("sensitivity")
 
-  var maximum_allowed_mismatch_rate: Option[Float] = config("maximum_allowed_mismatch_rate")
+  var maximumAllowedMismatchRate: Option[Float] = config("maximum_allowed_mismatch_rate")
   var nm: Option[Int] = config("nm")
 
-  var report_inversions: Boolean = config("report_inversions", default = false)
-  var report_duplications: Boolean = config("report_duplications", default = false)
-  var report_long_insertions: Boolean = config("report_long_insertions", default = false)
-  var report_breakpoints: Boolean = config("report_breakpoints", default = false)
-  var report_close_mapped_reads: Boolean = config("report_close_mapped_reads", default = false)
-  var report_only_close_mapped_reads: Boolean = config("report_only_close_mapped_reads", default = false)
-  var report_interchromosomal_events: Boolean = config("report_interchromosomal_events", default = false)
+  var reportInversions: Boolean = config("report_inversions", default = false)
+  var reportDuplications: Boolean = config("report_duplications", default = false)
+  var reportLongInsertions: Boolean = config("report_long_insertions", default = false)
+  var reportBreakpoints: Boolean = config("report_breakpoints", default = false)
+  var reportCloseMappedReads: Boolean = config("report_close_mapped_reads", default = false)
+  var reportOnlyCloseMappedReads: Boolean = config("report_only_close_mapped_reads", default = false)
+  var reportInterchromosomalEvents: Boolean = config("report_interchromosomal_events", default = false)
 
   var IndelCorrection: Boolean = config("IndelCorrection", default = false)
   var NormalSamples: Boolean = config("NormalSamples", default = false)
@@ -84,21 +85,21 @@ class PindelCaller(val root: Configurable) extends BiopetCommandLineFunction wit
   var include: Option[File] = config("include")
   var exclude: Option[File] = config("exclude")
 
-  var additional_mismatch: Option[Int] = config("additional_mismatch")
-  var min_perfect_match_around_BP: Option[Int] = config("min_perfect_match_around_BP")
-  var min_inversion_size: Option[Int] = config("min_inversion_size")
-  var min_num_matched_bases: Option[Int] = config("min_num_matched_bases")
-  var balance_cutoff: Option[Int] = config("balance_cutoff")
-  var anchor_quality: Option[Int] = config("anchor_quality")
-  var minimum_support_for_event: Option[Int] = config("minimum_support_for_event")
-  var input_SV_Calls_for_assembly: Option[File] = config("input_SV_Calls_for_assembly")
+  var additionalMismatch: Option[Int] = config("additional_mismatch")
+  var minPerfectMatchAroundBP: Option[Int] = config("min_perfect_match_around_BP")
+  var minInversionSize: Option[Int] = config("min_inversion_size")
+  var minNumMatchedBases: Option[Int] = config("min_num_matched_bases")
+  var balanceCutoff: Option[Int] = config("balance_cutoff")
+  var anchorQuality: Option[Int] = config("anchor_quality")
+  var minimumSupportForEvent: Option[Int] = config("minimum_support_for_event")
+  var inputSVCallsForAssembly: Option[File] = config("input_SV_Calls_for_assembly")
 
   var genotyping: Boolean = config("genotyping", default = false)
-  var output_of_breakdancer_events: Option[File] = config("output_of_breakdancer_events")
-  var name_of_logfile: Option[File] = config("name_of_logfile")
+  var outputOfBreakdancerEvents: Option[File] = config("output_of_breakdancer_events")
+  var nameOfLogfile: Option[File] = config("name_of_logfile")
 
-  var Ploidy: Option[File] = config("ploidy")
-  var detect_DD: Boolean = config("detect_DD", default = false)
+  var ploidy: Option[File] = config("ploidy")
+  var detectDD: Boolean = config("detect_DD", default = false)
 
   var MAX_DD_BREAKPOINT_DISTANCE: Option[Int] = config("MAX_DD_BREAKPOINT_DISTANCE")
   var MAX_DISTANCE_CLUSTER_READS: Option[Int] = config("MAX_DISTANCE_CLUSTER_READS")
@@ -108,9 +109,11 @@ class PindelCaller(val root: Configurable) extends BiopetCommandLineFunction wit
   var DD_REPORT_DUPLICATION_READS: Option[Int] = config("DD_REPORT_DUPLICATION_READS")
 
   override def beforeGraph: Unit = {
+    if (reference == null) reference = referenceFasta()
+
     // we should check whether the `pindel-config-file` is set or the `config-file` for the bam-list
     // at least one of them should be set.
-    (pindel_file, config_file) match {
+    (pindelFile, configFile) match {
       case (None, None)       => Logging.addError("No pindel config is given")
       case (Some(a), Some(b)) => Logging.addError(s"Please specify either a pindel config or bam-config. Not both for Pindel: $a or $b")
       case (Some(a), None) => {
@@ -125,48 +128,48 @@ class PindelCaller(val root: Configurable) extends BiopetCommandLineFunction wit
 
     // set the output file, the DELetion call is always made
     // TODO: add more outputs for the LI, SI, INV etc...
-    output_file = new File(output_prefix + File.separator, "sample_D")
+    outputFile = new File(outputPrefix + File.separator, "sample_D")
   }
 
   def cmdLine = required(executable) +
     required("--fasta ", reference) +
-    optional("--pindel-config-file", pindel_file) +
-    optional("--config-file", config_file) +
-    required("--output-prefix ", new File(output_prefix + File.separator, "sample")) +
+    optional("--pindel-config-file", pindelFile) +
+    optional("--config-file", configFile) +
+    required("--output-prefix ", new File(outputPrefix + File.separator, "sample")) +
     optional("--RP", RP) +
-    optional("--min_distance_to_the_end", min_distance_to_the_end) +
+    optional("--min_distance_to_the_end", minDistanceToTheEnd) +
     optional("--number_of_threads", threads) +
-    optional("--max_range_index", max_range_index) +
-    optional("--windows_size", window_size) +
-    optional("--sequencing_error_rate", sequencing_error_rate) +
+    optional("--max_range_index", maxRangeIndex) +
+    optional("--windows_size", windowSize) +
+    optional("--sequencing_error_rate", sequencingErrorRate) +
     optional("--sensitivity", sensitivity) +
-    optional("--maximum_allowed_mismatch_rate", maximum_allowed_mismatch_rate) +
+    optional("--maximum_allowed_mismatch_rate", maximumAllowedMismatchRate) +
     optional("--NM", nm) +
-    conditional(report_inversions, "--report_inversions") +
-    conditional(report_duplications, "--report_duplications") +
-    conditional(report_long_insertions, "--report_long_insertions") +
-    conditional(report_breakpoints, "--report_breakpoints") +
-    conditional(report_close_mapped_reads, "--report_close_mapped_reads") +
-    conditional(report_only_close_mapped_reads, "--report_only_close_mapped_reads") +
-    conditional(report_interchromosomal_events, "--report_interchromosomal_events") +
+    conditional(reportInversions, "--report_inversions") +
+    conditional(reportDuplications, "--report_duplications") +
+    conditional(reportLongInsertions, "--report_long_insertions") +
+    conditional(reportBreakpoints, "--report_breakpoints") +
+    conditional(reportCloseMappedReads, "--report_close_mapped_reads") +
+    conditional(reportOnlyCloseMappedReads, "--report_only_close_mapped_reads") +
+    conditional(reportInterchromosomalEvents, "--report_interchromosomal_events") +
     conditional(IndelCorrection, "--IndelCorrection") +
     conditional(NormalSamples, "--NormalSamples") +
     optional("--breakdancer", breakdancer) +
     optional("--include", include) +
     optional("--exclude", exclude) +
-    optional("--additional_mismatch", additional_mismatch) +
-    optional("--min_perfect_match_around_BP", min_perfect_match_around_BP) +
-    optional("--min_inversion_size", min_inversion_size) +
-    optional("--min_num_matched_bases", min_num_matched_bases) +
-    optional("--balance_cutoff", balance_cutoff) +
-    optional("--anchor_quality", anchor_quality) +
-    optional("--minimum_support_for_event", minimum_support_for_event) +
-    optional("--input_SV_Calls_for_assembly", input_SV_Calls_for_assembly) +
+    optional("--additional_mismatch", additionalMismatch) +
+    optional("--min_perfect_match_around_BP", minPerfectMatchAroundBP) +
+    optional("--min_inversion_size", minInversionSize) +
+    optional("--min_num_matched_bases", minNumMatchedBases) +
+    optional("--balance_cutoff", balanceCutoff) +
+    optional("--anchor_quality", anchorQuality) +
+    optional("--minimum_support_for_event", minimumSupportForEvent) +
+    optional("--input_SV_Calls_for_assembly", inputSVCallsForAssembly) +
     conditional(genotyping, "-g") +
-    optional("--output_of_breakdancer_events", output_of_breakdancer_events) +
-    optional("--name_of_logfile", name_of_logfile) +
-    optional("--Ploidy", Ploidy) +
-    conditional(detect_DD, "detect_DD") +
+    optional("--output_of_breakdancer_events", outputOfBreakdancerEvents) +
+    optional("--name_of_logfile", nameOfLogfile) +
+    optional("--Ploidy", ploidy) +
+    conditional(detectDD, "detect_DD") +
     optional("--MAX_DD_BREAKPOINT_DISTANCE", MAX_DD_BREAKPOINT_DISTANCE) +
     optional("--MAX_DISTANCE_CLUSTER_READS", MAX_DISTANCE_CLUSTER_READS) +
     optional("--MIN_DD_CLUSTER_SIZE", MIN_DD_CLUSTER_SIZE) +
@@ -178,8 +181,8 @@ class PindelCaller(val root: Configurable) extends BiopetCommandLineFunction wit
 object PindelCaller {
   def apply(root: Configurable, configFile: File, outputDir: File): PindelCaller = {
     val caller = new PindelCaller(root)
-    caller.config_file = Some(configFile)
-    caller.output_prefix = outputDir
+    caller.configFile = Some(configFile)
+    caller.outputPrefix = outputDir
     caller
   }
 }
-- 
GitLab