龙源期刊网 http://www.qikan.com.cn
简述利用Python批量下载生物序列
作者:邹刚刚 雍金贵 吴楠
来源:《科学与信息化》2017年第21期
摘 要 随着生命科学和计算机科学的迅猛发展,研究人员可以通过Entrez访问NCBI的多个数据库并下载所需生物数据,当所需数据较少时,手工查询与利用Python程序查询差别不大,一旦需要的数据成百上千时,利用Python程序中Biopython模块批量访问下载生物数据,较手动查询更快捷、便利且正确率高。Biopython致力于通过创造高质量的和可重复利用的模块及类,从而使得Python在生物信息学中的应用变得更加容易。 关键词 NCBI;Biopython;生物数据;批量下载 前言
目前,生命科学和计算机科学相结合形成的一门新学科,生物信息学,它通过综合利用生物学,计算机科学和信息技术而揭示大量而复杂的生物数据所赋有的生物学奥秘。Python,是一种面向对象的解释型计算机程序设计语言,它具有丰富和强大的库,在计算机科学中日益流行。Python易学,语法明晰,并且能很容易地使用以C,C++或者FORTRAN编写的模块实现扩展。Biopython是Python的计算分子生物学和生物信息学工具包,它使得python在生物学数据处理中变得更加强大和高效,为使用和研究生物信息学的开发者提供了一个在线的资源库,包括模块、脚本以及一些基于Python的软件的网站链接。Biopython致力于通过创造高质量的和可重复利用的模块及类,从而使得Python在生物信息学中的应用变得更加容易[1]。 NCBI,美国国立生物技术信息中心,研究人员一般通过访问该网站获取所需的生物数据。Entrez是一个给客户提供NCBI各个数据库(如PubMed,GeneBank,GEO等)访问的检索系统[2]。用户可以通过浏览器手动输入查询条目访问Entrez,也可以使用Biopython的Bio.Entrez模块以编程方式来访问Entrez。如查询的条目较少,手动查询或程序查询效果差别不大,一旦查询的条目成百上千,手动查询就显得耗时耗力,而且大量手动重复性操作带来的错误率也随之升高,此时,用编程方式访问就变得正确且高效。 1 手动查询和程序查询一条序列 1.1 手动查询一条序列
首先,以查询一个条目为例对程序进行说明。已知Accessions是BC032736,在NCBI网站上查询结果如下图所示,如果需CDS区序列,点击CDS可直接看到 1.2 程序查询一条序列
那么,如何利用程序查询其对应的生物数据呢?Python程序[3]和结果如下:
龙源期刊网 http://www.qikan.com.cn
上面的程序是将结果直接打印到控制台程序中,通常,为避免在运行脚本的时候重复下载同样的文件并减轻NCBI服务器的负载,是把序列数据保存到一个本地文件中,然后使用Bio.SeqIO来解析。
2 手动查询和程序查询多条序列
上述例子描述的是搜索1条序列,手动搜索和程序访问两种方法差别不大,如果现在有1000或者10000条序列,如果手动搜索,则费时费力,并且会有误差,此时程序访问方法就显得更加便利了[4]。具体的Python程序如下,将基因编号放在id_list.txt文件中,将结果写到sequences.txt文件中。
如想得到这些序列的CDS区序列,并以fasta格式呈现出来,则需进一步编写python程序,程序如下,genbank格式序列存放在sequences.txt文件中,fasta格式的CDS区序列存放在result.txt文件中 部分结果图如下:
可以看出,简短的几句python程序就可实现批量下载生物数据的功能,完成了手动查询很难完成的任务,为生物研究提供了较大便利,是计算机语言在生物研究上的又一成功应用。 参考文献
[1] 赵屹,谷瑞升,杜生明.生物信息学研究现状及发展趋势[J]. 医学信息学杂志,2012,33(5):2-6.
[2] 王哲,黄高升.NCBI的数据库资源及其应用[J].生命科学,2002,14(1):59-62. [3] Bassi S.Python for Bioinformatics[M].Python for bioinformatics. Jones and Bartlett Publishers,2012:221.
[4] 张良均.Python数据分析与挖掘实战[M].北京:机械工业出版社,2016:39.
龙源期刊网 http://www.qikan.com.cn
相关推荐: