From ee058d6a4f3efbf2b2b82f9856874f7bad9650c7 Mon Sep 17 00:00:00 2001
From: bow <bow@bow.web.id>
Date: Fri, 13 Mar 2015 10:33:01 +0100
Subject: [PATCH] Add ReorderSam (to ensure correct sam header ordering)

---
 .../biopet/extensions/picard/ReorderSam.scala | 49 +++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/ReorderSam.scala

diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/ReorderSam.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/ReorderSam.scala
new file mode 100644
index 000000000..526ed4de9
--- /dev/null
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/ReorderSam.scala
@@ -0,0 +1,49 @@
+/**
+ * Biopet is built on top of GATK Queue for building bioinformatic
+ * pipelines. It is mainly intended to support LUMC SHARK cluster which is running
+ * SGE. But other types of HPC that are supported by GATK Queue (such as PBS)
+ * should also be able to execute Biopet tools and pipelines.
+ *
+ * Copyright 2014 Sequencing Analysis Support Core - Leiden University Medical Center
+ *
+ * Contact us at: sasc@lumc.nl
+ *
+ * A dual licensing mode is applied. The source code within this project that are
+ * not part of GATK Queue is freely available for non-commercial use under an AGPL
+ * license; For commercial users or users who do not want to follow the AGPL
+ * license, please contact us to obtain a separate license.
+ */
+package nl.lumc.sasc.biopet.extensions.picard
+
+import java.io.File
+
+import org.broadinstitute.gatk.utils.commandline.{ Argument, Input, Output }
+
+import nl.lumc.sasc.biopet.core.config.Configurable
+
+class ReorderSam(val root: Configurable) extends Picard {
+
+  javaMainClass = "picard.sam.GatherBamFiles"
+
+  @Input(doc = "Input SAM or BAM file", required = true)
+  var input: File = null
+
+  @Input(doc = "Reference sequence to reorder reads to match", required = true)
+  var reference: File = null
+
+  @Output(doc = "Output SAM or BAM file", required = true)
+  var output: File = null
+
+  @Argument(doc = "Allow incomplete dict concordance", required = false)
+  var allowIncompleteDictConcordance: Boolean = config("allow_incomplete_dict_concordance", default= false)
+
+  @Argument(doc = "Allow contig length discordance", required = false)
+  var allowContigLengthDiscordance: Boolean = config("allow_contig_length_discordance", default= false)
+
+  override def commandLine = super.commandLine +
+    conditional(allowIncompleteDictConcordance, "ALLOW_INCOMPLETE_DICT_CONCORDANCE=TRUE") +
+    conditional(allowContigLengthDiscordance, "ALLOW_CONTIG_LENGTH_DISCORDANCE=TRUE") +
+    required("REFERENCE=", reference, spaceSeparated = false) +
+    required("INPUT=", input, spaceSeparated = false) +
+    required("OUTPUT=", output, spaceSeparated = false)
+}
-- 
GitLab