Python 一种利用坐标快速获取人类基因组序列的方法

Python 一种利用坐标快速获取人类基因组序列的方法,python,sequence,bioinformatics,genome,Python,Sequence,Bioinformatics,Genome,我想随机得到很多人类基因组片段(超过5亿个) 这是整个过程的一部分工作。我有来自bowtie的.sam结果文件,有1000万条人类基因组序列。我想将每个查询读取的内容与sam文件中的“与之对齐的引用序列”进行比较。我使用的参考序列是UCSC的hg19.fa。因此,我需要能够使用sam文件中的位置从hg19.fa(或染色体文件)中获取序列 e、 g.通过给出:chr4:35654-35695,我可以得到42bp序列: GTCTTCAGGGTTTTTTATTTTTGGTTTACTAGT 到目前为止,

我想随机得到很多人类基因组片段(超过5亿个)

这是整个过程的一部分工作。我有来自bowtie的.sam结果文件,有1000万条人类基因组序列。我想将每个查询读取的内容与sam文件中的“与之对齐的引用序列”进行比较。我使用的参考序列是UCSC的hg19.fa。因此,我需要能够使用sam文件中的位置从hg19.fa(或染色体文件)中获取序列

e、 g.通过给出:chr4:35654-35695,我可以得到42bp序列:

GTCTTCAGGGTTTTTTATTTTTGGTTTACTAGT

到目前为止,我有两种解决方案: 1.从UCSC DAS服务器获取序列的python脚本:

  • 使用python脚本调用“samtools faidx”命令并返回commnad输出, 发信人:
  • 但是,它们很慢。samtools faidx比从DAS服务器获取它要快一点,但仍然很慢


    那么,有什么快速的方法可以做到这一点吗?我有seprate染色体fasta文件和hg19.fa文件

    在中使用ucsctwoBitToFa


    另请参见

    您可以尝试python twobitreader模块:

    python-m双位读取器hg19.2比特<临时床


    如果您要获得一个上限,那么如果从外部资源获取,您可能会受到带宽/线路的限制。同样,如果读取,则受磁盘读取速度的限制(如果不在活动内存中)。您是否考虑过使用?通过使用
    subprocess.call('samtools faidx')
    等,您可以使用它打开sam文件并连续调用faidx,而无需打开/关闭开销。我有2bit格式的hg19,您能告诉我在我的情况下应该如何使用此文件吗?谢谢