Commit 4ab3687a authored by Peter van 't Hof's avatar Peter van 't Hof
Browse files

Fixed grouping content

parent a8be3036
...@@ -20,7 +20,7 @@ import scala.io.Source ...@@ -20,7 +20,7 @@ import scala.io.Source
import org.broadinstitute.gatk.utils.commandline.Argument import org.broadinstitute.gatk.utils.commandline.Argument
import nl.lumc.sasc.biopet.core.BiopetJavaCommandLineFunction import nl.lumc.sasc.biopet.core.{ Logging, BiopetJavaCommandLineFunction }
import nl.lumc.sasc.biopet.utils.tryToParseNumber import nl.lumc.sasc.biopet.utils.tryToParseNumber
/** /**
...@@ -74,7 +74,7 @@ abstract class Picard extends BiopetJavaCommandLineFunction { ...@@ -74,7 +74,7 @@ abstract class Picard extends BiopetJavaCommandLineFunction {
conditional(createMd5, "CREATE_MD5_FILE=TRUE") conditional(createMd5, "CREATE_MD5_FILE=TRUE")
} }
object Picard { object Picard extends Logging {
def getMetrics(file: File, tag: String = "METRICS CLASS", def getMetrics(file: File, tag: String = "METRICS CLASS",
groupBy: Option[String] = None): Option[Any] = { groupBy: Option[String] = None): Option[Any] = {
...@@ -84,8 +84,9 @@ object Picard { ...@@ -84,8 +84,9 @@ object Picard {
case (_, Some(group)) => { case (_, Some(group)) => {
val groupId = header.indexOf(group) val groupId = header.indexOf(group)
if (groupId == -1) throw new IllegalArgumentException(group + " not existing in header of: " + file) if (groupId == -1) throw new IllegalArgumentException(group + " not existing in header of: " + file)
if (header.count(_ == group) > 1) logger.warn(group + " multiple times seen in header of: " + file)
Some((for (c <- content) yield c(groupId).toString() -> { Some((for (c <- content) yield c(groupId).toString() -> {
header.filter(_ != group).zip(c).toMap header.filter(_ != group).zip(c.take(groupId) ::: c.takeRight(c.size - groupId - 1)).toMap
}).toMap) }).toMap)
} }
case (1, _) => Some(header.zip(content.head).toMap) case (1, _) => Some(header.zip(content.head).toMap)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment