我正在使用 seqan 1.4.1 来读取 sam/bam 文件。我有一个来自相同数据的 sam 和 bam 文件(与 rn5 refseq 基因对齐)。奇怪的是,当我与 ensembl 基因对齐时,我没有得到这个错误。
我正在读取 sam/bam 文件 BamStream,但如果我下拉到较低级别的 Stream 方法,则会发生同样的错误。
我打印 length(bamStreamIn._nameStore) 和读取的每个 record.rID。这是我使用数据的 bam 文件版本时的输出:
namestore size 42252
record.rID : 10364
record.rID : 41714
record.rID : 20136
record.rID : 5043
..c/Users/XXXX/shared/seqan-library-1.4.1/include/seqan/bam_io/read_bam.h:208 Assertion failed : static_cast<__uint64>(record.rID) < length(nameStore(context)) was: 43257 >= 42252
这是我使用 sam 文件时的输出:
namestore size 42252
record.rID : 10318
record.rID : 41436
record.rID : 20031
record.rID : 5009
record.rID : 13876
record.rID : 12206
...
(output continues successfully until the end of the file)
有趣的是,名称存储大小相同,但 rID 不同。知道为什么 rID 不同以及导致断言错误的原因是什么?