上海锐翌生物科技有限公司

服务电话:021-51001612

邮箱:support@realbio.cn

技术课堂

如何用Biopython处理序列?
发布时间:2017-03-16 14:23   点击率:
生物信息分析涉及的工作很多,但一切都是从序列开始。看似简单的ATCG排列组合,实际上深藏着自然界奥秘。成功解析序列文件,是确保后续分析得以展开的前提。Biopython可解析多种生物信息学格式的文件,能帮我们轻松跨越漫漫分析路上的第一道坎。

什么是Biopython?
Biopython工程是一个使用Python来开发计算分子生物学工具的国际团体,为使用和研究生物信息学的开发者提供了一个在线资源库,包括模块、脚本以及一些基于Python的软件的网站链接。一般来讲,Biopython致力于通过创造高质量的和可重复利用的模块及类,从而使得Python在生物信息学中的应用变得更加容易。
官网http://www.biopython.org


探索Biopython包
主要的Biopython发行版本有很多种功能,包括:
处理常见的生物信息学在线数据库的代码:
NCBI – Blast, Entrez和PubMed服务
ExPASy – Swiss-Prot和Prosite条目, 包括Prosite搜索
常见生物信息学程序的接口,例如:
NCBI的Standalone Blast
Clustalw比对程序
EMBOSS命令行工具
一个能处理序列、ID和序列特征的标准序列类。
对序列实现常规操作的工具,如翻译,转录和权重计算。
使用这些模块的详细文档和帮助,包括此文件,在线的wiki文档,网站和邮件列表。


Biopython功能概览
Biopython是一个库的集合,这个库能帮助生物学家在计算机上解决感兴趣的事情。你需要一点编程经验或至少有兴趣学习编程。Biopython的任务就是通过提供可重复利用的库,让编程人员的工作变得更加容易,可以使你能集中精力解决你所感兴趣的问题,而不用花太多精力去完成一个解析特殊文件格式的构件!

处理序列
生物信息学的中心对象是序列。因此,我们先了解一下Biopython处理序列的机制,主要是Seq对象。当我们想到一条序列时,在我们脑海中都会有一串类似于‘AGTACACTGGT’的字母串。我们可以按创建一个Seq对象,这是一个由通用字母表组成的序列对象——说明我们还没有指定它是一条DNA序列还是蛋白质序列。除了有一个字母表,Seq对象支持不同于Python的字符串方法。另一个最重要的类是SeqRecord或Sequence Record。它保留了一条序列(作为Seq对象)额外的注释信息,包括ID、name和description。这涵盖了基本的功能和Biopython序列类的使用。

用法示例
总体介绍
Lady Slipper Orchids属于兰科拖鞋兰亚科,并且由5个属组成:
Cypripedium,Paphiopedilum,Phragmipedium,Selenipedium 和 Mexipedium。

现在,我们可以从一条序列开始使用Biopython。比如我们将在PubMed上搜索有关兰花的文章,然后在GenBank上提取序列,从Swiss-Prot上提取特定的兰花蛋白数据,最后我们用ClustalW对兰花蛋白进行多序列比对。

1. 获得FASTA和GenBank格式文件
为尽量保持简单,我们仅仅手动使用NCBI网站。我们先看看NCBI上的nucleotide库,使用在线的Entrez搜索包含Cypripedioideae(这是Lady Slipper Orchids的亚科)。
搜索链接:

http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?db=Nucleotide



我们将结果保存为FASTA格式文本文件(ls_orchid.fasta)和GenBank格式文本文件(ls_orchid.gbk)。

2. 解析序列
2.1 简单的FASTA解析示例
如果我们用文本编辑器打开lady slipper orchids的FASTA文件ls_orchid.fasta,将会看到这样的文件开头:


2.2 简单的GenBank解析示例
现在我们来用Biopython加载GenBank文件ls_orchid.gbk,打开结果如下:


Biopython有很多解析器,基于它们所解析的文件格式,每一个都有自己独特的作用,大家不妨多多尝试。