class SamParser {
public:
- SamParser(char, const char*, Transcripts&, const char* = 0);
+ SamParser(char, const char*, const char*, Transcripts&, const char*);
~SamParser();
/**
}
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*);
char SamParser::rtTag[STRLEN] = ""; // default : no tag, thus no Type 2 reads
// aux, if not 0, points to the file name of fn_list
-SamParser::SamParser(char inpType, const char* inpF, Transcripts& transcripts, const char* aux)
+SamParser::SamParser(char inpType, const char* inpF, const char* aux, Transcripts& transcripts, const char* imdName)
: transcripts(transcripts)
{
switch(inpType) {
header = sam_in->header;
general_assert(header != 0, "Fail to parse sam header!");
- transcripts.buildMappings(header->n_targets, header->target_name);
+ transcripts.buildMappings(header->n_targets, header->target_name, imdName);
b = bam_init1();
b2 = bam_init1();
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);
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);