Biopython——生信人必备的科研工具,你值得拥有






Biopython——生信人必备的科研工具,你值得拥有

小果  生信果  2024-03-05 19:02:56

前言
嗨,各位小伙伴们好,我们又见面了!俗话说:工欲善其事,必先利其器。”,最近小果在查阅生物信息资料时偶然发现了一个Python生物信息处理工具——Biopython,它简单易用,想分享给大家。Biopython是Python的最大、最受欢迎的生物信息学开源软件包,功能十分丰富强大。它主要由Python语言编写,也包含了用以优化复杂的数据计算的C代码,兼容性良好,能在Windows、Linux和Mac OS X等操作系统上运行。
它的主要功能包括序列处理、解析文件、读取遗传数据库和蛋白质结构分析等,生物序列的数据十分庞大,像人类就大约有31.6亿个DNA碱基对,你可以想象多序列比对的计算量是有多么复杂,幸好Biopython内部有许多通俗易懂的模块和高效的优化算法(如Smith-Waterman算法),所以我们能轻松便捷处理DNA、RNA和蛋白质序列数据,它的强大之处远不止如此,小果就不一一列举啦~
有了它,你可以在生物信息学中如鱼得水,不仅能轻松处理生物信息数据,还能查询和下载文献及其数据呢!快快上手体验吧~本次介绍的Python工具包需要下载,如果使用服务器能下载得更快,欢迎联系小果租赁性价比居高的服务器哦!



公众号后台回复“111”

领取本篇代码、基因集或示例数据等文件

文件编号:240304

需要租赁服务器的小伙伴可以扫码添加小果,此外小果还提供生信分析,思路设计,文献复现等,有需要的小伙伴欢迎来撩~
不要担心零基础不会使用,下面小果这就来教你~
首先在终端用pip install biopython下载(温馨提示:要提前先安装好Python或Anaconda)
下载完后,这里小果使用的编程软件是pycharm,小伙伴们使用vscode之类的编程软件也是可以的,开始上手写代码~    
Biopython在Python中导入包是叫Bio,小果导入Bio模块包,来做Seq模块做序列处理。
通过字符串输入Seq类做实例化,就可以创建序列,是不是很容易呢?    
from Bio.Seq import Seq#导入Biopython中序列处理模块          from random import choices#导入random中的选择函数          import matplotlib.pylab as plt#导入matplotlib中的绘图模块          

seq = Seq("ATCGCTTGTACT")#创建序列 print(seq) #输出:#ATCGCTTGTACT print(type(seq)) #输出:#
小果尝试随机生成DNA序列,先定义表示碱基对的字符串,用前面导入的random模块的choices函数随机选择碱基对生成含字符串的列表,其中k是指生成字符串的数量参数,默认是1,再用join函数拼接列表中的碱基对字符串,使其转化为DNA序列字符串,最后通过Seq类做实例化就能得到随机生成的DNA序列了!
BASE_PAIR='ATCG'#A、T、C、G碱基对  string=''.join(choices(BASE_PAIR, k=15)) dna=Seq(string)#随机生成序列  print(dna)  #输出(不唯一,下同):ATTACTATGGGGTCC
          
小果发现,Biopython对序列的部分操作和字符串基本相同,序列能够通过len函数判断长度,也能够通过索引切片,还能够通过count函数统计碱基对字符串的数量,下面小果给大家露一手(小果给大家提醒一下:不要忘记Python的索引下标是从0开始哦)    
print(len(dna))#长度  #输出:15  print(dna[1:5])#查看序列中的第2到5位置上的核苷酸  #输出:TTAC  print(dna.count('A'))#统计A的数量  #输出:3  print(dna.count('TA'))#统计TA的数量  #输出:2
 
