25 modTest.testModify(
"testFiles/testSam.sam");
26#ifdef __ZLIB_AVAILABLE__
27 modTest.testModify(
"testFiles/testBam.bam");
32void modify::testModify(
const char* filename)
34 myFilename = filename;
44void modify::modifyPosition()
49 assert(samRecord.getBin() == 4681);
52 assert(samRecord.set0BasedPosition(33768));
55 assert(samRecord.getBin() == 4683);
56 assert(samRecord.get0BasedPosition() == 33768);
60void modify::modifyCigar()
65 assert(samRecord.getBin() == 4681);
68 assert(samRecord.setCigar(
"33768M"));
71 assert(samRecord.getBin() == 585);
75void modify::modifyFlag()
81 assert(samRecord.getFlag() == flag);
85 assert(samRecord.setFlag(flag));
86 assert(samRecord.getFlag() == 1097);
90 assert(samRecord.setFlag(flag));
91 assert(samRecord.getFlag() == 73);
95void modify::openAndRead1Rec()
98 assert(samIn.OpenForRead(myFilename.c_str()));
101 assert(samIn.ReadHeader(samHeader));
104 assert(samIn.ReadRecord(samHeader, samRecord));
108void modify::modifyTags()
110 assert(samIn.OpenForRead(myFilename.c_str()));
112 assert(samIn.ReadHeader(samHeader));
117 std::string inputType = myFilename.substr(myFilename.find_last_of(
'.'));
118 std::string outFileBase =
"results/updateTagFrom";
119 if(inputType ==
".bam")
121 outFileBase +=
"Bam";
125 outFileBase +=
"Sam";
128 std::string outFile = outFileBase +
".sam";
130 outFile = outFileBase +
".bam";
137 while(samIn.ReadRecord(samHeader, samRecord))
141 assert(samRecord.rmTag(
"MD",
'Z'));
145 assert(samRecord.rmTags(
"XT:A;MD:Z;AB:c;NM:i"));
149 assert(samRecord.rmTags(
"MD:Z,AB:c,NM:i"));
bool OpenForWrite(const char *filename, SamFileHeader *header=NULL)
Open a sam/bam file for writing with the specified filename, determining SAM/BAM from the extension (...
bool WriteHeader(SamFileHeader &header)
Writes the specified header into the file.
bool WriteRecord(SamFileHeader &header, SamRecord &record)
Writes the specified record into the file.
static void setNotDuplicate(uint16_t &flag)
Mark the passed in flag as not duplicate.
static void setDuplicate(uint16_t &flag)
Mark the passed in flag as not duplicate.