我目前正在使用htslib(尽管我也可以使用bamtools),并且能够通过类似this之类的方法进行连续读取,但是我很好奇如何编辑此代码以从第m个染色体而不是第n个染色体读取数据连续阅读。这可能吗?
最佳答案
您可以直接跳到第m
个染色体,但随后需要线性搜索第n
个读段。
代替sam_read1()
并给与对应于名为htsFile *
的文件的bamFile
(bamFileName
),可以这样:
hts_idx_t *idx = sam_index_load(bamFile, bamFileName);
hts_itr_t *itr = sam_itr_queryi(idx, m, 0, hdr->targetLen[m]);
然后使用
sam_itr_next(bamFile, itr, b)
获取b
(即bam1_t*
)中的连续对齐方式。关于c++ - 在van文件中从第m个染色体获取n读,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43815754/