diff --git a/CHANGELOG.md b/CHANGELOG.md
index 28e998e6887623a28c519dc59c5c34300a54447f..112b8f0444435f6d33d46a29a195e9dff9dedc8b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,8 @@ that users understand how the changes affect the new version.
 
 version 5.0.0-dev
 ---------------------------
++ Update CPAT to version 3.0.4.
+  + Changed the `outFilePath` input to `outputPrefix`.
 + 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)
diff --git a/CPAT.wdl b/CPAT.wdl
index afb6785392f7b71aa57f32ada4f31db3e4efc138..b3414bc5cf3a65797c5bfe71f3bbbdc6d0e2d66b 100644
--- a/CPAT.wdl
+++ b/CPAT.wdl
@@ -23,7 +23,7 @@ version 1.0
 task CPAT {
     input {
         File gene
-        String outFilePath
+        String outputPrefix
         File hex
         File logitModel
 
@@ -35,7 +35,7 @@ task CPAT {
         Array[String]? stopCodons
 
         Int timeMinutes = 10 + ceil(size(gene, "G") * 30)
-        String dockerImage = "biocontainers/cpat:v1.2.4_cv1"
+        String dockerImage = "biocontainers/cpat:3.0.4--py39hcbe4a3b_0"
     }
 
     # Some WDL magic in the command section to properly output the start and
@@ -47,7 +47,7 @@ task CPAT {
         mkdir -p "$(dirname ~{outFilePath})"
         cpat.py \
         --gene ~{gene} \
-        --outfile ~{outFilePath} \
+        --outfile ~{outputPrefix} \
         --hex ~{hex} \
         --logitModel ~{logitModel} \
         ~{"--ref " + referenceGenome} \
@@ -56,7 +56,11 @@ task CPAT {
     }
 
     output {
-        File outFile = outFilePath
+        File orfSeqs = "~{outputPrefix}.ORF_seqs.fa"
+        File orfProb = "~{outputPrefix}.ORF_prob.tsv"
+        File orfProbBest = "~{outputPrefix}.ORF_prob.best.tsv"
+        File noOrf = "~{outputPrefix}.no_ORF.txt"
+        File rScript = "~{outputPrefix}.r"
     }
 
     runtime {
@@ -67,7 +71,7 @@ task CPAT {
     parameter_meta {
         # inputs
         gene: {description: "Equivalent to CPAT's `--gene` option.", category: "required"}
-        outFilePath: {description: "Equivalent to CPAT's `--outfile` option.", category: "required"}
+        outputPrefix: {description: "Equivalent to CPAT's `--outfile` option.", category: "required"}
         hex: {description: "Equivalent to CPAT's `--hex` option.", category: "required"}
         logitModel: {description: "Equivalent to CPAT's `--logitModel` option.", category: "required"}
         referenceGenome: {description: "Equivalent to CPAT's `--ref` option.", category: "advanced"}
@@ -76,9 +80,6 @@ task CPAT {
         stopCodons: {description: "Equivalent to CPAT's `--stop` option.", 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"}
-
-        # outputs
-        outFile: {description: "CPAT logistic regression model."}
     }
 }