1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
//![include]
#include <seqan/bam_io.h>
using namespace seqan2;
int main()
{
//![include]
//![ctor]
CharString bamFileInName = getAbsolutePath("demos/tutorial/file_io_overview/example.bam");
CharString samFileOutName = getAbsolutePath("demos/tutorial/file_io_overview/example.sam");
// Open input BAM file, BamFileIn supports both SAM and BAM files.
BamFileIn bamFileIn(toCString(bamFileInName));
// Open output SAM file by passing the context of bamFileIn and the filename to open.
BamFileOut samFileOut(context(bamFileIn), toCString(samFileOutName));
//![ctor]
//![open]
// Alternative way to open a bam or sam file
BamFileIn openBamFileIn;
open(openBamFileIn, toCString(bamFileInName));
//![open]
//![header]
// Copy header.
BamHeader header;
readHeader(header, bamFileIn);
writeHeader(samFileOut, header);
//![header]
//![records]
// Copy all records.
BamAlignmentRecord record;
while (!atEnd(bamFileIn))
{
readRecord(record, bamFileIn);
writeRecord(samFileOut, record);
}
return 0;
}
//![records]
|