diff --git a/adam-core/src/main/scala/org/bdgenomics/adam/rdd/GenomicRDD.scala b/adam-core/src/main/scala/org/bdgenomics/adam/rdd/GenomicRDD.scala index 5e98419577..c6e852ef72 100644 --- a/adam-core/src/main/scala/org/bdgenomics/adam/rdd/GenomicRDD.scala +++ b/adam-core/src/main/scala/org/bdgenomics/adam/rdd/GenomicRDD.scala @@ -340,7 +340,7 @@ trait GenomicRDD[T, U <: GenomicRDD[T, U]] extends Logging { // We don't use ValidationStringency here because multimapped elements // break downstream methods. - require(coveredRegions.size == 1, + require(coveredRegions.size <= 1, "Cannot sort RDD containing a multimapped element. %s covers %s.".format( elem, coveredRegions.mkString(","))) @@ -403,7 +403,7 @@ trait GenomicRDD[T, U <: GenomicRDD[T, U]] extends Logging { // We don't use ValidationStringency here because multimapped elements // break downstream methods. - require(coveredRegions.size == 1, + require(coveredRegions.size <= 1, "Cannot sort RDD containing a multimapped element. %s covers %s.".format( elem, coveredRegions.mkString(","))) diff --git a/adam-core/src/test/scala/org/bdgenomics/adam/rdd/read/AlignmentRecordRDDSuite.scala b/adam-core/src/test/scala/org/bdgenomics/adam/rdd/read/AlignmentRecordRDDSuite.scala index c1e801df9d..78a8311362 100644 --- a/adam-core/src/test/scala/org/bdgenomics/adam/rdd/read/AlignmentRecordRDDSuite.scala +++ b/adam-core/src/test/scala/org/bdgenomics/adam/rdd/read/AlignmentRecordRDDSuite.scala @@ -1380,4 +1380,23 @@ class AlignmentRecordRDDSuite extends ADAMFunSuite { assert(htsjdkPg.getProgramVersion === "1") assert(htsjdkPg.getPreviousProgramGroupId === "ppg") } + + sparkTest("GenomicRDD.sort does not fail on unmapped reads") { + val inputPath = testFile("unmapped.sam") + val reads: AlignmentRecordRDD = sc.loadAlignments(inputPath) + assert(reads.rdd.count === 200) + + val sorted = reads.sort(stringency = ValidationStringency.SILENT) + assert(sorted.rdd.count === 102) + } + + sparkTest("GenomicRDD.sortLexicographically does not fail on unmapped reads") { + val inputPath = testFile("unmapped.sam") + val reads: AlignmentRecordRDD = sc.loadAlignments(inputPath) + assert(reads.rdd.count === 200) + + val sorted = reads.sortLexicographically( + stringency = ValidationStringency.SILENT) + assert(sorted.rdd.count === 102) + } }