diff --git a/CHANGELOG.md b/CHANGELOG.md
index f3b04d4bae3dd112b0914da2fbce47acc438db5a..e7242699415c3bd357003a5e91cd1a70b5d2f02c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,12 +10,26 @@ that users understand how the changes affect the new version.
 
 version 5.0.0-dev
 ---------------------------
-+ UMI-tools: update default dockerImage to use umitools v1.1.1 with correct samtools version (1.10)
-+ UMI-tools: re-introduce samtools indexing
-+ UMI-tools: update default dockerImage to use umitools v1.1.1
-+ UMI-tools dedup: Add tempdir
-+ Update BCFTOOLS view: add options for filtering (include, exclude, excludeUncalled).
-+ Duphold: add duphold.wdl.
++ Samtools: Add mkdir line to `Fastq` task.
++ Add new parameters from CCS version 6.0.0 and add two new outputs:
+  `ccs_report.txt` & `zmw_metrics.json.gz`.
++ Change CutAdapt memory to `5G`.
++ Increase multiqc base time from 5 to 10.
++ Update biowdl-input-converter to version 0.3.
++ Update minimap2 to version 2.20.
++ Update lima to version 2.2.0.
++ Update ccs to version 6.0.0.
++ Update bam2fastx to version 1.3.1.
++ Add memory values to GffCompare, GffRead and CPAT.
++ GffCompare: Make the `referenceAnnotation` input optional.
++ Stringtie: Add the `minimumCoverage` input.
++ UMI-tools: Update default dockerImage to use umitools v1.1.1 with correct
+             samtools version (1.10).
++ UMI-tools: Re-introduce samtools indexing.
++ UMI-tools: Update default dockerImage to use umitools v1.1.1.
++ UMI-tools dedup: Add tempdir.
++ Bcftools view: Add options for filtering (include, exclude, excludeUncalled).
++ Duphold: Add `duphold.wdl`.
 + Add new wdl file prepareShiny.wdl for creating input files for shiny app.
 + mergePacBio: Rename `mergedReport` to `outputPathMergedReport`.
 + Lima: Fix copy commands.
diff --git a/CPAT.wdl b/CPAT.wdl
index afb6785392f7b71aa57f32ada4f31db3e4efc138..4a6d44786a70570fdcdefe0228242e61c6d1fd22 100644
--- a/CPAT.wdl
+++ b/CPAT.wdl
@@ -34,6 +34,7 @@ task CPAT {
         Array[String]? startCodons
         Array[String]? stopCodons
 
+        String memory = "4G"
         Int timeMinutes = 10 + ceil(size(gene, "G") * 30)
         String dockerImage = "biocontainers/cpat:v1.2.4_cv1"
     }
