我目前正在使用htslib(尽管我也可以使用bamtools),并且能够通过类似this之类的方法进行连续读取,但是我很好奇如何编辑此代码以从第m个染色体而不是第n个染色体读取数据连续阅读。这可能吗?

最佳答案

您可以直接跳到第m个染色体,但随后需要线性搜索第n个读段。

代替sam_read1()并给与对应于名为htsFile *的文件的bamFilebamFileName),可以这样:

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/

10-11 17:53