diff --git a/bam2fastx.wdl b/bam2fastx.wdl
index e8884ab01a0b82f1829dd4223fe30a60f0c6129d..1b911dbbcc45b4b50d0c7f866088841c46c43b10 100644
--- a/bam2fastx.wdl
+++ b/bam2fastx.wdl
@@ -37,18 +37,18 @@ task Bam2Fasta {
 
     command {
         set -e
-        mkdir -p "$(dirname ~{outputPrefix})"'
+        mkdir -p "$(dirname ~{outputPrefix})"
 
         # Localise the bam and pbi files so they are next to each other in the
         # current folder.
         bamFiles=""
-        for bamFile in ~{sep=" " bam};
+        for bamFile in ~{sep=" " bam}
         do
             ln ${bamFile} .
             bamFiles=${bamFiles}" $(basename ${bamFile})"
         done
 
-        for index in ~{sep=" " bamIndex};
+        for index in ~{sep=" " bamIndex}
         do
             ln ${index} .
         done
@@ -110,13 +110,13 @@ task Bam2Fastq {
         # Localise the bam and pbi files so they are next to each other in the
         # current folder.
         bamFiles=""
-        for bamFile in ~{sep=" " bam};
+        for bamFile in ~{sep=" " bam}
         do
             ln ${bamFile} .
             bamFiles=${bamFiles}" $(basename ${bamFile})"
         done
 
-        for index in ~{sep=" " bamIndex};
+        for index in ~{sep=" " bamIndex}
         do
             ln ${index} .
         done
diff --git a/delly.wdl b/delly.wdl
index f708f4949fa74743e3655ab8d8c0e292ac0050c9..ffe9023a6221c24f0cfd0ba5b880d345269bc32a 100644
--- a/delly.wdl
+++ b/delly.wdl
@@ -1,7 +1,5 @@
 version 1.0
 
-# MIT License
-#
 # Copyright (c) 2018 Leiden University Medical Center
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -59,9 +57,9 @@ task CallSV {
         bamFile: {description: "The bam file to process.", category: "required"}
         bamIndex: {description: "The index bam file.", category: "required"}
         referenceFasta: {description: "The reference fasta file also used for mapping.", category: "required"}
-        referenceFastaFai: {description: "Fasta index (.fai) file of the reference", category: "required" }
+        referenceFastaFai: {description: "Fasta index (.fai) file of the reference.", category: "required" }
         outputPath: {description: "The location the output VCF file should be written.", category: "common"}
-        memory: {description: "The memory required to run the programs", category: "advanced"}
+        memory: {description: "The memory required to run the programs.", category: "advanced"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
     }
diff --git a/fastqc.wdl b/fastqc.wdl
index 04b6813f3369c02debab54464e2627fea3a3ba42..dd3dfc2ea1cce232b0912afd75ac927336ea12a6 100644
--- a/fastqc.wdl
+++ b/fastqc.wdl
@@ -29,6 +29,7 @@ task Fastqc {
         Boolean noFilter = false
         Boolean extract = false
         Boolean nogroup = false
+
         Int? minLength
         String? format
         File? contaminants
@@ -37,32 +38,35 @@ task Fastqc {
         Int? kmers
         String? dir
 
-        Int threads = 1
         # Set javaXmx a little high. Equal to fastqc default with 7 threads.
         # This is because some fastq files need more memory. 2G per core
         # is a nice cluster default, so we use all the rest of the memory for
         # fastqc so we should have as little OOM crashes as possible even with
         # weird edge case fastq's.
-        String javaXmx="1750M"  
+        String javaXmx="1750M"
+        Int threads = 1
         String memory = "2G"
         Int timeMinutes = 1 + ceil(size(seqFile, "G")) * 4
-        String dockerImage = "quay.io/biocontainers/fastqc:0.11.9--0"
-        Array[File]? NoneArray
-        File? NoneFile
+        String dockerImage = "quay.io/biocontainers/fastqc:0.11.9--0
+
+        Array[File]? noneArray
+        File? noneFile
     }
 
     # Chops of the .gz extension if present.
-    # The Basename needs to be taken here. Otherwise paths might differ between similar jobs.
+    # The Basename needs to be taken here. Otherwise paths might differ
+    # between similar jobs.
     String name = basename(sub(seqFile, "\.gz$",""))
-    # This regex chops of the extension and replaces it with _fastqc for the reportdir.
+    # This regex chops of the extension and replaces it with _fastqc for
+    # the reportdir.
     # Just as fastqc does it.
     String reportDir = outdirPath + "/" + sub(name, "\.[^\.]*$", "_fastqc")
 
-    # We reimplement the perl wrapper here. This has the advantage that it gives
-    # us more control over the amount of memory used.
+    # We reimplement the perl wrapper here. This has the advantage that it
+    # gives us more control over the amount of memory used.
     command <<<
         set -e
-        mkdir -p ~{outdirPath}
+        mkdir -p "~{outdirPath}"
         FASTQC_DIR="/usr/local/opt/fastqc-0.11.9"
         export CLASSPATH="$FASTQC_DIR:$FASTQC_DIR/sam-1.103.jar:$FASTQC_DIR/jbzip2-0.9.jar:$FASTQC_DIR/cisd-jhdf5.jar"
         java -Djava.awt.headless=true -XX:ParallelGCThreads=1 \
@@ -86,23 +90,24 @@ task Fastqc {
     >>>
 
     output {
-        File? rawReport = if extract then reportDir + "/fastqc_data.txt" else NoneFile
         File htmlReport = reportDir + ".html"
         File reportZip = reportDir + ".zip"
-        File? summary = if extract then reportDir + "/summary.txt" else NoneFile
-        Array[File]? images = if extract then glob(reportDir + "/Images/*.png") else NoneArray
+        File? summary = if extract then reportDir + "/summary.txt" else noneFile
+        File? rawReport = if extract then reportDir + "/fastqc_data.txt" else noneFile
+        Array[File]? images = if extract then glob(reportDir + "/Images/*.png") else noneArray
     }
 
     runtime {
         cpu: threads
         memory: memory
-        docker: dockerImage
         time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         seqFile: {description: "A fastq file.", category: "required"}
-        outdirPath: {description: "The path to write the output to", catgory: "required"}
+        outdirPath: {description: "The path to write the output to.", catgory: "required"}
         casava: {description: "Equivalent to fastqc's --casava flag.", category: "advanced"}
         nano: {description: "Equivalent to fastqc's --nano flag.", category: "advanced"}
         noFilter: {description: "Equivalent to fastqc's --nofilter flag.", category: "advanced"}
@@ -115,18 +120,16 @@ task Fastqc {
         limits: {description: "Equivalent to fastqc's --limits option.", category: "advanced"}
         kmers: {description: "Equivalent to fastqc's --kmers option.", category: "advanced"}
         dir: {description: "Equivalent to fastqc's --dir option.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", category: "advanced"}
         threads: {description: "The number of cores to use.", category: "advanced"}
-        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.",
-            category: "advanced"}
         memory: {description: "The amount of memory this job will use.", category: "advanced"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 
     meta {
         WDL_AID: {
-            exclude: ["NoneFile", "NoneArray"]
+            exclude: ["noneFile", "noneArray"]
         }
     }
 }
@@ -155,14 +158,14 @@ task GetConfiguration {
     }
 
     runtime {
-        memory: "2G" # Needs more than 1 to pull the docker image
+        memory: "2G" # Needs more than 1 to pull the docker image.
         time_minute: timeMinutes
         docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
diff --git a/fastqsplitter.wdl b/fastqsplitter.wdl
index c523cf8a7dd4e86e65cc768daa3c98f98854b39f..25a50954323974554925a8ca1305aba63a1e49ee 100644
--- a/fastqsplitter.wdl
+++ b/fastqsplitter.wdl
@@ -1,7 +1,5 @@
 version 1.0
 
-# MIT License
-#
 # Copyright (c) 2019 Leiden University Medical Center
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -26,19 +24,24 @@ task Fastqsplitter {
     input {
         File inputFastq
         Array[String]+ outputPaths
-        String dockerImage = "quay.io/biocontainers/fastqsplitter:1.1.0--py37h516909a_1"
+
         Int? compressionLevel
         Int? threadsPerFile
-         # fastqplitter utilizes one thread per input file and one or more threads per output file + one thread for the application.
-         # Since a compression level of 1 is used, each output file uses approx 0.5 cores.
+
+        # fastqplitter utilizes one thread per input file and one or
+        # more threads per output file + one thread for the application.
+        # Since a compression level of 1 is used, each output file
+        # uses approx 0.5 cores.
         Int cores = 1 + ceil(0.5 * length(outputPaths))
+        String dockerImage = "quay.io/biocontainers/fastqsplitter:1.1.0--py37h516909a_1"
     }
 
     # Busybox mkdir does not accept multiple paths.
     command <<<
         set -e
         for FILE in ~{sep=' ' outputPaths}
-            do mkdir -p "$(dirname $FILE)"
+        do
+            mkdir -p "$(dirname ${FILE})"
         done
         fastqsplitter \
         ~{"-c " + compressionLevel} \
@@ -51,15 +54,16 @@ task Fastqsplitter {
         Array[File] chunks = outputPaths
     }
 
-    # Using very safe margins here. 10MB/300MB per outputfile is used for single-threaded/multi-threaded compression.
+    # Using very safe margins here. 10MB/300MB per outputfile is used for
+    # single-threaded/multi-threaded compression.
     Float memoryPerFile = if select_first([threadsPerFile, 1]) > 1 then 0.40 else 0.02
     Int fastqsplitterMemory = ceil(0.100 + memoryPerFile * length(outputPaths))
-    # Make sure a minimum of 2 GB is present to pull the singularity image
+    # Make sure a minimum of 2 GB is present to pull the singularity image.
     Int memory = if fastqsplitterMemory <= 2 then 2 else fastqsplitterMemory
 
     runtime {
+        cpu: cores
         memory: "~{memory}G"
         docker: dockerImage
-        cpu: cores
     }
 }
diff --git a/flash.wdl b/flash.wdl
index 6e704921590264bf1477088a8944db729f0eaedd..c4554c50ff95b1c4d09258906ba5bfd26bdf8b03 100644
--- a/flash.wdl
+++ b/flash.wdl
@@ -24,13 +24,14 @@ import "common.wdl" as common
 
 task Flash {
     input {
-        String? preCommand
         FastqPair inputFastq
         String outdirPath
         String outPrefix = "flash"
+        Boolean compress = true
+
+        String? preCommand
         Int? minOverlap
         Int? maxOverlap
-        Boolean compress = true
 
         Int threads = 2
         String memory = "2G"
@@ -55,8 +56,8 @@ task Flash {
         File notCombined1 = outdirPath + "/" + outPrefix + ".notCombined_1.fastq.gz"
         File notCombined2 = outdirPath + "/" + outPrefix + ".notCombined_2.fastq.gz"
         FastqPair notCombined = object {
-          R1: notCombined1,
-          R2: notCombined2
+            R1: notCombined1,
+            R2: notCombined2
         }
         File hist = outdirPath + "/" + outPrefix + ".hist"
         File histogram = outdirPath + "/" + outPrefix + ".histogram"
@@ -66,5 +67,4 @@ task Flash {
         cpu: threads
         memory: memory
     }
-
-}
\ No newline at end of file
+}
diff --git a/gatk.wdl b/gatk.wdl
index 12416dda147265aff574110d075f34f2897fdae7..cc5d1de5771d6c52b5fe8e3e0a9d33ea12c97623 100644
--- a/gatk.wdl
+++ b/gatk.wdl
@@ -28,12 +28,13 @@ task AnnotateIntervals {
         String annotatedIntervalsPath = "intervals.annotated.tsv"
         File intervals
         String intervalMergingRule = "OVERLAPPING_ONLY"
+        Int featureQueryLookahead = 1000000
+
         File? mappabilityTrack
         File? segmentalDuplicationTrack
-        Int featureQueryLookahead = 1000000
 
-        String memory = "3G"
         String javaXmx = "2G"
+        String memory = "3G"
         Int timeMinutes = 5
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -57,9 +58,9 @@ task AnnotateIntervals {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
@@ -71,17 +72,15 @@ task AnnotateIntervals {
         intervalMergingRule: {description: "Equivalent to gatk AnnotateIntervals' `--interval-merging-rule` option.", category: "advanced"}
         mappabilityTrack: {description: "Equivalent to gatk AnnotateIntervals' `--mappability-track` option.", category: "common"}
         segmentalDuplicationTrack: {description: "Equivalent to gatk AnnotateIntervals' `--segmenta-duplicarion-track` option.", category: "common"}
-        featureQueryLookahead: {description: "Equivalent to gatk AnnotateIntervals' `--feature-query-lookahead` option", category: "advanced"}
+        featureQueryLookahead: {description: "Equivalent to gatk AnnotateIntervals' `--feature-query-lookahead` option.", 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"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", category: "advanced"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
-# Apply Base Quality Score Recalibration (BQSR) model
+# Apply Base Quality Score Recalibration (BQSR) model.
 task ApplyBQSR {
     input {
         File inputBam
@@ -93,9 +92,11 @@ task ApplyBQSR {
         File referenceFastaDict
         File referenceFastaFai
 
-        Int memoryMb = javaXmxMb + 512
         Int javaXmxMb = 2048
-        Int timeMinutes = 120 # This will likely be used with intervals, as such size based estimation can't be used.
+        Int memoryMb = javaXmxMb + 512
+        # This will likely be used with intervals, as such size based
+        # estimation can't be used.
+        Int timeMinutes = 120
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
 
@@ -124,33 +125,29 @@ task ApplyBQSR {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: "~{memoryMb}M"
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         inputBam: {description: "The BAM file which should be recalibrated.", category: "required"}
         inputBamIndex: {description: "The input BAM file's index.", category: "required"}
         outputBamPath: {description: "The location the resulting BAM file should be written.", category: "required"}
         recalibrationReport: {description: "The BQSR report the be used for recalibration.", category: "required"}
         sequenceGroupInterval: {description: "Bed files describing the regions to operate on.", category: "advanced"}
-        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"}
+        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"}
-
+        javaXmxMb: {description: "The maximum memory available to the program in megabytes. Should be lower than `memoryMb` to accommodate JVM overhead.", category: "advanced"}
         memoryMb: {description: "The amount of memory this job will use in megabytes.", category: "advanced"}
-        javaXmxMb: {description: "The maximum memory available to the program in megabytes. Should be lower than `memoryMb` to accommodate JVM overhead.",
-                  category: "advanced"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
-# Generate Base Quality Score Recalibration (BQSR) model
+# Generate Base Quality Score Recalibration (BQSR) model.
 task BaseRecalibrator {
     input {
         File inputBam
@@ -159,14 +156,15 @@ task BaseRecalibrator {
         Array[File] sequenceGroupInterval = []
         Array[File] knownIndelsSitesVCFs = []
         Array[File] knownIndelsSitesVCFIndexes = []
-        File? dbsnpVCF
-        File? dbsnpVCFIndex
         File referenceFasta
         File referenceFastaDict
         File referenceFastaFai
 
-        Int memoryMb = javaXmxMb + 512
+        File? dbsnpVCF
+        File? dbsnpVCFIndex
+
         Int javaXmxMb = 1024
+        Int memoryMb = javaXmxMb + 512
         Int timeMinutes = 120 # This will likely be used with intervals, as such size based estimation can't be used.
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -190,42 +188,39 @@ task BaseRecalibrator {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: "~{memoryMb}M"
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         inputBam: {description: "The BAM file to generate a BQSR report for.", category: "required"}
         inputBamIndex: {description: "The index of the input BAM file.", category: "required"}
         recalibrationReportPath: {description: "The location to write the BQSR report to.", category: "required"}
         sequenceGroupInterval: {description: "Bed files describing the regions to operate on.", category: "advanced"}
         knownIndelsSitesVCFs: {description: "VCF files with known indels.", category: "advanced"}
         knownIndelsSitesVCFIndexes: {description: "The indexed for the known variant VCFs.", category: "advanced"}
+        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"}
         dbsnpVCF: {description: "A dbSNP VCF.", category: "common"}
         dbsnpVCFIndex: {description: "The index for the dbSNP VCF.", category: "common"}
-        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"}
-
+        javaXmxMb: {description: "The maximum memory available to the program in megabytes. Should be lower than `memoryMb` to accommodate JVM overhead.", category: "advanced"}
         memoryMb: {description: "The amount of memory this job will use in megabytes.", category: "advanced"}
-        javaXmxMb: {description: "The maximum memory available to the program in megabytes. Should be lower than `memoryMb` to accommodate JVM overhead.",
-                  category: "advanced"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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 CalculateContamination {
     input {
         File tumorPileups
+
         File? normalPileups
 
-        String memory = "13G"
         String javaXmx = "12G"
+        String memory = "13G"
         Int timeMinutes = 180
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -246,20 +241,19 @@ task CalculateContamination {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         tumorPileups: {description: "The pileup summary of a tumor/case sample.", category: "required"}
         normalPileups: {description: "The pileup summary of the normal/control sample.", category: "common"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -268,8 +262,8 @@ task CallCopyRatioSegments {
         String outputPrefix
         File copyRatioSegments
 
-        String memory = "3G"
         String javaXmx = "2G"
+        String memory = "3G"
         Int timeMinutes = 2
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -289,20 +283,19 @@ task CallCopyRatioSegments {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         outputPrefix: {description: "The prefix for the output files.", category: "required"}
         copyRatioSegments: {description: "The copy ratios file generated by gatk ModelSegments.", category: "required"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -310,15 +303,16 @@ task CollectAllelicCounts {
     input {
         String allelicCountsPath = "allelic_counts.tsv"
         File commonVariantSites
-        File? commonVariantSitesIndex
         File inputBam
         File inputBamIndex
         File referenceFasta
         File referenceFastaDict
         File referenceFastaFai
 
-        String memory = "11G"
+        File? commonVariantSitesIndex
+
         String javaXmx = "10G"
+        String memory = "11G"
         Int timeMinutes = 120
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -339,26 +333,25 @@ task CollectAllelicCounts {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         allelicCountsPath: {description: "The path the output should be written to.", category: "advanced"}
         commonVariantSites: {description: "Interval list or vcf of common variant sites (to retrieve the allelic counts for).", category: "required"}
-        commonVariantSitesIndex: {description: "The index for commonVariantSites.", category: "common"}
         inputBam: {description: "The BAM file to generate counts for.", category: "required"}
         inputBamIndex: {description: "The index of the input BAM file.", category: "required"}
         referenceFasta: {description: "The reference fasta file.", 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"}
+        commonVariantSitesIndex: {description: "The index for commonVariantSites.", category: "common"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -373,8 +366,8 @@ task CollectReadCounts {
         File referenceFastaFai
         String intervalMergingRule = "OVERLAPPING_ONLY"
 
-        String memory = "8G"
         String javaXmx = "7G"
+        String memory = "8G"
         Int timeMinutes = 1 + ceil(size(inputBam, "G") * 5)
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -397,12 +390,13 @@ task CollectReadCounts {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         countsPath: {description: "The location the output should be written to.", category: "advanced"}
         intervals: {description: "The intervals to collect counts for.", category: "required"}
         inputBam: {description: "The BAM file to determine the coverage for.", category: "required"}
@@ -411,12 +405,10 @@ task CollectReadCounts {
         referenceFastaDict: {description: "The sequence dictionary associated with the reference fasta file.", category: "required"}
         referenceFastaFai: {description: "The index for the reference fasta file.", category: "required"}
         intervalMergingRule: {description: "Equivalent to gatk CollectReadCounts' `--interval-merging-rule` option.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -430,8 +422,8 @@ task CombineGVCFs {
         File referenceFastaDict
         File referenceFastaFai
 
-        String memory = "5G"
         String javaXmx = "4G"
+        String memory = "5G"
         Int timeMinutes = 1 + ceil(size(gvcfFiles, "G") * 8)
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -453,28 +445,24 @@ task CombineGVCFs {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         gvcfFiles: {description: "The GVCF files to be combined.", category: "required"}
         gvcfFilesIndex: {description: "The indexes for the GVCF files.", caregory: "required"}
         intervals: {description: "Bed files or interval lists describing the regions to operate on.", category: "advanced"}
         outputPath: {description: "The location the combined GVCF should be written to.", 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"}
+        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"}
-
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -486,12 +474,12 @@ task CombineVariants {
         String genotypeMergeOption = "UNIQUIFY"
         String filteredRecordsMergeType = "KEEP_IF_ANY_UNFILTERED"
         Array[String]+ identifiers
-        Array[File]+ variantVcfs # follow "identifiers" array order
+        Array[File]+ variantVcfs # Follow "identifiers" array order.
         Array[File]+ variantIndexes
         String outputPath
 
-        String memory = "13G"
         String javaXmx = "12G"
+        String memory = "13G"
         Int timeMinutes = 180
         String dockerImage = "broadinstitute/gatk3:3.8-1"
     }
@@ -499,17 +487,17 @@ task CombineVariants {
     command <<<
         set -e
         mkdir -p "$(dirname ~{outputPath})"
-
-        # build "-V:<ID> <file.vcf>" arguments according to IDs and VCFs to merge
-        # Make sure commands are run in bash
+        # Build "-V:<ID> <file.vcf>" arguments according to IDs
+        # and VCFs to merge.
+        # Make sure commands are run in bash.
         V_args=$(bash -c '
         set -eu
         ids=(~{sep=" " identifiers})
         vars=(~{sep=" " variantVcfs})
         for (( i = 0; i < ${#ids[@]}; ++i ))
-          do
+        do
             printf -- "-V:%s %s " "${ids[i]}" "${vars[i]}"
-          done
+        done
         ')
         java -Xmx~{javaXmx} -XX:ParallelGCThreads=1 -jar /usr/GenomeAnalysisTK.jar \
         -T CombineVariants \
@@ -526,12 +514,13 @@ task CombineVariants {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         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"}
@@ -540,14 +529,11 @@ task CombineVariants {
         identifiers: {description: "The sample identifiers in the same order as variantVcfs.", category: "required"}
         variantVcfs: {description: "The input VCF files in the same order as identifiers.", category: "required"}
         variantIndexes: {description: "The indexes of the input VCF files.", category: "required"}
-        outputPath: {description: "The location the output should be written to", category: "required"}
-
+        outputPath: {description: "The location the output should be written to.", category: "required"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -555,10 +541,11 @@ task CreateReadCountPanelOfNormals {
     input {
         String PONpath = "PON.hdf5"
         Array[File]+ readCountsFiles
+
         File? annotatedIntervals
 
-        String memory = "8G"
         String javaXmx = "7G"
+        String memory = "8G"
         Int timeMinutes = 5
         String dockerImage = "broadinstitute/gatk:4.1.8.0" # The biocontainer causes a spark related error for some reason...
     }
@@ -578,34 +565,33 @@ task CreateReadCountPanelOfNormals {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         PONpath: {description: "The location the PON should be written to.", category: "common"}
         readCountsFiles: {description: "The read counts files as generated by CollectReadCounts.", category: "required"}
-        annotatedIntervals: {description: "An annotation set of intervals as generated by AnnotateIntervals. If provided, explicit GC correction will be performed.",
-                             category: "advanced"}
+        annotatedIntervals: {description: "An annotation set of intervals as generated by AnnotateIntervals. If provided, explicit GC correction will be performed.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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 DenoiseReadCounts {
     input {
-        File? PON
-        File? annotatedIntervals
         File readCounts
         String outputPrefix
 
-        String memory = "5G"
+        File? PON
+        File? annotatedIntervals
+
         String javaXmx = "4G"
+        String memory = "5G"
         Int timeMinutes = 5
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -628,23 +614,21 @@ task DenoiseReadCounts {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
-        PON: {description: "A panel of normals as generated by CreateReadCountPanelOfNormals.", category: "advanced"}
-        annotatedIntervals: {description: "An annotated set of intervals as generated by AnnotateIntervals. Will be ignored if PON is provided.",
-                             category: "advanced"}
+        # inputs
         readCounts: {description: "The read counts file as generated by CollectReadCounts.", category: "required"}
         outputPrefix: {description: "The prefix for the output files.", category: "required"}
+        PON: {description: "A panel of normals as generated by CreateReadCountPanelOfNormals.", category: "advanced"}
+        annotatedIntervals: {description: "An annotated set of intervals as generated by AnnotateIntervals. Will be ignored if PON is provided.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -656,14 +640,15 @@ task FilterMutectCalls {
         File unfilteredVcf
         File unfilteredVcfIndex
         String outputVcf
+        Int uniqueAltReadCount = 4
+        File mutect2Stats
+
         File? contaminationTable
         File? mafTumorSegments
         File? artifactPriors
-        Int uniqueAltReadCount = 4
-        File mutect2Stats
 
-        String memory = "13G"
         String javaXmx = "12G"
+        String memory = "13G"
         Int timeMinutes = 60
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -692,41 +677,39 @@ task FilterMutectCalls {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         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"}
         unfilteredVcf: {description: "An unfiltered VCF file as produced by Mutect2.", category: "required"}
         unfilteredVcfIndex: {description: "The index of the unfiltered VCF file.", category: "required"}
         outputVcf: {description: "The location the filtered VCF file should be written.", category: "required"}
+        uniqueAltReadCount: {description: "Equivalent to FilterMutectCalls' `--unique-alt-read-count` option.", category: "advanced"}
+        mutect2Stats: {description: "Equivalent to FilterMutectCalls' `-stats` option.", category: "advanced"}
         contaminationTable: {description: "Equivalent to FilterMutectCalls' `--contamination-table` option.", category: "advanced"}
         mafTumorSegments: {description: "Equivalent to FilterMutectCalls' `--tumor-segmentation` option.", category: "advanced"}
         artifactPriors: {description: "Equivalent to FilterMutectCalls' `--ob-priors` option.", category: "advanced"}
-        uniqueAltReadCount: {description: "Equivalent to FilterMutectCalls' `--unique-alt-read-count` option.", category: "advanced"}
-        mutect2Stats: {description: "Equivalent to FilterMutectCalls' `-stats` option.", category: "advanced"}
-
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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 recalibration tables from scattered BaseRecalibrator runs
+# Combine multiple recalibration tables from scattered BaseRecalibrator runs.
 task GatherBqsrReports {
     input {
         Array[File] inputBQSRreports
         String outputReportPath
 
-        Int memoryMb = 256 + javaXmxMb
         Int javaXmxMb = 256
+        Int memoryMb = 256 + javaXmxMb
         Int timeMinutes = 1
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -745,21 +728,19 @@ task GatherBqsrReports {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: "~{memoryMb}M"
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         inputBQSRreports: {description: "The BQSR reports to be merged.", category: "required"}
         outputReportPath: {description: "The location of the combined BQSR report.", category: "required"}
-
+        javaXmxMb: {description: "The maximum memory available to the program in megabytes. Should be lower than `memory` to accommodate JVM overhead.", category: "advanced"}
         memoryMb: {description: "The amount of memory this job will use in megabytes.", category: "advanced"}
-        javaXmxMb: {description: "The maximum memory available to the program in megabytes. Should be lower than `memory` to accommodate JVM overhead.",
-                  category: "advanced"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -770,9 +751,11 @@ task GenomicsDBImport {
         Array[File]+ intervals
         String genomicsDBWorkspacePath = "genomics_db"
         String genomicsDBTarFile = "genomics_db.tar.gz"
+
         String? tmpDir
-        String memory = "5G"
+
         String javaXmx = "4G"
+        String memory = "5G"
         Int timeMinutes = 180
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -794,25 +777,23 @@ task GenomicsDBImport {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         gvcfFiles: {description: "The gvcfFiles to be merged.", category: "required"}
         gvcfFilesIndex: {description: "Indexes for the gvcfFiles.", category: "required"}
         intervals: {description: "intervals over which to operate.", category: "required"}
-        genomicsDBWorkspacePath: {description: "Where the genomicsDB files should be stored", category: "advanced"}
-        genomicsDBTarFile: {description: "Where the .tar file containing the genomicsDB should be stored", category: "advanced"}
-        tmpDir: {description: "Alternate temporary directory in case there is not enough space. Must be mounted when using containers",
-                 category: "advanced"}
+        genomicsDBWorkspacePath: {description: "Where the genomicsDB files should be stored.", category: "advanced"}
+        genomicsDBTarFile: {description: "Where the .tar file containing the genomicsDB should be stored.", category: "advanced"}
+        tmpDir: {description: "Alternate temporary directory in case there is not enough space. Must be mounted when using containers.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -820,18 +801,19 @@ task GenotypeGVCFs {
     input {
         File gvcfFile
         File gvcfFileIndex
-        Array[File]? intervals
         String outputPath
         File referenceFasta
         File referenceFastaDict
         File referenceFastaFai
         Array[String] annotationGroups = ["StandardAnnotation"]
+
+        Array[File]? intervals
         File? dbsnpVCF
         File? dbsnpVCFIndex
         File? pedigree
 
-        String memory = "7G"
         String javaXmx = "6G"
+        String memory = "7G"
         Int timeMinutes = 120 # This will likely be used with intervals, as such size based estimation can't be used.
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -854,35 +836,31 @@ task GenotypeGVCFs {
     output {
         File outputVCF = outputPath
         File outputVCFIndex = outputPath + ".tbi"
-
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         gvcfFile: {description: "The GVCF file to be genotyped.", category: "required"}
         gvcfFileIndex: {description: "The index of the input GVCF file.", category: "required"}
-        intervals: {description: "Bed files or interval lists describing the regions to operate on.", category: "optional"}
         outputPath: {description: "The location to write the output VCF file to.", 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"}
+        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"}
-        annotationGroups: {description: "Which annotation groups will be used for the annotation", category: "advanced"}
+        annotationGroups: {description: "Which annotation groups will be used for the annotation.", category: "advanced"}
+        intervals: {description: "Bed files or interval lists describing the regions to operate on.", category: "optional"}
         dbsnpVCF: {description: "A dbSNP VCF.", category: "common"}
         dbsnpVCFIndex: {description: "The index for the dbSNP VCF.", category: "common"}
-        pedigree: {description: "Pedigree file for determining the population \"founders\"", category: "common"}
+        pedigree: {description: "Pedigree file for determining the population \"founders\".", category: "common"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -896,8 +874,8 @@ task GetPileupSummaries {
         File sitesForContaminationIndex
         String outputPrefix
 
-        String memory = "13G"
         String javaXmx = "12G"
+        String memory = "13G"
         Int timeMinutes = 120
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -917,12 +895,13 @@ task GetPileupSummaries {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         sampleBam: {description: "A BAM file for which a pileup should be created.", category: "required"}
         sampleBamIndex: {description: "The index of the input BAM file.", category: "required"}
         variantsForContamination: {description: "A VCF file with common variants.", category: "required"}
@@ -930,13 +909,10 @@ task GetPileupSummaries {
         sitesForContamination: {description: "A bed file describing regions to operate on.", category: "required"}
         sitesForContaminationIndex: {description: "The index for the bed file.", category: "required"}
         outputPrefix: {description: "The prefix for the ouput.", category: "required"}
-
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -945,26 +921,27 @@ task HaplotypeCaller {
     input {
         Array[File]+ inputBams
         Array[File]+ inputBamsIndex
-        Array[File]+? intervalList
-        Array[File]+? excludeIntervalList
         String outputPath
         File referenceFasta
         File referenceFastaIndex
         File referenceFastaDict
+        Boolean gvcf = false
+        String emitRefConfidence = if gvcf then "GVCF" else "NONE"
+        Boolean dontUseSoftClippedBases = false
+
+        Array[File]+? intervalList
+        Array[File]+? excludeIntervalList
         Float? contamination
         File? dbsnpVCF
         File? dbsnpVCFIndex
         File? pedigree
         Int? ploidy
         String? outputMode
-        Boolean gvcf = false
-        String emitRefConfidence = if gvcf then "GVCF" else "NONE"
-        Boolean dontUseSoftClippedBases = false
         Float? standardMinConfidenceThresholdForCalling
 
-        Int memoryMb = javaXmxMb + 512
-        # Memory increases with time used. 4G should cover most use cases.
         Int javaXmxMb = 4096
+        # Memory increases with time used. 4G should cover most use cases.
+        Int memoryMb = javaXmxMb + 512
         Int timeMinutes = 400 # This will likely be used with intervals, as such size based estimation can't be used.
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -995,50 +972,44 @@ task HaplotypeCaller {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: "~{memoryMb}M"
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         inputBams: {description: "The BAM files on which to perform variant calling.", category: "required"}
         inputBamsIndex: {description: "The indexes for the input BAM files.", category: "required"}
-        intervalList: {description: "Bed files or interval lists describing the regions to operate on.", category: "common"}
-        excludeIntervalList: {description: "Bed files or interval lists describing the regions to NOT operate on.", category: "common"}
         outputPath: {description: "The location to write the output to.", category: "required"}
-        ploidy: {description: "The ploidy with which the variants should be called.", category: "common"}
-        gvcf: {description: "Whether the output should be a gvcf", category: "common"}
-        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"}
+        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"}
         referenceFastaIndex: {description: "The index for the reference fasta file.", category: "required"}
-        contamination: {description: "Equivalent to HaplotypeCaller's `-contamination` option.", category: "advanced"}
-        outputMode: {description: "Specifies which type of calls we should output. Same as HaplotypeCaller's `--output-mode` option.",
-                     category: "advanced"}
-        emitRefConfidence: {description: "Whether to include reference calls. Three modes: 'NONE', 'BP_RESOLUTION' and 'GVCF'",
-                            category: "advanced"}
+        gvcf: {description: "Whether the output should be a gvcf.", category: "common"}
+        emitRefConfidence: {description: "Whether to include reference calls. Three modes: 'NONE', 'BP_RESOLUTION' and 'GVCF'.", category: "advanced"}
         dontUseSoftClippedBases: {description: "Do not use soft-clipped bases. Should be 'true' for RNA variant calling.", category: "common"}
-        standardMinConfidenceThresholdForCalling: {description: "Confidence threshold used for calling variants.", category: "advanced"}
+        intervalList: {description: "Bed files or interval lists describing the regions to operate on.", category: "common"}
+        excludeIntervalList: {description: "Bed files or interval lists describing the regions to NOT operate on.", category: "common"}
+        contamination: {description: "Equivalent to HaplotypeCaller's `-contamination` option.", category: "advanced"}
         dbsnpVCF: {description: "A dbSNP VCF.", category: "common"}
         dbsnpVCFIndex: {description: "The index for the dbSNP VCF.", category: "common"}
-        pedigree: {description: "Pedigree file for determining the population \"founders\"", category: "common"}
+        pedigree: {description: "Pedigree file for determining the population \"founders\".", category: "common"}
+        ploidy: {description: "The ploidy with which the variants should be called.", category: "common"}
+        outputMode: {description: "Specifies which type of calls we should output. Same as HaplotypeCaller's `--output-mode` option.", category: "advanced"}
+        standardMinConfidenceThresholdForCalling: {description: "Confidence threshold used for calling variants.", category: "advanced"}
+        javaXmxMb: {description: "The maximum memory available to the program in megabytes. Should be lower than `memoryMb` to accommodate JVM overhead.", category: "advanced"}
         memoryMb: {description: "The amount of memory this job will use in megabytes.", category: "advanced"}
-        javaXmxMb: {description: "The maximum memory available to the program in megabytes. Should be lower than `memoryMb` to accommodate JVM overhead.",
-                  category: "advanced"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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 LearnReadOrientationModel {
     input {
         Array[File]+ f1r2TarGz
 
-        String memory = "13G"
         String javaXmx = "12G"
+        String memory = "13G"
         Int timeMinutes = 120
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -1056,19 +1027,18 @@ task LearnReadOrientationModel {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         f1r2TarGz: {description: "A f1r2TarGz file outputed by mutect2.", category: "required"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -1076,8 +1046,8 @@ task MergeStats {
     input {
         Array[File]+ stats
 
-        String memory = "15G"
         String javaXmx = "14G"
+        String memory = "15G"
         Int timeMinutes = 30
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -1095,19 +1065,18 @@ task MergeStats {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         stats: {description: "Statistics files to be merged.", category: "required"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -1117,14 +1086,13 @@ task ModelSegments {
         String outputPrefix
         File denoisedCopyRatios
         File allelicCounts
-        File? normalAllelicCounts
-        Int minimumTotalAlleleCountCase = if defined(normalAllelicCounts)
-            then 0
-            else 30
+        Int minimumTotalAlleleCountCase = if defined(normalAllelicCounts) then 0 else 30
         Int maximumNumberOfSmoothingIterations = 10
 
-        String memory = "11G"
+        File? normalAllelicCounts
+
         String javaXmx = "10G"
+        String memory = "11G"
         Int timeMinutes = 60
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -1145,7 +1113,6 @@ task ModelSegments {
 
     output {
         File hetrozygousAllelicCounts = outputDir + "/" + outputPrefix + ".hets.tsv"
-        File? normalHetrozygousAllelicCounts = outputDir + "/" + outputPrefix + ".hets.normal.tsv"
         File copyRatioSegments = outputDir + "/" + outputPrefix + ".cr.seg"
         File copyRatioCBS = outputDir + "/" + outputPrefix + ".cr.igv.seg"
         File alleleFractionCBS = outputDir + "/" + outputPrefix + ".af.igv.seg"
@@ -1155,29 +1122,28 @@ task ModelSegments {
         File modeledSegments = outputDir + "/" + outputPrefix + ".modelFinal.seg"
         File copyRatioParameters = outputDir + "/" + outputPrefix + ".modelFinal.cr.param"
         File alleleFractionParameters = outputDir + "/" + outputPrefix + ".modelFinal.af.param"
+        File? normalHetrozygousAllelicCounts = outputDir + "/" + outputPrefix + ".hets.normal.tsv"
     }
 
     runtime {
-        docker: dockerImage
-        time_minute: timeMinutes
         memory: memory
+        time_minute: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         outputDir: {description: "The directory to write the ouput to.", category: "common"}
         outputPrefix: {description: "The prefix of the output files. Should not include directories.", category: "required"}
         denoisedCopyRatios: {description: "The denoised copy ratios as generated by DenoiseReadCounts.", category: "required"}
         allelicCounts: {description: "The allelicCounts as generate by CollectAllelicCounts.", category: "required" }
-        normalAllelicCounts: {description: "The allelicCounts as generate by CollectAllelicCounts for a matched normal.", category: "common"}
         minimumTotalAlleleCountCase: {description: "Equivalent to gatk ModelSeqments' `--minimum-total-allele-count-case` option.", category: "advanced"}
         maximumNumberOfSmoothingIterations: {description: "Equivalent to gatk ModelSeqments' `--maximum-number-of-smoothing-iterations` option.", category: "advanced"}
-
+        normalAllelicCounts: {description: "The allelicCounts as generate by CollectAllelicCounts for a matched normal.", category: "common"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -1190,17 +1156,18 @@ task MuTect2 {
         File referenceFastaFai
         String outputVcf
         String tumorSample
+        String f1r2TarGz = "f1r2.tar.gz"
+        Array[File]+ intervals
+        String outputStats = outputVcf + ".stats"
+
         String? normalSample
         File? germlineResource
         File? germlineResourceIndex
         File? panelOfNormals
         File? panelOfNormalsIndex
-        String f1r2TarGz = "f1r2.tar.gz"
-        Array[File]+ intervals
-        String outputStats = outputVcf + ".stats"
 
-        String memory = "5G"
         String javaXmx = "4G"
+        String memory = "5G"
         Int timeMinutes = 240
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -1229,12 +1196,13 @@ task MuTect2 {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         inputBams: {description: "The BAM files on which to perform variant calling.", category: "required"}
         inputBamsIndex: {description: "The indexes for the input BAM files.", category: "required"}
         referenceFasta: {description: "The reference fasta file which was also used for mapping.", category: "required"}
@@ -1242,20 +1210,18 @@ task MuTect2 {
         referenceFastaFai: {description: "The index for the reference fasta file.", category: "required"}
         outputVcf: {description: "The location to write the output VCF file to.", category: "required"}
         tumorSample: {description: "The name of the tumor/case sample.", category: "required"}
+        f1r2TarGz: {description: "Equivalent to Mutect2's `--f1r2-tar-gz` option.", category: "advanced"}
+        intervals: {description: "Bed files describing the regiosn to operate on.", category: "required"}
+        outputStats: {description: "The location the output statistics should be written to.", category: "advanced"}
         normalSample: {description: "The name of the normal/control sample.", category: "common"}
         germlineResource: {description: "Equivalent to Mutect2's `--germline-resource` option.", category: "advanced"}
         germlineResourceIndex: {description: "The index for the germline resource.", category: "advanced"}
         panelOfNormals: {description: "Equivalent to Mutect2's `--panel-of-normals` option.", category: "advanced"}
         panelOfNormalsIndex: {description: "The index for the panel of normals.", category: "advanced"}
-        f1r2TarGz: {description: "Equivalent to Mutect2's `--f1r2-tar-gz` option.", category: "advanced"}
-        intervals: {description: "Bed files describing the regiosn to operate on.", category: "required"}
-        outputStats: {description: "The location the output statistics should be written to.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -1266,10 +1232,11 @@ task PlotDenoisedCopyRatios {
         String outputPrefix
         File standardizedCopyRatios
         File denoisedCopyRatios
+
         Int? minimumContigLength
 
-        String memory = "4G"
         String javaXmx = "3G"
+        String memory = "4G"
         Int timeMinutes = 2
         String dockerImage = "broadinstitute/gatk:4.1.8.0"
     }
@@ -1289,32 +1256,31 @@ task PlotDenoisedCopyRatios {
 
     output {
         File denoisedCopyRatiosPlot = outputDir + "/" + outputPrefix + ".denoised.png"
-        File? denoisedCopyRatiosLimitedPlot = outputDir + "/" + outputPrefix + ".denoisedLimit4.png"
         File standardizedMedianAbsoluteDeviation = outputDir + "/" + outputPrefix + ".standardizedMAD.txt"
         File denoisedMedianAbsoluteDeviation = outputDir + "/" + outputPrefix + ".denoisedMAD.txt"
         File deltaMedianAbsoluteDeviation = outputDir + "/" + outputPrefix + ".deltaMAD.txt"
         File deltaScaledMedianAbsoluteDeviation = outputDir + "/" + outputPrefix + ".scaledDeltaMAD.txt"
+        File? denoisedCopyRatiosLimitedPlot = outputDir + "/" + outputPrefix + ".denoisedLimit4.png"
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         referenceFastaDict: {description: "The sequence dictionary associated with the reference fasta file used for the analyses.", category: "required"}
         outputDir: {description: "The directory to write the ouput to.", category: "common"}
         outputPrefix: {description: "The prefix of the output files. Should not include directories.", category: "required"}
-        denoisedCopyRatios: {description: "The denoised copy ratios as generated by DenoiseReadCounts.", category: "required"}
         standardizedCopyRatios: {description: "The standardized copy ratios as generated by DenoiseReadCounts.", category: "required"}
+        denoisedCopyRatios: {description: "The denoised copy ratios as generated by DenoiseReadCounts.", category: "required"}
         minimumContigLength: {description: "The minimum length for a contig to be included in the plots.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -1326,10 +1292,11 @@ task PlotModeledSegments {
         File denoisedCopyRatios
         File segments
         File allelicCounts
+
         Int? minimumContigLength
 
-        String memory = "4G"
         String javaXmx = "3G"
+        String memory = "4G"
         Int timeMinutes = 2
         String dockerImage = "broadinstitute/gatk:4.1.8.0"
     }
@@ -1353,12 +1320,13 @@ task PlotModeledSegments {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         referenceFastaDict: {description: "The sequence dictionary associated with the reference fasta file used for the analyses.", category: "required"}
         outputDir: {description: "The directory to write the ouput to.", category: "common"}
         outputPrefix: {description: "The prefix of the output files. Should not include directories.", category: "required"}
@@ -1366,12 +1334,10 @@ task PlotModeledSegments {
         segments: {description: "The modeled segments as generated by ModelSegments.", category: "required"}
         allelicCounts: {description: "The hetrozygous allelic counts as generated by ModelSegments.", category: "required"}
         minimumContigLength: {description: "The minimum length for a contig to be included in the plots.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -1380,14 +1346,15 @@ task PreprocessIntervals {
         File referenceFasta
         File referenceFastaDict
         File referenceFastaFai
-        File? intervals
         String outputIntervalList = "bins.interval_list"
         Int binLength = if defined(intervals) then 0 else 1000
         Int padding = if defined(intervals) then 250 else 0
         String intervalMergingRule = "OVERLAPPING_ONLY"
 
-        String memory = "4G"
+        File? intervals
+
         String javaXmx = "3G"
+        String memory = "4G"
         Int timeMinutes = 1 + ceil(size(referenceFasta, "G") * 6)
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -1411,41 +1378,42 @@ task PreprocessIntervals {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
-        referenceFasta: {description: "The reference fasta file..", category: "required"}
+        # inputs
+        referenceFasta: {description: "The reference fasta file.", 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"}
-        intervals: {description: "Bed files describing the regiosn to operate on.", category: "common"}
         outputIntervalList: {description: "The location the output should be written to.", category: "advanced"}
         binLength: {description: "The size of the bins to be created. Should be 0 for targeted/exome sequencing.", category: "advanced"}
         padding: {description: "The padding to be added to the bins. Should be 0 if contiguos binning is used, eg with WGS.", category: "advanced"}
         intervalMergingRule: {description: "Equivalent to gatk PreprocessIntervals' `--interval-merging-rule` option.", category: "advanced"}
+        intervals: {description: "Bed files describing the regiosn to operate on.", category: "common"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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 SelectVariants {
     input {
+        File inputVcf
+        File inputVcfIndex
         File referenceFasta
         File referenceFastaDict
         File referenceFastaFai
-        File inputVcf
-        File inputVcfIndex
         String outputPath = "output.vcf.gz"
-        String? selectTypeToInclude
         Array[File] intervals = []
-        String memory = "5G"
+
+        String? selectTypeToInclude
+
         String javaXmx = "4G"
+        String memory = "5G"
         Int timeMinutes = 60
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -1468,29 +1436,25 @@ task SelectVariants {
     }
 
     runtime {
-        docker: dockerImage
-        time_minute: timeMinutes
         memory: memory
+        time_minute: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         inputVcf: {description: "The VCF input file.", category: "required"}
         inputVcfIndex: {description: "The input VCF file's index.", 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"}
+        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"}
-        selectTypeToInclude: {description: "Select only a certain type of variants from the input file", category: "common"}
         outputPath: {description: "The location the output VCF file should be written.", category: "advanced"}
         intervals: {description: "Bed files or interval lists describing the regions to operate on.", category: "common"}
-
+        selectTypeToInclude: {description: "Select only a certain type of variants from the input file.", category: "common"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -1504,8 +1468,8 @@ task SplitNCigarReads {
         String outputBam
         Array[File] intervals = []
 
-        String memory = "5G"
         String javaXmx = "4G"
+        String memory = "5G"
         Int timeMinutes = 120 # This will likely be used with intervals, as such size based estimation can't be used.
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -1527,28 +1491,24 @@ task SplitNCigarReads {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         inputBam: {description: "The BAM file for which spliced reads should be split.", category: "required"}
         inputBamIndex: {description: "The input BAM file's index.", 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"}
+        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"}
         outputBam: {description: "The location the output BAM file should be written.", category: "required"}
         intervals: {description: "Bed files or interval lists describing the regions to operate on.", category: "advanced"}
-
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
 
@@ -1558,11 +1518,6 @@ task VariantEval {
         Array[File] evalVcfsIndex
         Array[File] comparisonVcfs = []
         Array[File] comparisonVcfsIndex = []
-        File? referenceFasta
-        File? referenceFastaDict
-        File? referenceFastaFai
-        File? dbsnpVCF
-        File? dbsnpVCFIndex
         Array[File] intervals = []
         String outputPath = "eval.table"
         Boolean doNotUseAllStandardModules = false 
@@ -1572,8 +1527,14 @@ task VariantEval {
         Array[String] samples = []
         Boolean mergeEvals = false
 
-        String memory = "5G"
+        File? referenceFasta
+        File? referenceFastaDict
+        File? referenceFastaFai
+        File? dbsnpVCF
+        File? dbsnpVCFIndex
+
         String javaXmx = "4G"
+        String memory = "5G"
         # TODO: Refine estimate. For now 4 minutes per GB of input.
         Int timeMinutes = ceil(size(flatten([evalVcfs, comparisonVcfs, select_all([referenceFasta, dbsnpVCF])]), "G") * 20)
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
@@ -1604,35 +1565,37 @@ task VariantEval {
 
     runtime {
         cpu: 1
-        docker: dockerImage
         memory: memory
         time_minutes: timeMinutes
+        docker: dockerImage
     }
+
     parameter_meta {
+        # inputs
         evalVcfs: {description: "Variant sets to evaluate.", category: "required"}
         evalVcfsIndex: {description: "Indexes for the variant sets.", category: "required"}
         comparisonVcfs: {description: "Compare set vcfs.", category: "advanced"}
         comparisonVcfsIndex: {description: "Indexes for the compare sets.", category: "advanced"}
-        evalModules: {description: "One or more specific eval modules to apply to the eval track(s) (in addition to the standard modules, unless doNotUseAllStandardModules=true)", category: "common"}
-        stratificationModules: {description: "One or more specific stratification modules to apply to the eval track(s) (in addition to the standard stratifications, unless doNotUseAllStandardStratifications=true)", category: "common"}
-        samples: {description: "Derive eval and comp contexts using only these sample genotypes, when genotypes are available in the original context." , category: "advanced"}  # Advanced because this description is impossible to understand...
-        mergeEvals: {description: "If provided, all evalVcf tracks will be merged into a single eval track", category: "common"}
+        intervals: {description: "Bed files or interval lists describing the regions to operate on.", category: "advanced"}
+        outputPath: {description: "The location the output table should be written.", category: "advanced"}
         doNotUseAllStandardModules: {description: "Do not use the standard modules by default (instead, only those that are specified with the evalModules option).", category: "common"}
         doNotUseAllStandardStratifications: {description: "Do not use the standard stratification modules by default (instead, only those that are specified with the stratificationModules option).", category: "common"}
+        evalModules: {description: "One or more specific eval modules to apply to the eval track(s) (in addition to the standard modules, unless doNotUseAllStandardModules=true).", category: "common"}
+        stratificationModules: {description: "One or more specific stratification modules to apply to the eval track(s) (in addition to the standard stratifications, unless doNotUseAllStandardStratifications=true).", category: "common"}
+        samples: {description: "Derive eval and comp contexts using only these sample genotypes, when genotypes are available in the original context." , category: "advanced"}
+        mergeEvals: {description: "If provided, all evalVcf tracks will be merged into a single eval track.", category: "common"}
         referenceFasta: {description: "The reference fasta file which was also used for mapping.", category: "common"}
         referenceFastaDict: {description: "The sequence dictionary associated with the reference fasta file.", category: "common"}
         referenceFastaFai: {description: "The index for the reference fasta file.", category: "common"}
         dbsnpVCF: {description: "A dbSNP VCF.", category: "common"}
         dbsnpVCFIndex: {description: "The index for the dbSNP VCF.", category: "common"}
-        outputPath: {description: "The location the output table should be written.", category: "advanced"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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 VariantFiltration {
     input {
         File inputVcf
@@ -1644,8 +1607,8 @@ task VariantFiltration {
         Array[String]+ filterArguments
         Array[File] intervals = []
 
-        String memory = "5G"
         String javaXmx = "4G"
+        String memory = "5G"
         Int timeMinutes = 120
         String dockerImage = "quay.io/biocontainers/gatk4:4.1.8.0--py38h37ae868_0"
     }
@@ -1668,29 +1631,24 @@ task VariantFiltration {
     }
 
     runtime {
-        docker: dockerImage
-        time_minutes: timeMinutes
         memory: memory
+        time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
+        # inputs
         inputVcf: {description: "The VCF to be filtered.", category: "required"}
         inputVcfIndex: {description: "The input VCF file's index.", 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"}
+        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"}
         outputPath: {description: "The location the output VCF file should be written.", category: "common"}
+        filterArguments: {description: "Arguments that should be used for the filter. For example: ['--filter-name', 'my_filter', '--filter-expression', 'AB<0.2'].", category: "required"}
         intervals: {description: "Bed files or interval lists describing the regions to operate on.", category: "advanced"}
-        filterArguments: {description: "Arguments that should be used for the filter. For example: ['--filter-name', 'my_filter', '--filter-expression', 'AB<0.2']",
-                        category: "required"}
+        javaXmx: {description: "The maximum memory available to the program. Should be lower than `memory` to accommodate JVM overhead.", 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"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", 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"}
+        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"}
     }
 }
-
diff --git a/gffcompare.wdl b/gffcompare.wdl
index e5f62b5ec557ef05afbfcee0bb24d175a2b316b6..5d80f61994d4359555a16ee13e510c1d122ce0b0 100644
--- a/gffcompare.wdl
+++ b/gffcompare.wdl
@@ -147,4 +147,4 @@ task GffCompare {
             exclude: ["noneFile"]
         }
     }
-}
\ No newline at end of file
+}