乐于分享
好东西不私藏

R包神器 | 系统发育和进化分析 – ape (二) Face to Face 树

R包神器 | 系统发育和进化分析 – ape (二) Face to Face 树

介绍ape包绘制的面对面树

cophyloplot

绘制两个系统发育树的面对面(Face to face)图,并在顶端(Tips,即序列名)之间连线。用于比较、展示2个有所关联的系统发育树。

如果指定了链接(Links,即2列Tips名称)方式,此函数将绘制两棵面对面的树。通过鼠标单击可围绕节点 (Nodes)旋转每棵树的分支 (Branches)。

在文献中的展示例子:

Genotype (基因型) 来自遗传变异分析
https://doi.org/10.1007/s11033-020-05449-9

相关方法:

https://doi.org/10.1007/s11033-020-05449-9

扫码、联系客服老师报名,领取资料、上手分析

参考描述:

The comparison of tree topology was performed using “cophyloplot” function available in the R package APE.

另1个面对面树图 (粉丝后台共享)

ST注释来自MLST分析

把两个进化树按照相同的序列名称连了个线(不是桑基图),来说明cgMLST树的分辨率与coreSNP树的分辨率相差不多,聚的簇也一致,只是位置不同。绘图时需要在2个进化树上按照序列名称连线

示例数据

# 面对面树library(ape)# cophyloplot函数:绘制两个系统发育树的面对面(Face to face)图,并在顶端(Tips,即序列名)之间连线。用于比较、展示2个有所关联的系统发育树。# 如果指定了链接(Links,即2列Tips名称)方式,此函数将绘制两棵面对面的树。通过鼠标单击可围绕节点 (Nodes)旋转每棵树的分支 (Branches)。#two random treestree1 <- rtree(40)tree2 <- rtree(20)tree1# Phylogenetic tree with 40 tips and 39 internal nodes.# Tip labels:#   t14, t13, t18, t20, t3, t9, ...# Rooted; includes branch lengths.tree2# Phylogenetic tree with 20 tips and 19 internal nodes.# Tip labels:#   t15, t7, t6, t20, t8, t10, ...# Rooted; includes branch lengths.# 生成1个关联矩阵,来引导2棵树之间的连线:association <- cbind(tree2$tip.label, tree2$tip.label)association
cophyloplot(tree1, tree2, assoc = association, type="phylogram", use.edge.length=F, space = 50, length.line = 7, gap = 6, rotate=F, col="green", show.tip.label=T, font=4, lwd=1, lty=1)

变量tree1、tree2是2个ape包的”phylo“类对象 (即ape对树的存储变量)

其它选项:

assoc – 1个包含2列的R矩阵,用于指定2个树的顶端(Tips,即序列名)之间的关联。如果为’NULL’,则不绘制任何连线
type – 指定要绘制的系统发育树的类型:“phylogram”(谱系图,即矩形1分2,是默认选项) 或 “cladogram”(分枝图,即喇叭状1分2)
use.edge.length – 是否应用分枝长度;默认为FALSE (树的Tips/顶端会对齐)
space – 指定两棵树之间的距离
length.line – 指定与每个分类群(Taxa,即序列名)所关联/连接的水平线(S形折线的水平处)的长度,默认为1
gap – 指定系统发育树的顶端(Tips)与连接线(S形折线的斜线处)之间距离
rotate:节点(Nodes)是否可以通过鼠标的点击进行旋转。默认是FALSE
col – 连接线的颜色;必要时回收
lwd – 宽度的id
lty – 连接线类型的id
show.tip.label – 是否在树中显示顶端(即序列名)的标签(默认为“TRUE”,显示标签)
font – 标签字体类型,用整数表示:1(纯文本)、2(粗体)、3(默认为斜体)或4(粗体-斜体)
cophyloplot(tree1, tree2, assoc = association, type="cladogram", use.edge.length=T, space = 6, length.line = 1, gap = 2, rotate=F, col="orange", show.tip.label=F, font=4, lwd=2, lty=2)

(交互式) plot with rotations

## Not run:# cophyloplot(tree1, tree2, assoc=association, length.line=4, space=28, gap=3, rotate=TRUE)
小节

ape包的cophyloplot函数的目的是同时绘制2个具有相关分类群(Associated taxa)的系统发育树。这2棵树的尖端/Tips(即序列名)数量不一定相同,一个系统发育中的1个以上的尖端/Tips可与另一个尖端相关联。

用于绘制链接的关联矩阵必须是包含尖端/Tips名称的两列矩阵。矩阵中的1行表示绘图上的1个连接线。矩阵的第1列必须包含第1棵树(phy1)的顶端/Tip标签,矩阵的第2列必须包含第2棵树(phy2)的顶端/Tip标签。矩阵中的行数没有限制。一个有2列、1行的矩阵,将给出只有1个连接线的图。

必须改变gap、length.line和space参数,才能得到这2个系统发育的好看的图。该函数会考虑与尖端/Tips处的名称相对应的字符串的长度,尽量使连接线就不会覆盖这些名称。

rotate参数可用于转换2个系统发育树,以获得更可读的图(一般通过减少交叉线的数量)。这可以通过单击节点来完成。按下退出按钮(ESC)或右键返回R的控制台。

扫码、联系客服老师报名,领取资料、上手分析

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » R包神器 | 系统发育和进化分析 – ape (二) Face to Face 树

猜你喜欢

  • 暂无文章