开发手册 欢迎您!
软件开发者资料库

Biopython - 绘图

Biopython绘图 - 从简单和简单的步骤开始学习Biopython,从基本到高级概念,包括简介,安装,创建简单应用程序,序列,高级序列操作,序列I / O操作,序列比对,BLAST概述,Entrez数据库,PDB模块,Motif对象,BioSQL模块,群体遗传学,基因组分析,表型微阵列,绘图,聚类分析,机器学习,测试技术。

本章介绍如何绘制序列.在转到这个主题之前,让我们先了解一下绘图的基础知识.

绘图

Matplotlib是一个Python绘图库,可以生成多种质量数据格式.我们可以创建不同类型的图,如折线图,直方图,条形图,饼图,散点图等.

pyLab是一个属于matplotlib的模块,它结合了数字模块numpy与图形绘图模块pyplot. Biopython使用pylab模块绘制序列.为此,我们需要导入以下代码 :

  import pylab

在导入之前,我们需要使用pip命令安装matplotlib包,并使用下面给出的命令 :

  pip install matplotlib

示例输入文件

在Biopython目录中创建一个名为plot.fasta的示例文件,添加以下的变化:

>seq0 FQTWEEFSRAAEKLYLADPMKVRVVLKYRHVDGNLCIKVTDDLVCLVYRTDQAQDVKKIEKF >seq1 KYRTWEEFTRAAEKLYQADPMKVRVVLKYRHCDGNLCIKVTDDVVCLLYRTDQAQDVKKIEKFHSQLMRLME >seq2 EEYQTWEEFARAAEKLYLTDPMKVRVVLKYRHCDGNLCMKVTDDAVCLQYKTDQAQDVKKVEKLHGK >seq3 MYQVWEEFSRAVEKLYLTDPMKVRVVLKYRHCDGNLCIKVTDNSVCLQYKTDQAQDV>seq4 EEFSRAVEKLYLTDPMKVRVVLKYRHCDGNLCIKVTDNSVVSYEMRLFGVQKDNFALEHSLL >seq5 SWEEFAKAAEVLYLEDPMKCRMCTKYRHVDHKLVVKLTDNHTVLKYVTDMAQDVKKIEKLTTLLMR >seq6 FTNWEEFAKAAERLHSANPEKCRFVTKYNHTKGELVLKLTDDVVCLQYSTNQLQDVKKLEKLSSTLLRSI >seq7 SWEEFVERSVQLFRGDPNATRYVMKYRHCEGKLVLKVTDDRECLKFKTDQAQDAKKMEKLNNIFF >seq8 SWDEFVDRSVQLFRADPESTRYVMKYRHCDGKLVLKVTDNKECLKFKTDQAQEAKKMEKLNNIFFTLM >seq9 KNWEDFEIAAENMYMANPQNCRYTMKYVHSKGHILLKMSDNVKCVQYRAENMPDLKK>seq10 FDSWDEFVSKSVELFRNHPDTTRYVVKYRHCEGKLVLKVTDNHECLKFKTDQAQDAKKMEK

Line Plot

现在,让我们为上述fasta文件创建一个简单的线图。

Step 1:导入SeqIO模块以读取fasta文件。

>>> from Bio import SeqIO

Step 2:解析输入文件。

>>> records = [len(rec) for rec in SeqIO.parse("plot.fasta", "fasta")] >>> len(records) 11 >>> max(records) 72 >>> min(records) 57

Step 3 :让我们导入pylab模块。

>>> import pylab

Step 4: 通过分配x和y轴标签来配置折线图。

>>> pylab.xlabel("sequence length") Text(0.5, 0, 'sequence length') >>> pylab.ylabel("count") Text(0, 0.5, 'count') >>>

Step 5: 通过设置网格显示来配置折线图。

>>> pylab.grid()

Step 6:通过调用绘图方法并提供记录作为输入来绘制简单的折线图。

>>> pylab.plot(records) []

Step 7:最后,使用以下命令保存图表。

>>> pylab.savefig("lines.png")

Result

执行完上述命令后,您可以看到以下图像保存在Biopython目录中。

Line Plot

Histogram Chart

直方图用于连续数据,其中bin表示数据范围。 绘图直方图与pylab.plot相同,与折线图相同。 取而代之的是,调用pylab模块的hist方法,其中包含记录和一些bin的custum值(5)。 完整的编码如下:

Step 1: 导入SeqIO模块以读取fasta文件。

>>> from Bio import SeqIO

Step 2 :解析输入文件。

>>> records = [len(rec) for rec in SeqIO.parse("plot.fasta", "fasta")] >>> len(records) 11 >>> max(records) 72 >>> min(records) 57

Step 3:让我们导入pylab模块。

>>> import pylab

Step 4 :通过分配x和y轴标签来配置折线图。

>>> pylab.xlabel("sequence length") Text(0.5, 0, 'sequence length') >>> pylab.ylabel("count") Text(0, 0.5, 'count') >>>

Step 5 :通过设置网格显示来配置折线图。

>>> pylab.grid()

Step 6:通过调用绘图方法并提供记录作为输入来绘制简单的折线图。

>>> pylab.hist(records,bins=5) (array([2., 3., 1., 3., 2.]), array([57., 60., 63., 66., 69., 72.]), ) >>>

Step 7:最后,使用以下命令保存图表。

>>> pylab.savefig("hist.png")

Result

执行完上述命令后,您可以看到以下图像保存在Biopython目录中。

Histogram Chart

GC Percentage in Sequence

GC百分比是比较不同序列的常用分析数据之一。 我们可以使用一组序列的GC百分比来做一个简单的折线图,并立即进行比较。 在这里,我们可以将数据从序列长度更改为GC百分比。 完整的编码如下:

Step 1:导入SeqIO模块以读取fasta文件。

>>> from Bio import SeqIO

Step 2 : 解析输入文件。

>>> from Bio.SeqUtils import GC >>> gc = sorted(GC(rec.seq) for rec in SeqIO.parse("plot.fasta", "fasta"))

Step 3:让我们导入pylab模块。

>>> import pylab

Step 4: 通过分配x和y轴标签来配置折线图。

>>> pylab.xlabel("Genes") Text(0.5, 0, 'Genes') >>> pylab.ylabel("GC Percentage") Text(0, 0.5, 'GC Percentage') >>>

Step 5: 通过设置网格显示来配置折线图。

>>> pylab.grid()

Step 6: 通过调用绘图方法并提供记录作为输入来绘制简单的折线图。

>>> pylab.plot(gc) []

Step 7:最后,使用以下命令保存图表。

>>> pylab.savefig("gc.png")

Result

执行完上述命令后,您可以看到以下图像保存在Biopython目录中。

GC Percentage in Sequence