@@ -60,8 +61,9 @@ task CPAT {
     }
 
     runtime {
-        docker: dockerImage
+        memory: memory
         time_minutes: timeMinutes
+        docker: dockerImage
     }
 
     parameter_meta {
@@ -74,6 +76,7 @@ task CPAT {
         referenceGenomeIndex: {description: "The index of the reference. Should be added as input if CPAT should not index the reference genome.", category: "advanced"}
         startCodons: {description: "Equivalent to CPAT's `--start` option.", category: "advanced"}
         stopCodons: {description: "Equivalent to CPAT's `--stop` option.", category: "advanced"}
+        memory: {description: "The amount of memory available to the job.", 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/bam2fastx.wdl b/bam2fastx.wdl
index 2ae22a57acfdd005cd048255e67e85b5c3d294ce..0bdccca8db6abfcc9ae3b99c721796a7f0b1af4f 100644
--- a/bam2fastx.wdl
+++ b/bam2fastx.wdl
@@ -32,7 +32,7 @@ task Bam2Fasta {
 
         String memory = "2G"
         Int timeMinutes = 15
-        String dockerImage = "quay.io/biocontainers/bam2fastx:1.3.0--he1c1bb9_8"
+        String dockerImage = "quay.io/biocontainers/bam2fastx:1.3.1--hf05d43a_1"
     }
 
     command {
@@ -100,7 +100,7 @@ task Bam2Fastq {
 
         String memory = "2G"
         Int timeMinutes = 15
-        String dockerImage = "quay.io/biocontainers/bam2fastx:1.3.0--he1c1bb9_8"
+        String dockerImage = "quay.io/biocontainers/bam2fastx:1.3.1--hf05d43a_1"
     }
 
     command {
diff --git a/biowdl.wdl b/biowdl.wdl
index 06b1d75696989151b61360883b94fba7c4114528..dead830383705ee298c2bb018142915bca494b03 100644
--- a/biowdl.wdl
+++ b/biowdl.wdl
@@ -34,7 +34,7 @@ task InputConverter {
 
         String memory = "128M"
         Int timeMinutes = 1
-        String dockerImage = "quay.io/biocontainers/biowdl-input-converter:0.2.1--py_0"
+        String dockerImage = "quay.io/biocontainers/biowdl-input-converter:0.3.0--pyhdfd78af_0"
     }
 
     command <<<
diff --git a/ccs.wdl b/ccs.wdl
index 4446937b45271a4f90906e4caa6d0d6ffad7ad90..29f1a7f9468cdb72da35b168d4821d430536a319 100644
--- a/ccs.wdl
+++ b/ccs.wdl
@@ -24,12 +24,19 @@ task CCS {
     input {
         File subreadsFile
         String outputPrefix
+        String logLevel = "WARN"
         Int minPasses = 3
+        Int topPasses = 60
         Int minLength = 10
         Int maxLength = 50000
         Boolean byStrand = false
+        Boolean skipPolish = false
+        Boolean all = false
+        Boolean subreadFallback = false
+        Boolean allKinetics = false
+        Boolean hifiKinetics = false
+        Float minSnr = 2.5
         Float minReadQuality = 0.99
-        String logLevel = "WARN"
 
         File? subreadsIndexFile
         String? chunkString
@@ -37,7 +44,7 @@ task CCS {
         Int threads = 2
         String memory = "4G"
         Int timeMinutes = 1440
-        String dockerImage = "quay.io/biocontainers/pbccs:5.0.0--0"
+        String dockerImage = "quay.io/biocontainers/pbccs:6.0.0--h9ee0642_2"
     }
 
     command {
@@ -45,15 +52,24 @@ task CCS {
         mkdir -p "$(dirname ~{outputPrefix})"
         ccs \
         --min-passes ~{minPasses} \
+        --min-snr ~{minSnr} \
+        --top-passes ~{topPasses} \
         --min-length ~{minLength} \
         --max-length ~{maxLength} \
         ~{true="--by-strand" false="" byStrand} \
+        ~{true="--skip-polish" false="" skipPolish} \
+        ~{true="--all" false="" all} \
+        ~{true="--subread-fallback" false="" subreadFallback} \
+        ~{true="--all-kinetics" false="" allKinetics} \
+        ~{true="--hifi-kinetics" false="" hifiKinetics} \
         --min-rq ~{minReadQuality} \
         --log-level ~{logLevel} \
         --num-threads ~{threads} \
         ~{"--chunk " + chunkString} \
+        ~{"--report-file " + outputPrefix + ".ccs_report.txt"} \
         ~{"--report-json " + outputPrefix + ".ccs.report.json"} \
         ~{"--log-file " + outputPrefix + ".ccs.stderr.log"} \
+        ~{"--metrics-json " + outputPrefix + ".zmw_metrics.json.gz"} \
         ~{subreadsFile} \
         ~{outputPrefix + ".ccs.bam"}
     }
@@ -61,8 +77,10 @@ task CCS {
     output {
         File ccsBam = outputPrefix + ".ccs.bam"
         File ccsBamIndex = outputPrefix + ".ccs.bam.pbi"
-        File ccsReport = outputPrefix + ".ccs.report.json"
+        File ccsReport = outputPrefix + ".ccs_report.txt"
+        File ccsJsonReport = outputPrefix + ".ccs.report.json"
         File ccsStderr = outputPrefix + ".ccs.stderr.log"
+        File zmwMetrics = outputPrefix + ".zmw_metrics.json.gz"
     }
 
     runtime {
@@ -76,12 +94,19 @@ task CCS {
         # inputs
         subreadsFile: {description: "Subreads input file.", category: "required"}
         outputPrefix: {description: "Output directory path + output file prefix.", category: "required"}
+        logLevel: {description: "Set log level. Valid choices: (TRACE, DEBUG, INFO, WARN, FATAL).", category: "advanced"}
         minPasses: {description: "Minimum number of full-length subreads required to generate ccs for a ZMW.", category: "advanced"}
+        topPasses: {description: "Pick at maximum the top N passes for each ZMW.", category: "advanced"}
         minLength: {description: "Minimum draft length before polishing.", category: "advanced"}
         maxLength: {description: "Maximum draft length before polishing.", category: "advanced"}
         byStrand: {description: "Generate a consensus for each strand.", category: "advanced"}
+        skipPolish: {description: "Only output the initial draft template (faster, less accurate).", category: "advanced"}
+        all: {description: "Emit all ZMWs.", category: "advanced"}
+        subreadFallback: {description: "Emit a representative subread, instead of the draft consensus, if polishing failed.", category: "advanced"}
+        allKinetics: {description: "Calculate mean pulse widths (PW) and interpulse durations (IPD) for every ZMW.", category: "advanced"}
+        hifiKinetics: {description: "Calculate mean pulse widths (PW) and interpulse durations (IPD) for every HiFi read.", category: "advanced"}
+        minSnr: {description: "Minimum SNR of subreads to use for generating CCS.", category: "advanced"}
         minReadQuality: {description: "Minimum predicted accuracy in [0, 1].", category: "common"}
-        logLevel: {description: "Set log level. Valid choices: (TRACE, DEBUG, INFO, WARN, FATAL).", category: "advanced"}
         subreadsIndexFile: {description: "Index for the subreads input file, required when using chunkString.", category: "advanced"}
         chunkString: {descpription: "Chunk string (e.g. 1/4, 5/5) for CCS.", category: "advanced"}
         threads: {description: "The number of threads to be used.", category: "advanced"}
@@ -92,7 +117,9 @@ task CCS {
         # outputs
         ccsBam: {description: "Consensus reads output file."}
         ccsBamIndex: {description: "Index of consensus reads output file."}
-        ccsReport: {description: "Ccs results report file."}
+        ccsReport: {description: "Ccs report file."}
+        ccsJsonReport: {description: "Ccs results json report file."}
         ccsStderr: {description: "Ccs STDERR log file."}
+        zmwMetrics: {description: "ZMW metrics json file."}
     }
 }
diff --git a/common.wdl b/common.wdl
index 66bdb99cf645a36fc83192c999524c86998e26b3..54b11567e8c778ba0563d32095a43490603fa26d 100644
--- a/common.wdl
+++ b/common.wdl
@@ -221,7 +221,7 @@ task YamlToJson {
         String  memory = "128M"
         Int timeMinutes = 1
         # biowdl-input-converter has python and pyyaml.
-        String dockerImage = "quay.io/biocontainers/biowdl-input-converter:0.2.1--py_0"
+        String dockerImage = "quay.io/biocontainers/biowdl-input-converter:0.3.0--pyhdfd78af_0"
     }
 
     command {
diff --git a/cutadapt.wdl b/cutadapt.wdl
index bca29db38cd7b1423117229c770bb27fe5637e01..b49a95d46dc64be3abe018fc0157fa250eaeba08 100644
--- a/cutadapt.wdl
+++ b/cutadapt.wdl
@@ -83,8 +83,8 @@ task Cutadapt {
         Boolean? noZeroCap
 
         Int cores = 4
-        String memory = "~{300 + 100 * cores}M"
-        Int timeMinutes = 10 + ceil(size([read1, read2], "G")  * 12.0 / cores)
+        String memory = "5G"
+        Int timeMinutes = 1 + ceil(size([read1, read2], "G")  * 12.0 / cores)
         String dockerImage = "quay.io/biocontainers/cutadapt:2.10--py37hf01694f_1"
     }
 
diff --git a/gffcompare.wdl b/gffcompare.wdl
index 50cab8a697a7196e995929d57d99497c1878182a..aa7c720916c9f1895197a3c36975c2f326266e20 100644
--- a/gffcompare.wdl
+++ b/gffcompare.wdl
@@ -23,7 +23,6 @@ version 1.0
 task GffCompare {
     input {
         Array[File] inputGtfFiles
-        File referenceAnnotation
         # gffcmp is the default used by the program as well. This needs to be
         # defined in order for the output values to be consistent and correct.
         String outPrefix = "gffcmp"
@@ -40,12 +39,14 @@ task GffCompare {
         Boolean debugMode = false
 
         File? inputGtfList
+        File? referenceAnnotation
         String? outputDir
         File? genomeSequences
         Int? maxDistanceFreeEndsTerminalExons
         Int? maxDistanceGroupingTranscriptStartSites
         String? namePrefix
 
+        String memory = "4G"
         Int timeMinutes = 1 + ceil(size(inputGtfFiles, "G") * 30)
         String dockerImage = "quay.io/biocontainers/gffcompare:0.10.6--h2d50403_0"
 
@@ -64,7 +65,7 @@ task GffCompare {
         set -e
         ~{"mkdir -p " + outputDir}
         gffcompare \
-        -r ~{referenceAnnotation} \
+        ~{"-r " + referenceAnnotation} \
         ~{"-o '" + totalPrefix + "'"} \
         ~{"-s " + genomeSequences} \
         ~{"-e " + maxDistanceFreeEndsTerminalExons} \
@@ -91,7 +92,7 @@ task GffCompare {
         else 0
     Int noInputFiles = length(inputGtfFiles)
     Boolean oneFile = (noFilesGtfList + noInputFiles) == 1
-    String annotatedName = if oneFile
+    String annotatedName = if oneFile && defined(referenceAnnotation)
         then "annotated"
         else "combined"
 
@@ -114,6 +115,7 @@ task GffCompare {
     }
 
     runtime {
+        memory: memory
        time_minutes: timeMinutes
        docker: dockerImage
     }
@@ -140,6 +142,7 @@ task GffCompare {
         maxDistanceFreeEndsTerminalExons: {description: "Equivalent to gffcompare's `-e` option.", category: "advanced"}
         maxDistanceGroupingTranscriptStartSites: {description: "Equivalent to gffcompare's `-d` option.", category: "advanced"}
         namePrefix: {description: "Equivalent to gffcompare's `-p` option.", category: "advanced"}
+        memory: {description: "The amount of memory available to the job.", 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/gffread.wdl b/gffread.wdl
index 967dd5c9afea4d200a63ad101ec06957c4fa6cc9..a04540f531de2f4375de76a22bbf55708698857b 100644
--- a/gffread.wdl
+++ b/gffread.wdl
@@ -32,6 +32,7 @@ task GffRead {
         String? proteinFastaPath
         String? filteredGffPath
 
+        String memory = "4G"
         Int timeMinutes = 1 + ceil(size(inputGff, "G") * 10)
         String dockerImage = "quay.io/biocontainers/gffread:0.9.12--0"
     }
@@ -64,6 +65,7 @@ task GffRead {
     }
 
     runtime {
+        memory: memory
         time_minutes: timeMinutes
         docker: dockerImage
     }
@@ -78,6 +80,7 @@ task GffRead {
         CDSFastaPath: {description: "The location the CDS fasta should be written to.", category: "advanced"}
         proteinFastaPath: {description: "The location the protein fasta should be written to.", category: "advanced"}
         filteredGffPath: {description: "The location the filtered GFF should be written to.", category: "advanced"}
+        memory: {description: "The amount of memory available to the job.", 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/htseq.wdl b/htseq.wdl
index dfa3fcf2005c1dd266932abbd559a379c09217f4..76d3bb8369c624a3f8981f8afad0f73ae9f68d3e 100644
--- a/htseq.wdl
+++ b/htseq.wdl
@@ -34,7 +34,7 @@ task HTSeqCount {
 
         Int nprocesses = 1
         String memory = "8G"
-        Int timeMinutes = 10 + ceil(size(inputBams, "G") * 60)
+        Int timeMinutes = 1440 #10 + ceil(size(inputBams, "G") * 60) FIXME
         String dockerImage = "quay.io/biocontainers/htseq:0.12.4--py37hb3f55d8_0"
     }
 
diff --git a/lima.wdl b/lima.wdl
index 2455aaac1934d6303bf0ea2b25bf85093f8f7b4f..6b87ad4f3120baa2e1e3f13d5f9f1d223419bb80 100644
--- a/lima.wdl
+++ b/lima.wdl
@@ -51,7 +51,7 @@ task Lima {
         Int threads = 2
         String memory = "2G"
         Int timeMinutes = 30
-        String dockerImage = "quay.io/biocontainers/lima:2.0.0--0"
+        String dockerImage = "quay.io/biocontainers/lima:2.2.0--h9ee0642_0"
     }
 
     Map[String, String] libraryDesignOptions = {"same": "--same", "different": "--different", "neighbors": "--neighbors"}
@@ -91,13 +91,13 @@ task Lima {
         dirName="$(dirname ~{outputPrefix})"
         find "$(cd ${dirName}; pwd)" -name "*.bam" > bamFiles.txt
         find "$(cd ${dirName}; pwd)" -name "*.bam.pbi" > bamIndexes.txt
-        find "$(cd ${dirName}; pwd)" -name "*.subreadset.xml" > subreadsets.txt
+        find "$(cd ${dirName}; pwd)" -name "*.consensusreadset.xml" > consensusreadset.txt
     >>>
 
     output {
         Array[File] limaBam = read_lines("bamFiles.txt")
         Array[File] limaBamIndex = read_lines("bamIndexes.txt")
-        Array[File] limaXml = read_lines("subreadsets.txt")
+        Array[File] limaXml = read_lines("consensusreadset.txt")
         File limaStderr = outputPrefix + ".lima.stderr.log"
         File limaJson = outputPrefix + ".json"
         File limaCounts = outputPrefix + ".lima.counts"
diff --git a/minimap2.wdl b/minimap2.wdl
index d2e699052d89b9dc19ce6806ed1f68524593be78..50ff4db38525cc8e896c944e5bc8de64e52f8a0f 100644
--- a/minimap2.wdl
+++ b/minimap2.wdl
@@ -33,7 +33,7 @@ task Indexing {
         Int cores = 1
         String memory = "4G"
         Int timeMinutes = 10
-        String dockerImage = "quay.io/biocontainers/minimap2:2.17--hed695b0_3"
+        String dockerImage = "quay.io/biocontainers/minimap2:2.20--h5bf99c6_0"
     }
 
     command {
@@ -100,7 +100,7 @@ task Mapping {
         Int cores = 4
         String memory = "30G"
         Int timeMinutes = 1 + ceil(size(queryFile, "G") * 200 / cores)
-        String dockerImage = "quay.io/biocontainers/minimap2:2.17--hed695b0_3"
+        String dockerImage = "quay.io/biocontainers/minimap2:2.20--h5bf99c6_0"
     }
 
     command {
diff --git a/multiqc.wdl b/multiqc.wdl
index 2571463a1a9fa42bcd87db1b5edfb5a279060ea8..a166293799d75a24f8aa7f14d3ade49d5fcfdf07 100644
--- a/multiqc.wdl
+++ b/multiqc.wdl
@@ -57,7 +57,7 @@ task MultiQC {
         String? clConfig
 
         String? memory
-        Int timeMinutes = 2 + ceil(size(reports, "G") * 8)
+        Int timeMinutes = 10 + ceil(size(reports, "G") * 8)
         String dockerImage = "quay.io/biocontainers/multiqc:1.9--py_1"
     }
 
diff --git a/nanopack.wdl b/nanopack.wdl
index f86641b0613e207f7633cde189b8be0415515a38..e4c94a43b113f35c6ae82c228711bd8ce4592490 100644
--- a/nanopack.wdl
+++ b/nanopack.wdl
@@ -42,7 +42,7 @@ task NanoPlot {
         Int threads = 2
         String memory = "2G"
         Int timeMinutes = 15
-        String dockerImage = "quay.io/biocontainers/nanoplot:1.32.1--py_0"
+        String dockerImage = "quay.io/biocontainers/nanoplot:1.38.0--pyhdfd78af_0"
     }
 
     Map[String, String] fileTypeOptions = {"fastq": "--fastq ", "fasta": "--fasta ", "fastq_rich": "--fastq_rich ", "fastq_minimal": "--fastq_minimal ", "summary": "--summary ", "bam": "--bam ", "ubam": "--ubam ", "cram": "--cram ", "pickle": "--pickle ", "feather": "--feather "}
diff --git a/pacbio.wdl b/pacbio.wdl
index 7c0113fd5c6188dcebdee7c53ab0489d3200a4aa..b21c69bc0b3db02ed0e1b3ea5fc46fb9bebe4ed4 100644
--- a/pacbio.wdl
+++ b/pacbio.wdl
@@ -26,7 +26,7 @@ task mergePacBio {
         String outputPathMergedReport
 
         String memory = "4G"
-        String dockerImage = "lumc/pacbio-merge:0.2"
+        String dockerImage = "quay.io/redmar_van_den_berg/pacbio-merge:0.2"
     }
 
     command {
diff --git a/samtools.wdl b/samtools.wdl
index 954b5d4ea8976fe3f36256e45bbc4ed65f17dcc9..d34df51eb71410780adc02757d7aed44a3eb521c 100644
--- a/samtools.wdl
+++ b/samtools.wdl
@@ -124,6 +124,8 @@ task Fastq {
     }
 
     command {
+        set -e
+        mkdir -p "$(dirname ~{outputRead1})"
         samtools fastq \
         ~{true="-1" false="-s" defined(outputRead2)} ~{outputRead1} \
         ~{"-2 " + outputRead2} \
diff --git a/scripts b/scripts
index 85e2ec542b65be5f2a25c22db05c28700fbe6db5..c31670d3a9222a2feafc649cbc118c95afbc7189 160000
--- a/scripts
+++ b/scripts
@@ -1 +1 @@
-Subproject commit 85e2ec542b65be5f2a25c22db05c28700fbe6db5
+Subproject commit c31670d3a9222a2feafc649cbc118c95afbc7189
diff --git a/stringtie.wdl b/stringtie.wdl
index d3a6f73d9fae1c9574676ed1c9328e641c5f7c61..9c2f3cfcb1683e2340029eae312d12c7da14c582 100644
--- a/stringtie.wdl
+++ b/stringtie.wdl
@@ -31,6 +31,7 @@ task Stringtie {
         Boolean? firstStranded
         Boolean? secondStranded
         String? geneAbundanceFile
+        Float? minimumCoverage
 
         Int threads = 1
         String memory = "2G"
@@ -47,6 +48,7 @@ task Stringtie {
         ~{true="-e" false="" skipNovelTranscripts} \
         ~{true="--rf" false="" firstStranded} \
         ~{true="--fr" false="" secondStranded} \
+        ~{"-c " + minimumCoverage} \
         -o ~{assembledTranscriptsFile} \
         ~{"-A " + geneAbundanceFile} \
         ~{bam}
@@ -74,6 +76,7 @@ task Stringtie {
         firstStranded: {description: "Equivalent to the --rf flag of stringtie.", category: "required"}
         secondStranded: {description: "Equivalent to the --fr flag of stringtie.", category: "required"}
         geneAbundanceFile: {description: "Where the abundance file should be written.", category: "common"}
+        minimumCoverage: {description: "The minimum coverage for a transcript to be shown in the output.", category: "advanced"}
         threads: {description: "The number of threads to use.", category: "advanced"}
         memory: {description: "The amount of memory needed for this task in GB.", category: "advanced"}
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}