📜  Biopython-绘图(1)

📅  最后修改于: 2023-12-03 14:39:31.539000             🧑  作者: Mango

Biopython-绘图

介绍

Biopython是一个用于生物信息学的Python库,其中包含了许多常用的生物信息学算法和工具。其中有一个非常方便的模块Biopython graphics(Bio.Graphics),它提供了许多用于绘制生物信息学图形的类和函数,包括序列标识、基因结构图、进化树以及氨基酸序列的物理化学性质等。

基本图形
序列标识

利用Biopython Graphics模块中的Bio.Graphics.BasicChromosome类可以绘制染色体的基本形状,并在其上添加各种特征。下面是一个例子:

from Bio.Graphics import BasicChromosome
from Bio.SeqFeature import SeqFeature, FeatureLocation

chromosome_diagram = BasicChromosome.Organism()
chromosome_diagram.title = "BasicChromosome Example"
chromosome_diagram.add((0, 50), 'My Title')
chromosome_diagram.add((0, 50), 'My Subtitle')

for index, (start, end) in enumerate([(0, 10), (20, 25), (45, 50)]):
    feature = SeqFeature(FeatureLocation(start, end), strand=None)
    if index == 0:
        feature.name = "Feature 1\nwith two lines"
    else:
        feature.name = "Feature %d" % index
    feature.type = "Gene"
    feature.qualifiers["ID"] = ["ID%d" % index]
    chromosome_diagram.add_feature(feature,index=index)

chromosome_diagram.draw("basic_chromosome.png", "BasicChromosome")

这段代码将绘制三个基因特征在染色体上,并将其保存为basic_chromosome.png文件。

基因结构图

利用Biopython Graphics模块中的Bio.Graphics.GenomeDiagram类可以绘制基因组的基因结构图。下面是一个例子:

from Bio.Graphics import GenomeDiagram
from Bio import SeqIO
from Bio.SeqFeature import SeqFeature, FeatureLocation

record = SeqIO.read("NC_005816.gb", "genbank")

gd_diagram = GenomeDiagram.Diagram("Yersinia pestis biovar Microtus str. 91001 plasmid pPCP1")
gd_track_for_features = gd_diagram.new_track(1, name="Annotated Features")
gd_feature_set = gd_track_for_features.new_set()

for feature in record.features:
    if feature.type != "gene":
        continue
    if len(gd_feature_set) % 2 == 0:
        color = "blue"
    else:
        color = "lightblue"
    gd_feature_set.add_feature(feature, sigil="ARROW", color=color, label=True, label_position="middle", label_size=10)

gd_diagram.draw(format="linear", pagesize="A4", fragments=4, start=0, end=len(record))

gd_diagram.write("genome_diagram_linear.png", "PNG")

这段代码将绘制出Yersinia pestis基因组的基因结构图,并将该图保存为genome_diagram_linear.png文件。

进化树

利用Biopython Graphics模块中的Bio.Phylo类可以绘制进化树。下面是一个例子:

from Bio import Phylo
import pylab

tree = Phylo.read("apaf.xml", "phyloxml")
Phylo.draw(tree)
pylab.show()

这段代码将读取名为apaf.xml的Phylo XML格式文件,并绘制其进化树。

物理化学性质

利用Biopython Graphics模块中的Bio.Graphics.ThreeD类可以绘制氨基酸序列的物理化学性质图。下面是一个例子:

from Bio.Graphics import ThreeD
from Bio.SeqUtils.ProtParam import ProteinAnalysis

sequence = "MKSTYEFFYRFEVIIDKVPVEIEDVETNGSQQARIDSMPCATKRFSEVEQLRRIGFDQDTEGLWYRFRQDVEKAWIHQTSEPYYNVSSGGWHRVPVHFFKNEMERFAPLAKPEDGLVVYGGVDTFPFLFEKGEELVWRGFRRNSQWDFPVKFQGNFNMLDDGTPGTGSGLTAYALKYVYSSAYFAGIWAQVVPEGDVRMQAIAVLEDAEHELRGIAVATGLPTPPSKYTAIDKFDNDHFDIFYEVDNQKEYGNRLKGPVVGALIETLGGDLVLFPPGVAVKVASDTYGGLFAGGVQVTCSSKVAGKVSGDGYGYAKGTVRVVGSLGVLTGYLNDPIIPEGVVAASPLVVIPSDKEVGVADLLQFALQVVA"

analyzed_seq = ProteinAnalysis(sequence)

x, y, z = ThreeD.ProteinAnalysisPCA(analyzed_seq)

scatter3D = ThreeD.Scatter3D(x, y, z)
scatter3D.plot('Protein Analysis PCA.png')

这段代码将绘制出给定的氨基酸序列的维度缩减后的三维物理化学性质图,并将该图保存为Protein Analysis PCA.png文件。

参考文献
  • Biopython. (2021). Biopython 1.79 documentation. Retrieved June 22, 2021, from https://biopython.org/docs/1.79/api/Bio.Graphics.html