介绍
Biopython是一个使用Python来开发计算分子生物学工具,为使用和研究生物信息学的开发者提供了一个在线的资源库,包括模块、脚本以及一些基于Python的软件的网站链接.它可以解析各种生物信息学格式的文件(BLAST, Clustalw, FASTA,Genbank...),访问在线的服务器(NCBI,Expasy...),常见和不那么常见程序的接口(Clustalw, DSSP,MSMS...),标准的序列类,各种收集的模块,KD树数据结构等等,还有一些文档。
常见问答
什么Seq对象缺少了这篇教程中的upper和lower方法?
你需要Biopython 1.53或更新版本。或者,使用str(my_seq).upper()来获得大写字符串。如果你需要一个Seq对象,试试Seq(str(my_seq).upper()),但是要小心重用相同的字母
Bio.SeqIO和Bio.AlignIO读写什么样的文件格式?
请检查内建文档(from Bio import SeqIO,然后help(SeqIO)),或见wiki上的最新条目:http://biopython.org/wiki/SeqIO以及http://biopython.org/wiki/AlignIO
为什么Bio.SeqIO.write()和Bio.AlignIO.write()函数不接受单个记录或比对?它们坚持需要一个列表或迭代器!
你需要Biopython 1.54或更新版本,或将该条目以[...]包起来形成一个单元素的列表
为什么str(...)不给我一个Seq对象的全序列?
你需要Biopython 1.45或更新的版本。或者,与其使用str(my_seq),不如试试my_seq.tostring()这也能在最近的Biopython版本上工作)。
为什么Bio.Blast不能处理最新的NCBI blast输出文本文件结果?
NCBI在不断的调整BLAST工具的纯文本输出,导致我们的解析器需要不断更新。如果你没使用最新版本的Biopython,你可以试试升级。但是,我们(还有NCBI)推荐你使用HTML格式输出来代替,因HTML是设计给电脑程序读取的。
快速开始 —— 你能用Biopython做什么?
处理序列
Biopython处理序列的机制,主要是Seq对象,大多数时候当我们想到一条序列时,在我们脑海中都会有一串类似于‘AGTACACTGGT’的字母串。你可以按以下步骤创建一个Seq对象:
from Bio.Seq import Seq
my_seq=Seq("AGTACACTGGT")
Seq对象支持不同于Python的字符串,它有自己的用法
>>>my_seqSeq('AGTACACTGGT', Alphabet())
>>>my_seq.complement()
Seq('TCATGTGACCA', Alphabet())
>>>my_seq.reverse_complement()
Seq('ACCAGTGTACT', Alphabet())
另一个最重要的类是SeqRecord或Sequence Record。它保留了一条序列(作为Seq对象)额外的注释信息,包括ID,name和description。用于读写序列文件格式的Bio.SeqIO模块能与SeqRecord对象一起工作; SeqRecord对象包含一个Seq对象和注释信息(如序列ID和描述信息)。