биоинформатика — библиотека SeqAn C ++: разные значения rID для bam и sam с одинаковыми данными, bam приводит к ошибке подтверждения из-за длины хранилища имен

Я использую seqan 1.4.1 для чтения файлов sam / bam. У меня есть файл sam и bam из тех же данных (выравнивание по генам rn5 refseq). Как ни странно, я не получил эту ошибку, когда выровнялся с генами ансамбля.

Я читаю файлы sam / bam BamStream, но та же ошибка возникает, если я перехожу к более низкоуровневому подходу Stream.

Я печатаю длину (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 разные и что вызывает ошибку утверждения?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …