在Python中有效地获取基因组序列?

时间:2010-07-07 03:48:09

标签: python bioinformatics biopython

如何使用Python有效地获取基因组序列?例如,从.fa文件或其他一些容易获得的格式?我基本上想要一个接口f​​etch_seq(chrom,strand,start,end),它将返回指定链上给定染色体上的序列[start,end]。

类似地,是否有用于获取phastCons分数的程序化python接口?

感谢。

4 个答案:

答案 0 :(得分:4)

从大型人类染色体文件中检索序列数据可能在内存方面效率低下,因此如果您正在寻找计算效率,则可以将序列数据格式化为打包的二进制字符串并基于字节位置进行查找。我在perl(可用here)编写例程来执行此操作,并且python具有相同的pack and unpack routines - 所以它可以完成,但只有当你遇到麻烦大文件时才值得这样做有限的机器。否则使用biopython SeqIO

答案 1 :(得分:3)

在Biostar上查看我对你问题的回答:

http://biostar.stackexchange.com/questions/1639/getting-genomic-sequences-and-phastcons-scores-using-python-from-ensembl-ucsc

将SeqIO与Fasta文件一起使用,您将获取文件中每个项目的记录对象。然后你可以这样做:

region = rec.seq[start:end]

拔出切片。使用标准库的好处是您不必担心原始fasta文件中的换行符。

答案 2 :(得分:1)

看看biopython,它支持几种基因序列格式。具体而言,它支持FASTA and GenBank files,仅举几个。

答案 3 :(得分:0)

pyfasta 是您正在寻找的模块。从描述

对fasta序列文件的快速,内存效率,pythonic(和命令行)访问

https://github.com/brentp/pyfasta