Skip to content

Commit

Permalink
make flagstat safe for some null fields
Browse files Browse the repository at this point in the history
previously crashed on fastq reads
  • Loading branch information
ryan-williams committed Sep 30, 2015
1 parent 206d7a6 commit 5d49a17
Showing 1 changed file with 10 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ case class FlagStatMetrics(total: Long, duplicatesPrimary: DuplicateMetrics, dup
object FlagStat {

def b2i(boolean: Boolean) = if (boolean) 1 else 0
def b(boolean: java.lang.Boolean) = Option(boolean).exists(x => x)

def apply(rdd: RDD[AlignmentRecord]) = {
rdd.map {
Expand All @@ -93,15 +94,15 @@ object FlagStat {
val (primaryDuplicates, secondaryDuplicates) = DuplicateMetrics(p)
new FlagStatMetrics(1,
primaryDuplicates, secondaryDuplicates,
b2i(p.getReadMapped),
b2i(p.getReadPaired),
b2i(p.getReadPaired && p.getFirstOfPair),
b2i(p.getReadPaired && p.getSecondOfPair),
b2i(p.getReadPaired && p.getProperPair),
b2i(p.getReadPaired && p.getReadMapped && p.getMateMapped),
b2i(p.getReadPaired && p.getReadMapped && !p.getMateMapped),
b2i(mateMappedToDiffChromosome),
b2i(mateMappedToDiffChromosome && p.getMapq >= 5),
b2i(b(p.getReadMapped)),
b2i(b(p.getReadPaired)),
b2i(b(p.getReadPaired) && b(p.getFirstOfPair)),
b2i(b(p.getReadPaired) && b(p.getSecondOfPair)),
b2i(b(p.getReadPaired) && b(p.getProperPair)),
b2i(b(p.getReadPaired) && b(p.getReadMapped) && b(p.getMateMapped)),
b2i(b(p.getReadPaired) && b(p.getReadMapped) && b(!p.getMateMapped)),
b2i(b(mateMappedToDiffChromosome)),
b2i(b(mateMappedToDiffChromosome && p.getMapq >= 5)),
p.getFailedVendorQualityChecks)
}.aggregate((FlagStatMetrics.emptyFailedQuality, FlagStatMetrics.emptyPassedQuality))(
seqOp = {
Expand Down

0 comments on commit 5d49a17

Please sign in to comment.