进化速率和选择模式(贝叶斯先生)

2022-11-03

这个小插曲解释了如何提取进化速率参数根据放松时钟估计贝叶斯推理分析贝叶斯先生。它还显示如何使用基于进化速率的选择模式推理(强度)适应基于时钟的速率,如西蒙斯和皮尔斯(2021).看妹妹的小插曲等价物的“进化速率和选择模式(BEAST2)”使用由生成的输出数据的工作流野兽2

加载EvoPhylo公司包裹

图书馆(EvoPhylo)

进化速率统计和绘图

在本节中,我们将从贝叶斯时钟(时间校准)摘要树中的每个节点。这个下面的函数将它们存储在数据框中,生成摘要统计表,并创建显示速率的不同绘图分布在形态分区和分支上。

 

1.从时钟树中获取费率并创建费率表

首先,使用导入贝叶斯时钟树树(treeio)功能读取.mrbayes()(=读取.beast()).

##导入包含三个时钟分区的摘要树
##本地目录中的Mr.Bayes(.t或.tre文件)

树3p<-树(treeio)::读.mrbays(“树3p.t”)

下面,我们使用Mr.Bayes单多锁树和3形态分区树3p西蒙斯和皮尔斯(2021)随之而来的EvoPhylo公司.

数据(树3p)

随后,使用获取锁定率表MrBayes(),个用户可以提取摘要树中每个节点的平均或中间速率值由注释的贝叶斯先生创建时带有的摘要树贝叶斯先生“sumt”命令。这些平均值或中间值的计算公式为贝叶斯先生纳入计算后面样本中的所有树木。这适用于任何摘要树木生产商贝叶斯先生:多数规则一致性或完全解析的最大相容树(后者在这里的示例中使用)。

请注意,分析必须已达到平稳阶段以及针对每个节点中的摘要统计信息聚合的独立运行对后面的样本进行有意义的总结。

##获取中每个节点的时钟频率表及其摘要统计信息
##每个松弛时钟分区的树(此树文件中有3个分区)
费率表平均值3p<- 获取锁定率表_MrBayes(树3p,摘要= “意思是”)

 

2.导出包含节点值的费率表和绘图树

一旦从以下位置获得费率表贝叶斯先生它是导出它所必需的。这是随后打开的必要步骤本地费率表电子表格(例如,使用Microsoft Office Excel)并使用与每个节点关联的分支名称自定义表在树中进行下游分析。注意,根节点可能包括费率值为“NA”,因此必须从费率表中删除。

##导出费率表(使用带有3个分区的Mr.Bayes示例)
写入.csv(费率表意味着3p,文件= “RateTable_Means_3p.csv”)

打印树节点标签以自定义分支名称

要可视化树中的节点值,可以使用ggtree().

##打印树节点标签
图书馆(ggtree)
树节点<- ggtree(ggtree)(树3p,分支长度= “无”,尺寸= 0.05)+
  地理实验室(尺寸= 2,线条大小= 0.01,颜色= “黑色”,偏移= 0.5)+
  地理标签(原子发射光谱(标签=节点),尺寸= 2,颜色=“紫色”)
树节点

##将绘图以PDF格式保存到工作目录
ggplot2::ggsave公司(“Tree_nodes.pdf”,宽度= 10,高度= 10)

 

3.具有自定义组成员身份的导入率表

费率表中添加了一个新的“分类”列

##具有分支成员身份的导入费率表(新增“分支”列)
##从本地目录
费率表_Means_3p_Clades<- 读取.csv(“RateTable_Means_3p_Clades.csv”,收割台= 真的)

下面,我们使用带有分支成员的费率表费率表_平均值_3p_覆层随之而来的EvoPhylo公司.

数据(比率表平均值_3p_覆层)

(比率表平均值_3p_覆层)
##分支节点速率1速率2速率3
##1迪普诺莫帕1 0.943696 0.981486 1.006164
##2迪普诺莫2 1.065326 0.772074 0.913194
##3迪普诺莫帕3 1.182460 0.656872 0.813618
##迪普诺莫帕4 1.229767 0.523709 0.722519
##5迪普诺莫帕5 1.230564 0.517773 0.720479
##6其他6 0.658855 0.717277 0.663950

 

4.获取每个分支/时钟分区的汇总统计信息

