walaj / SeqLib

C++ htslib/bwa-mem/fermi interface for interrogating sequence data
http://bioinformatics.oxfordjournals.org/content/early/2016/12/21/bioinformatics.btw741.full.pdf+html
Other
132 stars 36 forks source link

BamRecord's PositionEnd() inconsistent with Position() #49

Open Ahhgust opened 5 years ago

Ahhgust commented 5 years ago

Position() gives the 0-based position of the start of the read (that is, it's the start position in the genome). PositionEnd() is not the (1-based) stop position in the genome as I think most people would expect. It's computed as:

b->core.pos + GetCigar().NumQueryConsumed()

Which mixes the read-coordinate system (number of query bases consumed) with the genome coordinate system (core.pos).

I would suggest:

b->core.pos + GetCigar().NumReferenceConsumed()

instead, which gives the stop position in the genome of the read.

-August