SeqLib icon indicating copy to clipboard operation
SeqLib copied to clipboard

BamRecord's PositionEnd() inconsistent with Position()

Open Ahhgust opened this issue 6 years ago • 0 comments

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

Ahhgust avatar Jun 13 '19 18:06 Ahhgust