diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/CollectAlignmentSummaryMetrics.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/CollectAlignmentSummaryMetrics.scala
index 10cae9a65bb70b60cc551fc380ee540aadd4c94f..541ee75b88a3d9f9b2111b81ee69fc11665b205d 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/CollectAlignmentSummaryMetrics.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/CollectAlignmentSummaryMetrics.scala
@@ -70,7 +70,7 @@ class CollectAlignmentSummaryMetrics(val root: Configurable) extends Picard with
     case None => Map()
     case Some((header, content)) =>
       (for (category <- 0 until content.size) yield {
-        content(category)(0) -> (
+        content(category)(0).toString -> (
           for (
             i <- 1 until header.size if i < content(category).size
           ) yield {
diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/MarkDuplicates.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/MarkDuplicates.scala
index 5a31212215df5066492b8e0cf58c023b222e9a8b..52777a46742dbe7c62a00422edf36585be72b010 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/MarkDuplicates.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/MarkDuplicates.scala
@@ -103,7 +103,7 @@ class MarkDuplicates(val root: Configurable) extends Picard with Summarizable {
     case None => Map()
     case Some((header, content)) =>
       (for (category <- 0 until content.size) yield {
-        content(category)(0) -> (
+        content(category)(0).toString -> (
           for (
             i <- 1 until header.size if i < content(category).size
           ) yield {
diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/Picard.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/Picard.scala
index 064a182e32a6d97971006da470b78566038b45a3..03f7ba975fc45cf69b8003fa18461f5aa011062d 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/Picard.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/Picard.scala
@@ -21,6 +21,7 @@ import scala.io.Source
 import org.broadinstitute.gatk.utils.commandline.Argument
 
 import nl.lumc.sasc.biopet.core.BiopetJavaCommandLineFunction
+import nl.lumc.sasc.biopet.utils.tryToParseNumber
 
 /**
  * General picard extension
@@ -80,7 +81,7 @@ object Picard {
    * @param file input metrics file
    * @return (header, content)
    */
-  def getMetrics(file: File): Option[(Array[String], List[Array[String]])] =
+  def getMetrics(file: File): Option[(Array[String], List[Array[Any]])] =
     if (file.exists) {
       val lines = Source.fromFile(file).getLines().toArray
 
@@ -88,9 +89,10 @@ object Picard {
       val end = lines.indexOf("", start)
 
       val header = lines(start).split("\t")
-      val content = (for (i <- (start + 1) until end) yield lines(i).split("\t")).toList
+      val content = (for (i <- (start + 1) until end) yield lines(i).split("\t"))
+        .map(row => row.map(col => tryToParseNumber(col).getOrElse(col)))
 
-      Option((header, content))
+      Option((header, content.toList))
     } else {
       None
     }