diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala
index 85b2e236f77aab5e3f40d8de3c367caab989d98e..e948c05e6bcc37796a856c42d8f1c4d0991c0306 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala
@@ -51,6 +51,7 @@ class VcfFilter(val root: Configurable) extends BiopetJavaCommandLineFunction {
 object VcfFilter extends ToolCommand {
   case class Args(inputVcf: File = null,
                   outputVcf: File = null,
+                  minQualscore: Option[Double] = None,
                   minSampleDepth: Int = -1,
                   minTotalDepth: Int = -1,
                   minAlternateDepth: Int = -1,
@@ -105,6 +106,9 @@ object VcfFilter extends ToolCommand {
     opt[Unit]("filterNoCalls") unbounded () action { (x, c) =>
       c.copy(filterNoCalls = true)
     } text ("Filter when there are only no calls")
+    opt[Double]("minQualscore") unbounded () action { (x, c) =>
+      c.copy(minQualscore = Some(x))
+    } text ("Min qual score")
   }
 
   var commandArgs: Args = _
@@ -122,7 +126,8 @@ object VcfFilter extends ToolCommand {
     writer.writeHeader(header)
 
     for (record <- reader) {
-      if (filterRefCalls(record) &&
+      if (minQualscore(record) &&
+        filterRefCalls(record) &&
         filterNoCalls(record) &&
         minTotalDepth(record) &&
         minSampleDepth(record) &&
@@ -139,6 +144,11 @@ object VcfFilter extends ToolCommand {
     writer.close
   }
 
+  def minQualscore(record: VariantContext): Boolean = {
+    if (commandArgs.minQualscore.isEmpty) return true
+    record.getPhredScaledQual >= commandArgs.minQualscore.get
+  }
+
   def filterRefCalls(record: VariantContext): Boolean = {
     if (commandArgs.filterNoCalls) record.getGenotypes.exists(g => !g.isHomRef)
     else true