按时钟获取每个分支的汇总统计表和图表分区使用时钟速率摘要()。提供文件路径文件将输出保存到该文件。

##按时钟获取每个分支的汇总统计表
时钟频率摘要(比率表意味着3p_覆层,
                  文件= “总和比率表意味着3p.csv”)
费率表汇总统计
分支 时钟 n个 意思是 标准偏差 最小值 第一季度 中值的 第3季度 最大值
肺鱼类 1 8 1.10 0.11 0.94 1.02 1.10 1.19 1.23
猫科动物 1 14 1.61 0.22 1.13 1.45 1.68 1.80 1.81
骨鳞科 1 11 0.63 0.26 0.16 0.44 0.81 0.84 0.87
根齿类 1 14 0.57 0.30 0.03 0.33 0.67 0.83 0.89
三叶虫科 1 21 0.71 0.04 0.61 0.69 0.72 0.74 0.78
其他 1 11 0.89 0.36 0.54 0.69 0.78 0.94 1.81
肺鱼类 2 8 0.75 0.18 0.52 0.62 0.75 0.89 0.98
Elpiostegalia(Elpiostegalia) 2 14 1.36 0.10 1.03 1.36 1.38 1.41 1.42
骨鳞科 2 11 0.34 0.15 0.07 0.28 0.38 0.45 0.53
根齿类 2 14 0.33 0.18 0.02 0.17 0.38 0.44 0.56
三叶虫科 2 21 0.34 0.06 0.27 0.32 0.33 0.33 0.55
其他 2 11 0.75 0.25 0.39 0.61 0.72 0.78 1.35
肺鱼类 8 0.87 0.11 0.72 0.79 0.89 0.95 1.01
猫科动物 14 0.83 0.16 0.63 0.67 0.89 0.99 1
骨鳞科 11 0.32 0.13 0.07 0.27 0.33 0.42 0.49
根齿类 14 0.32 0.17 0.02 0.21 0.40 0.43 0.52
三叶虫科 21 0.52 0.08 0.37 0.44 0.54 0.59 0.64
其他 11 0.73 0.17 0.47 0.64 0.70 0.81 1

 

5.按时钟分区和分支划分的绘图速率

按时钟分区和分支绘制速率分布时钟速率_dens_plot().

##重叠图
时钟频率偏差(比率表意味着3p_覆层,堆栈= 错误的,
                    nrow公司= 1,天平= “固定”)

有时使用堆叠图可以提供更好的可视化效果避免重叠分布。

##堆积图
时钟频率偏差(比率表意味着3p_覆层,堆栈= 真的,
                    nrow公司= 1,天平= “固定”)

也可以使用ggplot2功能,例如用于更改色阶。下面,我们更改色阶为Viridis色阶。

##带绿色色标的堆叠图
时钟速率(比率表意味着3p_覆层,堆栈= 真的,
                    nrow公司= 1,天平= “固定”)+
ggplot2::鳞片颜色绿色()+
ggplot2::缩放填充绿色()

 

6.速率线性模型

我们还可以绘制两个或两个利率之间的线性模型回归更多时钟时钟速率_reg_plot().

##绘制两个时钟的速率回归曲线
第12页<- 时钟速率_reg_plot(比率表意味着3p_覆层,时钟_x= 1,时钟(_y)= 2)
第13页<- 时钟速率_reg_plot(RateTable_Means_3p_Clades,时钟_x= 1,时钟(_y)= )
第23页<- 时钟速率_reg_plot(比率表意味着3p_覆层,时钟_x= 2,时钟(_y)= )

图书馆(拼凑)#用于合并绘图
第12页+第13页+第23页+ 绘图_布局(ncol公司= 2)

##将绘图以PDF格式保存到工作目录
ggplot2::ggsave公司(“Plot_regs.pdf”,宽度= 8,高度= 8)

 
 

附录:使用单时钟分析速率的示例(无分区)

您还可以探索摘要树的时钟频率,包括单个所有字符分区(或未分区)之间共享的时钟分析):

##导入由生成的具有单个时钟分区的摘要树
##示例目录中的Mr.Bayes(.t或.tre文件)
树1p<-树(treeio)::读.mrbays(“Tree1p.t”)

下面,我们使用示例树树1p随之而来的EvoPhylo公司.

数据(树1p)

