biopython教程与手册_第13章 Bio.Phylo系统发育分析 — Biopython-cn 0.1 文档

本文介绍了如何使用Biopython的Bio.Phylo模块为系统发育树的分支设定颜色和宽度。从1.59版本开始,Clade对象支持color和width属性,可用于在显示时改变分支的颜色和宽度。通过设置不同节点的颜色,可以突出特定分支。文章以示例展示了如何设置根节点和特定祖先节点的颜色,并保存为PhyloXML格式以保留颜色信息。
摘要由CSDN通过智能技术生成

13.1.1 给树的分支上颜色¶

函数 draw 和 draw_graphviz 支持在树中显示不同的颜色和分支宽度。

从Biopython 1.59开始,Clade对象就开始支持 color 和 width 属性,

且使用他们不需要额外支持。这两个属性都表示导向给定的进化枝前面的分支的

属性,并依次往下作用,所以所有的后代分支在显示时也都继承相同的宽度和颜

色。

在早期的Biopython版本中,PhyloXML树有些特殊的特性,使用这些属性需要首先

将这个树转换为一个基本树对象的子类Phylogeny,该类在Bio.Phylo.PhyloXML模

块中。

在Biopython 1.55和之后的版本中,这是一个很方便的树方法:

>>>tree = tree.as_phyloxml()

在Biopython 1.54中, 你能通过导入一个额外的模块实现相同的事情:

>>>from Bio.Phylo.PhyloXML import Phylogeny

>>>tree = Phylogeny.from_tree(tree)

注意Newick和Nexus文件类型并不支持分支颜色和宽度,如果你在Bio.Phylo中使用

这些属性,你只能保存这些值到PhyloXML格式中。(你也可以保存成Newick或Nexus

格式,但是颜色和宽度信息在输出的文件时会被忽略掉。)

现在我们开始指定颜色。首先,我们将设置根进化枝为灰色。我们能通过赋值24位

的颜色值来实现,用三位数的RGB值、HTML格式的十六进制字符串、或者预先设置好的

颜色名称。

>>>tree.root.color = (128, 128, 128)

Or:

>>>tree.root.color = "#808080"

Or:

>>>tree.root.color = "gray"

一个进化枝的颜色会被当作从上而下整个进化枝的颜色,所以我们这里设置根的

的颜色会将整个树的颜色变为灰色。我们能通过在树中下面分支赋值不同的颜色

来重新定义某个分支的颜色。

让我们先定位“E”和“F”最近祖先(MRCA)节点。方法 common_ancestor 返回

原始树中这个进化枝的引用,所以当我们设置该进化枝为“salmon”颜色时,这个颜

色则会在原始的树中显示出来。

>>>mrca = tree.common_ancestor({"name": "E"}, {"name": "F"})

>>>mrca.color = "salmon"

当我们碰巧明确地知道某个进化枝在树中的位置,以嵌套列表的形式,我们就能

通过索引的方式直接跳到那个位置。这里,索引 [0,1] 表示根节点的第一个

子代节点的第二个子代。

>>>tree.clade[0,1].color = "blue"

最后,展示一下我们的工作结果 (见 Fig. 13.1.1 ):

>>>Phylo.draw(tree)

注意进化枝的颜色包括导向它的分支和它的子代的分支。E和F的共同祖先结果刚好

在根分支下面,而通过这样上色,我们能清楚的看出这个树的根在哪里。

我们已经完成了很多!现在让我们休息一下,保存一下我们的工作。使用一个文件

名或句柄(这里我们使用标准输出来查看将会输出什么)和 phyloxml 格式来

调用 write 函数。PhyloXML格式保存了我们设置的颜色,所以你能通过其他树

查看工具,如Archaeopteryx,打开这个phyloXML文件,这些颜色也会显示出来。

>>>import sys

>>>Phylo.write(tree, sys.stdout, "phyloxml")

1.0

128

128

128

1.0

1.0

A

...

本章的其余部分将更加细致的介绍Bio.Phylo核心功能。关于Bio.Phylo的更多例

子,请参见Biopython.org上的Cookbook手册页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值