接下来小果教你如何绘制碱基对统计的柱状图,用前面导入的matplotlib中的绘图模块pylab,设置支持中文的字体,获取碱基对字符串的数量保存在data列表,将对应的碱基对类别放入item列表,运用bar函数生成柱状图,它有可选参数color来设置颜色。小果为了让柱状图的每个柱子显示数值,定义了add_label函数,cols是图表参数 ,x_bia和y_bias分别是水平和垂直方向的偏置参数,小伙伴可以根据自己的实际位置进行调整。小果调用add_label函数,通过title函数添加标题,通过xlabel和ylabel函数分别添加x轴和y轴的标签,最后通过show函数就能显示碱基对的统计柱状图了!
#定义函数来显示柱子上的数值def add_label(cols,x_bias=-0.03,y_bias=0.04):    for col in cols:        height = col.get_height()        plt.text(col.get_x()+col.get_width()/2+x_bias,height+y_bias,                 '%s'%height,size=11,family="Times New Roman")           plt.rcParams['font.sans-serif'] = 'SimHei'   #设置字体为黑体,使图形中的中文正常编码显示    data=[dna.count('A'),dna.count('T'),dna.count('C'),dna.count('G')]#碱基对的统计item=['A','T','C','G']bar=plt.bar(item,data,color=['r','g','b','y'])#生成柱状图           add_label(bar)#添加数值           #添加标题和标签plt.title('碱基对的统计柱状图',size=15)plt.xlabel('名称',size=12)plt.ylabel('数量(个)',size=12)plt.show()
   
          
Biopython对序列的基本转化处理包括常用的互补、转录和翻译,小果查阅资料,看到许多转化处理都有对应的封装函数能直接处理,不得不说是非常方便了。小果列举一些例子:序列能够通过complement函数和reverse_complement函数分别得到其互补序列和其反向互补序列,也能够通过transcribe函数转录为RNA,还通过translate函数翻译为氨基酸序列
print(dna.complement())#互补序列  #输出:TAATGATACCCCAGG  print(dna.reverse_complement())#序列的反向互补序列  #输出:GGACCCCATAGTAAT  print(dna.transcribe())#DNA转录为RNA  #输出:AUUACUAUGGGGUCC  print(dna.translate())#翻译成的氨基酸序列  #输出:ITMGS
小结
今天小果给大家介绍流行的生物科研工具——Biopython,它高效便捷,极易上手。小果教了大家关于Biopython的安装和基本操作,它的安装只需一句命令行,你还记得是什么吗?
Biopython对序列的操作基本是依靠封装的函数简单实现,你无需复杂的操作就能轻松处理序列。让小果来考考你,如何统计序列中的倒数第九个位置和倒数第三个位置之间的鸟嘌呤的碱基对的数量呢?(提示:负数索引在Python切片可以表示倒数喔~)          
以上只是Biopython的冰山一角,它的出色功能显然远远不止这些,篇幅有限,小果就先教到这里了。掌握了Biopython这一高效便捷科研工具,你将在生物信息的科研道路上披荆斩棘,无需再为处理庞大的生物数据而发愁烦恼。    
怎么样,小伙伴们学会使用Biopython了吗?你们想继续学习更多的生物信息处理工具吗?欢迎在评论区留言,请继续支持和关注我们的公众号┗|`O′|┛ 嗷~~后面小果将会持续带给小伙伴更多的精彩内容,不要错过噢~如果各位小伙伴们觉得自己手写和运行代码太麻烦,不妨来使用我们的云生信小工具吧,你只要输入合适的数据就能够直接得到想要的图呢,十分方便,要记得使用我们的云生信链呀!小果怕小伙伴们忘记,再次告诉大家它的网址就是http://www.biocloudservice.com/home.html
小伙伴们下期再会啦~
小果还提供思路设计、定制生信分析、文献思路复现;有需要的小伙伴们欢迎直接扫码咨询小果,竭诚为您的科研保驾护航! 

小果还提供思路设计、定制生信分析、文献思路复现;有需要的小伙伴欢迎直接扫码咨询小果,竭诚为您的科研助力!


定制生信分析

服务器租赁

扫码咨询小果


往期回顾

01

1024G存储的生信服务器,两人成团,1人免单!

02

单个数据库用腻了?多数据库“组合拳”带你打开免疫浸润新思路!

03

孟德尔随机化的准备工作,GWAS数据的网站下载方法

04

跟着小果学复现-手把手带你拿下IF=46.9Nature 级别的主成分分析(PCA)图!!