然后,获取中每个节点的时钟频率表及其摘要统计信息每个松弛时钟分区的树。

费率表平均值_1p<- 获取锁定率表MrBayes(树1p,摘要= “意思是”)

然后继续进行分析,如多重时钟。

##导出费率表
写入.csv(费率表意味着1p,文件= “RateTable_Means1.csv”)

##添加分支成员后的导入速率表(添加了新的“分支”列)
费率表_平均值_1p_覆层<- 读取.csv(“RateTable_Means1_Blades.csv”,收割台= 真的)
#下面,我们使用带有“EvoPhylo”附带的“RateTable_Means_1p_Clades”组成员身份的费率表。
数据(比率表平均值_1p_覆层)
##按时钟获取每个分支的汇总统计表
时钟频率摘要(RateTable_Means_1p_覆层,
                  文件= “总和比率表中介1.csv”)
费率表汇总统计
分支 n个 意思是 标准偏差 最小值 第一季度 中值的 第3季度 最大值
肺鱼类 8 0.57 0.28 0.22 0.37 0.54 0.78 0.95
Elpiostegalia(Elpiostegalia) 14 0.91 0.25 0.44 0.77 0.85 1.03 1.35
骨鳞科 11 0.23 0.10 0.03 0.18 0.23 0.30 0.38
根齿类 14 0.18 0.15 0 0.04 0.20 0.29 0.42
三叶虫科 21 0.39 0.43 0.05 0.11 0.19 0.34 1.32
其他 11 0.41 0.26 0.20 0.25 0.28 0.45 1
##带绿色色标的堆叠图
时钟频率偏差(RateTable_Means_1p_覆层,堆栈= 真的,
                    nrow公司= 1,天平= “固定”)+
ggplot2::鳞片颜色绿色()+
ggplot2::缩放填充绿色()

 
 
 

选择模式

在本节中,我们将使用基于进化速率的推理选择模式,首先由引入贝克等人阿尔(2016)对于连续性状,后来通过西蒙斯和皮尔斯(2021).

 

1.从所有运行导入组合日志文件。

这是通过使用combine_log().第一个参数传递给combine_log()应该是指向包含要导入和合并的日志文件的文件夹。

##从所有运行中导入所有日志(.p)文件并合并它们,burn-in=25%
##并在每个日志文件中向下采样到2.5k棵树
后3p<- 组合日志(“日志文件3p”,燃烧= 0.25,下采样= 1000)

下面,我们使用后验数据集后3p那个伴随EvoPhylo公司.

数据(后3p)

##显示合并日志文件的前10行
(后3p,10)

 

###2. 检查背景费率分布,如果需要转型

输出包括显示之前数据分布的直方图并在数据转换后进行比较。

图书馆(ggplot2)
地下一层<- 打印回日期(类型= “贝叶斯先生”,后3p,时钟= 1,
                      反式= “日志10”,尺寸= 10,分位数= 1)
地下一层

地下二层<- plot_back_rates(打印回日期)(类型= “贝叶斯先生”,后3p,时钟= 2,
                      反式= “日志10”,尺寸= 10,分位数= 1)
地下二层

地下三层<- 打印回日期(类型= “贝叶斯先生”,后3p,时钟= ,
                      反式= “日志10”,尺寸= 10,分位数= 1)
地下三层

 

3.在摘要树上绘制选择渐变

使用不同的阈值,确定树中每个时钟分区的分支plot_treeates_sgn().

用户必须指明输出文件的类型(介于贝叶斯先生野兽2)以及他们是否愿意对数变换背景速率以满足正常情况下的假设分布式数据,基于从打印回日期。用户还应在“时钟”中指示他们想要绘制速率的时钟分区的数量,以及解释分支率所需的显著性阈值(我们建议背景平均值周围的标准偏差数费率)。最后,一系列参数允许用户自定义添加到树中的地质时间刻度。

##使用时钟分区1的各种阈值绘制树
A1类<- 绘图树sgn(
  类型= “贝叶斯先生”,反式= “无”,#指示软件名称输出和转换类型
树3p,后3p,#摘要树和后验文件
  时钟= 1,#显示时钟分区1的速率
  摘要= “意思是”,#设置要从摘要树节点获取的摘要统计信息
  分支_大小= 1.5,提示_大小= ,#设置树元素的大小
  xlim公司= c(c)(-450,-260),nbreaks公司= 8,地理大小(_S)= 列表(,),#设置地理比例的限制和打断
  阈值= c(c)(“1 SD”,“3 SD”))#设置选择模式的阈值
