首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BAM文件:使用pysam获取特定位置上的所有读取

BAM文件:使用pysam获取特定位置上的所有读取
EN

Stack Overflow用户
提问于 2016-09-25 01:58:57
回答 1查看 1.7K关注 0票数 1

我有一个BAM文件,在某个位置上有520817个读取(如IGV所示)。然而,当我使用pysam来获取读取名和特定位置上的相关核苷酸时,我并没有得到这个数量(只有大约7000个阅读量)。我想只有当那个位置上的核苷酸与参考基因组不同时,我才能读到。有没有变通的办法,让我得到所有的读数?我从生物信息学开始...所以请让我知道你需要什么来帮助我!

非常感谢!

这是我的代码:

代码语言:javascript
复制
import pysam
import csv
import sys

#---Get a table with in the first column: read-ID; second column: SNP-location; third column: nucleotide---#
mybam = pysam.AlignmentFile("file.bam", "rb")
w = csv.writer(open("snp.csv", "wb"), delimiter=",")
w.writerow(["Read", "Loc", "Nucl"])
for pileupcolumn in mybam.pileup('chr6', 29911198,29911199):
    print ("\ncoverage at base %s = %s" %
           (pileupcolumn.pos, pileupcolumn.n))
    for pileupread in pileupcolumn.pileups:
        if not pileupread.is_del:
            if pileupcolumn.pos == 29911198:
                w.writerow((pileupread.alignment.query_name, 29911198, pileupread.alignment.query_sequence[pileupread.query_position]))             
                print ('\tbase in read %s = %s' % (pileupread.alignment.query_name, pileupread.alignment.query_sequence[pileupread.query_position]))

mybam.close()
EN

回答 1

Stack Overflow用户

发布于 2018-06-30 17:20:11

选中IGV option View-->Preference->Alignment,一些"filter xxxx“选项(重复、二次对齐、低质量)可能会改变输出。

通常,pysam不会使用BAM_FUNMAP、BAM_FSECONDARY、BAM_FQCFAIL、BAM_FDUP标记进行堆积读取,因此请确保您的IGV视图选项与pysam.AlignmentFile.pileup中的选项相同。否则,它们可能会生成不同的输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39679380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档