diff --git a/biopet.wdl b/biopet.wdl
index 03b1a04eb91ee2888f060506bbc7de1b99d49428..41881e5fe75ea65d24121fc1d125f3752686af3e 100644
--- a/biopet.wdl
+++ b/biopet.wdl
@@ -58,11 +58,14 @@ task SampleConfig {
     String? jsonOutputPath
     String? tsvOutputPath
 
+    Float? memory
+    Float? memoryMultiplier
+
     command {
         set -e -o pipefail
         ${preCommand}
         mkdir -p . ${"$(dirname " + jsonOutputPath + ")"} ${"$(dirname " + tsvOutputPath + ")"}
-        java -Xmx3G -jar ${tool_jar} \
+        java -Xmx${default=3 memory}G -jar ${tool_jar} \
         -i ${sep="-i " inputFiles} \
         ${"--sample " + sample} \
         ${"--library " + library} \
@@ -79,7 +82,7 @@ task SampleConfig {
     }
 
     runtime {
-        memory: 6
+        memory: selectFirst([memory, 3]) * selectFirst([memoryMultiplier, 1.5])
     }
 }
 
@@ -91,11 +94,14 @@ task BaseCounter {
     String outputDir
     String prefix
 
+    Float? memory
+    Float? memoryMultiplier
+
     command {
         set -e -o pipefail
         ${preCommand}
         mkdir -p ${outputDir}
-        java -jar ${tool_jar} \
+        java -Xmx${default=12 memory}-jar ${tool_jar} \
         -b ${bam} \
         -r ${refFlat} \
         -o ${outputDir} \
@@ -140,6 +146,6 @@ task BaseCounter {
     }
 
     runtime {
-        memory: 16
+        memory: selectFirst([memory, 12]) * selectFirst([memoryMultiplier, 1.5])
     }
 }
diff --git a/fastqc.wdl b/fastqc.wdl
index 7dddd5dd3df644810b958474e2f9886fe127d8ae..befc4e25f4e118b5954d24be29158783d256b3e4 100644
--- a/fastqc.wdl
+++ b/fastqc.wdl
@@ -62,10 +62,14 @@ task extractAdapters {
     File? knownAdapterFile
     Float? adapterCutoff
     Boolean? outputAsFasta
+
+    Float? memory
+    Float? memoryMultiplier
+
     command {
     set -e
     mkdir -p ${outputDir}
-    java -Xmx4G -jar ${extractAdaptersFastqcJar} \
+    java -Xmx${default=4 memory}G -jar ${extractAdaptersFastqcJar} \
     --inputFile ${inputFile} \
     ${"--adapterOutputFile " + adapterOutputFilePath } \
     ${"--contamsOutputFile " + contamsOutputFilePath } \
@@ -84,7 +88,7 @@ task extractAdapters {
     }
 
     runtime {
-        memory: 6
+        memory: (if defined(memory) then memory else 4) * (if defined(memoryMultiplier) then memoryMultiplier else 1.5)
     }
 }