From 624826f72d8045442768d5e641fdad5835548f3a Mon Sep 17 00:00:00 2001
From: DavyCats <davycats.dc@gmail.com>
Date: Wed, 8 Jan 2020 13:40:06 +0100
Subject: [PATCH] add parameter_meta to picard metrics

---
 CHANGELOG.md |  2 ++
 picard.wdl   | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 scripts      |  2 +-
 3 files changed, 91 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4f8371f..49db6bb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,8 @@ that users understand how the changes affect the new version.
 
 version 2.2.0-dev
 ---------------------------
++ Added parameter_meta sections to a variety of tasks.
++ Picard's BedToIntervalList outputPath ipnut is now optional (with a default of "regions.interval_list")
 + Update htseq to default image version 0.11.2
 + Update biowdl-input-converter in common.wdl to version 0.2.1.
 + Update TALON section to now include the new annotation file output, and add config file creation to the TALON task.
diff --git a/picard.wdl b/picard.wdl
index caee009..d5daa24 100644
--- a/picard.wdl
+++ b/picard.wdl
@@ -4,7 +4,7 @@ task BedToIntervalList {
     input {
         File bedFile
         File dict
-        String outputPath
+        String outputPath = "regions.interval_list"
 
         String memory = "12G"
         String javaXmx = "4G"
@@ -29,6 +29,18 @@ task BedToIntervalList {
         docker: dockerImage
         memory: memory
     }
+
+    parameter_meta {
+        bedfile: {description: "A bed file", category: "required"}
+        dict: {description: "A sequence dict file.", category: "required"}
+        outputPath: {description: "The location the output interval list should be written to.",
+                     category: "advanced"}
+        memory: {description: "The amount of memory this job will use.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. (Should be lower than `memory` to accommodate JVM overhead.",
+                  category: "advanced"}
+        dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
+                      category: "advanced"}
+    }
 }
 
 task CollectMultipleMetrics {
@@ -119,10 +131,44 @@ task CollectMultipleMetrics {
     }
 
     runtime {
-
         docker: dockerImage
         memory: memory
     }
+
+    parameter_meta {
+        inputBam: {description: "The input BAM file for which metrics will be collected.",
+                   category: "required"}
+        inputBamIndex: {description: "The index of the input BAM file.", category: "required"}
+        referenceFasta: {description: "The reference fasta file which was also used for mapping.",
+                         category: "required"}
+        referenceFastaDict: {description: "The sequence dictionary associated with the reference fasta file.",
+                             category: "required"}
+        referenceFastaFai: {description: "The index for the reference fasta file.", category: "required"}
+        basename: {description: "The basename/prefix of the output files (may include directories).",
+                   category: "required"}
+        collectAlignmentSummaryMetrics: {description: "Equivalent to the `PROGRAM=CollectAlignmentSummaryMetrics` argument.",
+                                         category: "common"}
+        collectInsertSizeMetrics: {description: "Equivalent to the `PROGRAM=CollectInsertSizeMetrics` argument.",
+                                   category: "common"}
+        qualityScoreDistribution: {description: "Equivalent to the `PROGRAM=QualityScoreDistribution` argument.",
+                                   category: "common"}
+        meanQualityByCycle: {description: "Equivalent to the `PROGRAM=MeanQualityByCycle` argument.",
+                             category: "common"}
+        collectBaseDistributionByCycle: {description: "Equivalent to the `PROGRAM=CollectBaseDistributionByCycle` argument.",
+                                         category: "common"}
+        collectGcBiasMetrics: {description: "Equivalent to the `PROGRAM=CollectGcBiasMetrics` argument.",
+                               category: "common"}
+        collectSequencingArtifactMetrics: {description: "Equivalent to the `PROGRAM=CollectSequencingArtifactMetrics` argument.",
+                                           category: "common"}
+        collectQualityYieldMetrics: {description: "Equivalent to the `PROGRAM=CollectQualityYieldMetrics` argument.",
+                                     category: "common"}
+
+        memory: {description: "The amount of memory this job will use.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. (Should be lower than `memory` to accommodate JVM overhead.",
+                  category: "advanced"}
+        dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
+                      category: "advanced"}
+    }
 }
 
 task CollectRnaSeqMetrics {
@@ -159,6 +205,23 @@ task CollectRnaSeqMetrics {
         docker: dockerImage
         memory: memory
     }
+
+    parameter_meta {
+        inputBam: {description: "The input BAM file for which metrics will be collected.",
+                   category: "required"}
+        inputBamIndex: {description: "The index of the input BAM file.", category: "required"}
+        refRefflat: {description: "A refflat file containing gene annotations", catehory: "required"}
+        basename: {description: "The basename/prefix of the output files (may include directories).",
+                   category: "required"}
+        strandSpecificity: {description: "Equivalent to the `STRAND_SPECIFICITY` option of picard's CollectRnaSeqMetrics",
+                            category: "common"}
+
+        memory: {description: "The amount of memory this job will use.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. (Should be lower than `memory` to accommodate JVM overhead.",
+                  category: "advanced"}
+        dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
+                      category: "advanced"}
+    }
 }
 
 task CollectTargetedPcrMetrics {
@@ -201,6 +264,29 @@ task CollectTargetedPcrMetrics {
         docker: dockerImage
         memory: memory
     }
+
+    parameter_meta {
+        inputBam: {description: "The input BAM file for which metrics will be collected.",
+                   category: "required"}
+        inputBamIndex: {description: "The index of the input BAM file.", category: "required"}
+        referenceFasta: {description: "The reference fasta file which was also used for mapping.",
+                         category: "required"}
+        referenceFastaDict: {description: "The sequence dictionary associated with the reference fasta file.",
+                             category: "required"}
+        referenceFastaFai: {description: "The index for the reference fasta file.", category: "required"}
+        ampliconIntervals: {description: "An interval list describinig the coordinates of the amplicons sequenced.",
+                           category: "required"}
+        targetIntervals: {description: "An interval list describing the coordinates of the targets sequenced.",
+                          category: "required"}
+        basename: {description: "The basename/prefix of the output files (may include directories).",
+                   category: "required"}
+
+        memory: {description: "The amount of memory this job will use.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. (Should be lower than `memory` to accommodate JVM overhead.",
+                  category: "advanced"}
+        dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
+                      category: "advanced"}
+    }
 }
 
 # Combine multiple recalibrated BAM files from scattered ApplyRecalibration runs
diff --git a/scripts b/scripts
index fc603e5..0817a9d 160000
--- a/scripts
+++ b/scripts
@@ -1 +1 @@
-Subproject commit fc603e5d408b89b99297fb5737586c059c5f9df6
+Subproject commit 0817a9dad46ff031ada83944bfc5f7c6b88b9d13
-- 
GitLab