A1类

使用其他时钟分区的各种阈值绘制树将它们结合起来。

##使用其他时钟分区的各种阈值绘制树并将其组合
A2类<- 绘图树sgn(
  类型= “贝叶斯先生”,反式= “无”,#指示软件名称输出和转换类型
树3p,后3p,#摘要树和后期文件
  时钟= 2,#显示时钟分区1的费率
  摘要= “意思”,#设置要从摘要树节点获取的摘要统计信息
  分支_大小= 1.5,提示_大小= ,#设置树元素的大小
  xlim公司= c(c)(-450,-260),nbreaks公司= 8,地理大小(_S)= 列表(,),#设置地理比例的限制和打断
  阈值= c(c)(“1 SD”,“3标准差”))#设置选择模式的阈值

A3号<- 绘图树sgn(
  类型= “贝叶斯先生”,反式= “无”,#指示软件名称输出和转换类型
树3p,后3p,#摘要树和后期文件
  时钟= ,#显示时钟分区1的速率
  摘要= “意思是”,#设置要从摘要树节点获取的摘要统计信息
  分支_大小= 1.5,提示_大小= ,#设置树元素的大小
  xlim公司= c(c)(-450,-260),nbreaks公司= 8,地理大小(_S)= 列表(,),#设置地理比例的限制和打断
  阈值= c(c)(“1 SD”,“3 SD”))#设置选择模式的阈值

图书馆(拼凑)
A1类+A2类+A3号+ 绘图_布局(nrow公司= 1)

##将绘图保存为PDF格式的工作目录ggplot2::ggsave(“Tree_Sel_3p.pdf”,宽度=20,高度=8)

 

4.分支间比率值的成对t检验

功能获取pwt_rates_MrBayes()补充了的功能绘图树sgn通过生成一个表平均背景率差异的两两t检验每个汇总树分支的后验概率和绝对概率应为仅用于考虑CI=0.95的正态分布数据良好的门槛。然而,在许多情况下,使用多种标准使用输出的偏差绘图树sgn提供了对分支率是否存在显著差异进行更稳健的测试背景利率。

4.1. 具有分支成员资格的进口费率表(新的“分支”列added)从本地目录使用“mean”值

##具有分支成员身份的导入速率表
费率表_平均值_3p_覆层<- 读取.csv(“RateTable_Means_Clades.csv”,收割台= 真的)

下面,我们使用带有分支成员的费率表费率表_平均值_3p_覆层随之而来的EvoPhylo公司.

数据(比率表平均值_3p_覆层)

4.2. 获取并导出两两t检验表

##获取后验差的两两t检验表
##每个树节点的平均值和速率
评级信号测试<- 获取pwt_rates_MrBayes(RateTable_Means_3p_Clades,后3p)

##显示表格的前10行
(评级信号测试,10)
组合日志文件
分支 节点 时钟 相对日期平均值 绝对日期平均值 p值
肺鱼类 1 1 0.943696 0.0118443 0
肺鱼类 2 1 1.065326 0.0133709 0
肺鱼类 1 1.182460 0.0148411 0
肺鱼类 4 1 1.229767 0.0154348 0
肺鱼类 5 1 1.230564 0.0154448 0
其他 6 1 0.658855 0.0082693 0
其他 7 1 0.603090 0.0075694 0
骨鳞科 8 1 0.843373 0.0105852 0
骨鳞科 9 1 0.872012 0.0109446 0
骨鳞科 10 1 0.811473 0.0101848 0
##导出表格
写入.csv(评级信号测试,文件= “RateSign_Tests.csv”)

 

工具书类

贝克、乔安娜、安德鲁·米德、马克·佩格尔和克里斯·文迪蒂。2016“从系统发育推断的阳性表型选择。” 林奈学会生物学杂志118 (1): 95–115.
Simões、Tiago R.和Stephanie E.Pierce。2021“持续高位四足动物兴起期间的形态进化速率。” 自然生态与进化5 (10): 1403–14.https://doi.org/10.1038/s41559-021-01532-x网址.