]> git.donarmstrong.com Git - rsem.git/blobdiff - SamParser.h
Added error detection for cases such as a read's two mates having different names...
[rsem.git] / SamParser.h
index 81d4097cf0033dee55d012abeaf8ea106120b9d9..4747ef4281af593f714450d68ccfc65090662891 100644 (file)
@@ -62,7 +62,7 @@ private:
        }
 
        std::string getName(const bam1_t* b) {
-               return std::string((char*)bam1_qname(b));
+               return std::string(bam1_qname(b));
        }
 
        std::string getReadSeq(const bam1_t*);
@@ -190,6 +190,8 @@ int SamParser::parseNext(PairedEndRead& read, PairedEndHit& hit) {
                mp1 = b2; mp2 = b;
        }
 
+       general_assert(!strcmp(bam1_qname(mp1), bam1_qname(mp2)), "Detected a read pair whose two mates have different names: " + getName(mp1) + " , " + getName(mp2) + " !");
+
        int readType = getReadType(mp1, mp2);
        std::string name = getName(mp1);
 
@@ -242,6 +244,8 @@ int SamParser::parseNext(PairedEndReadQ& read, PairedEndHit& hit) {
                mp1 = b2; mp2 = b;
        }
 
+       general_assert(!strcmp(bam1_qname(mp1), bam1_qname(mp2)), "Detected a read pair whose two mates have different names: " + getName(mp1) + " , " + getName(mp2) + " !");
+
        int readType = getReadType(mp1, mp2);
        std::string name = getName(mp1);