BEAST (Bayesian Evolutionary Analysis by Sampling Trees) 是一款功能强大的跨平台软件,用于使用马尔可夫链蒙特卡洛 (MCMC) 方法进行分子序列的贝叶斯进化分析。它特别适用于系统发育树估计、物种分化时间估算、种群动态历史推断等进化生物学核心研究领域。本文档将详细介绍其在 macOS 系统下的核心界面、完整工作流程及操作技巧。
一、 核心界面与工作区详解
BEAST 的运行主要依赖于两个核心图形界面程序:BEAUti(用于设置分析参数,生成输入文件)和 FigTree(用于可视化分析结果)。主分析引擎 BEAST 本身通常通过命令行运行,但其参数配置完全在 BEAUti 中完成。
1.1 BEAUti 主界面
BEAUti 是创建 BEAST 分析 XML 配置文件的工具。其界面由一系列标签页构成:
- Partitions(分区): 加载和管理序列数据(如FASTA格式),定义不同的数据分区和替换模型。
- Site Models(位点模型): 为每个分区指定核苷酸或氨基酸替换模型(如HKY, GTR)、Gamma速率异质性、位点间变异等参数。
- Clock Models(时钟模型): 选择分子钟类型。最常用的是“Strict Clock”(严格时钟)和“Relaxed Clock Log Normal”(松弛时钟对数正态),后者允许进化速率在分支间变化。
- Trees(树模型): 指定树先验。例如,“Coalescent Constant Population”(恒定种群大小的联合树先验)用于种群数据,“Yule Process”(尤尔过程)用于物种水平数据,“Birth-Death Process”(生灭过程)也是常用选项。
- Priors(先验分布): 为所有模型参数(如进化速率、种群大小、分化时间)设置先验概率分布。这是贝叶斯分析的关键步骤。
- MCMC(马尔可夫链蒙特卡洛): 设置运行参数。包括链长(chain length)、采样频率(log every)、屏幕输出频率等。最终输出文件(.log, .trees)也在此定义。
- Tips(小贴士): 显示当前所选参数的简要说明。
1.2 日志与结果查看
BEAST 运行后主要生成两类文件:
- .log 文件: 包含所有数值参数(如似然值、分支长度、种群大小)在 MCMC 运行过程中的采样记录。可使用 Tracer 软件(BEAST 套件之一)打开,用于评估收敛性、有效样本大小(ESS)并汇总参数估计值。
- .trees 文件: 包含所有采样到的系统发育树。可使用 TreeAnnotator(BEAST 套件之一)生成最大分支可信度树(Maximum Clade Credibility Tree),再使用 FigTree 进行美化和可视化。
二、 完整操作流程:从项目创建到结果导出
2.1 第一步:在 BEAUti 中准备分析文件
操作 1:导入序列数据
- 打开 BEAUti 应用程序。
- 转到 Partitions 标签页。
- 点击左下角的 “+” 按钮或使用快捷键
Cmd + O,选择你的序列文件(如 .fasta, .nexus)。 - 数据加载后,通常可以保持默认设置。如果数据有多个分区(如不同基因),可点击“Partition”下的“Ungroup”再重新“Group”来定义分区。
操作 2:设置位点模型
- 转到 Site Model 标签页。
- 为每个分区选择替换模型。点击“Substitution Model”下拉菜单,例如选择 HKY。
- 通常需要勾选 Gamma Category Count(如设为4)以建模速率异质性,并勾选“Heterogeneous”模型(如果适用)。
操作 3:设置时钟模型
- 转到 Clock Model 标签页。
- 根据分析目的选择时钟类型。对于有时间校准点的分析,常选择 Relaxed Clock Log Normal。
- 时钟速率(Clock Rate)的先验将在下一步的“Priors”中设置。
操作 4:设置树先验
- 转到 Trees 标签页。
- 在“Tree Prior”下拉菜单中选择合适的先验。例如,对于多物种数据,选择 Yule Model 或 Birth-Death Model。
操作 5:设置先验分布
- 转到 Priors 标签页。这里会列出所有需要设置先验的参数。
- 点击每个参数右侧的下拉菜单,选择合适的分布。例如:
- clockRate: 可设为
Gamma或Log Normal分布,或根据已知信息设置固定值。 - treeModel.rootHeight: 根节点高度,如果数据有时标,可设置一个合理的先验(如
Uniform分布)。 - 如果有化石或时间校准点,需要选中树上的对应节点,然后点击左下角“Add Prior”,选择
Calibrated Yule Model或MRCA Prior,并指定时间分布(如Normal,Log Normal)。
- clockRate: 可设为
操作 6:配置 MCMC 运行参数
- 转到 MCMC 标签页。
- 设置关键参数:
- Chain Length: MCMC 步数。通常需要数百万至数千万,取决于数据大小和模型复杂度。
- Store Every 和 Log Every: 采样频率。通常设为 Chain Length / 10000 左右,以确保获得约1万个有效样本。
- 在“File Name”处,为输出日志文件和树文件指定前缀。
- 点击 Generate XML 按钮或使用快捷键
Cmd + S,将配置文件保存为 .xml 文件。
2.2 第二步:运行 BEAST 分析
- 打开 终端(Terminal) 应用程序。
- 使用
cd命令导航到存放 .xml 配置文件的目录。例如:cd ~/Desktop/beast_analysis - 输入运行命令。基本格式为:
beast -threads 4 your_config.xml-threads 4表示使用4个CPU线程加速计算(根据你的Mac核心数调整)。
- 按回车键执行。分析开始后,终端会显示当前进度、每百万步所需时间及预估剩余时间。
提示:你可以将 .xml 文件直接拖拽到 BEAST 应用程序图标上,这会在一个带有图形进度条的新窗口中启动分析,比纯命令行更友好。
2.3 第三步:使用 Tracer 评估结果
- 打开 Tracer 应用程序。
- 点击左上角 “+” 按钮或使用
Cmd + O,导入 BEAST 运行生成的 .log 文件。 - 在左侧选择参数(如 `posterior`, `likelihood`, `clockRate`),右侧将显示其轨迹图(Trace)和边际后验分布(Marginal Density)。
- 检查关键指标:
- ESS (Effective Sample Size): 在底部面板查看。理想情况下,所有重要参数的 ESS 应大于200,表明采样充分。
- 轨迹图: 应看起来像“毛毛虫”,平稳无趋势,表明链已收敛。
2.4 第四步:生成并可视化最终系统发育树
操作 1:使用 TreeAnnotator 生成共识树
- 打开 TreeAnnotator 应用程序。
- 设置参数:
- Input Tree File: 选择 BEAST 输出的 .trees 文件。
- Output File: 指定输出树文件名称(如 .tre)。
- Burnin percentage: 设置燃烧期(如10-25%),以排除初始未收敛的样本。
- Posterior probability limit: 通常保持默认(0.5)。
- Target tree type: 选择 Maximum clade credibility tree。
- Node heights: 选择 Mean heights。
- 点击 Run 按钮。
操作 2:使用 FigTree 美化与注释树
- 打开 FigTree 应用程序。
- 使用
Cmd + O打开 TreeAnnotator 生成的 .tre 文件。 - 在左侧控制面板中,可以:
- 勾选 Node Labels 并选择显示 posterior 以显示节点后验概率。
- 在 Branch Labels 中可选择显示其他信息。
- 在 Appearance 中调整树形(矩形、弧形等)、颜色、字体大小。
- 在 Scale Axis 中显示时间尺或分支长度尺。
- 使用
Cmd + E将最终树导出为 PDF、SVG 或 PNG 格式图像。
三、 常用功能进阶技巧
- 多线程与高性能计算: 在终端运行 BEAST 时,使用 `-beagle` 和 `-threads` 参数充分利用 BEAGLE 库和多个CPU核心。例如:
beast -beagle -threads 8 your_config.xml可显著加速计算。 - 多链并行运行与合并: 对于复杂分析,可运行多条独立 MCMC 链(修改 `seed` 值),然后使用 LogCombiner(BEAST 套件工具)合并 .log 和 .trees 文件,以获得更好的混合效果和更高的 ESS 值。
- 路径采样与模型比较: BEAST 支持通过路径采样(Path Sampling)或步进抽样(Stepping Stone Sampling)计算边际似然,从而进行严格的模型选择(如比较严格时钟与松弛时钟)。这需要在 BEAUti 的 MCMC 标签页中勾选相应选项并设置路径点。
- 使用模板功能: 在 BEAUti 中完成一个复杂模型设置后,可通过 File -> Save Template 保存为模板。未来分析类似数据时,通过 File -> Load Template 加载,只需替换序列数据即可,极大提高效率。
四、 常见问题与解决方案
问题 1:BEAST 运行非常缓慢。
- 解决方案:
- 确保已安装并启用了 BEAGLE 库(BEAST 安装包通常已包含)。在终端运行命令时添加 `-beagle` 标志。
- 使用 `-threads` 参数指定更多CPU线程。
- 在 BEAUti 的 Site Model 中,尝试减少 Gamma 分类数(如从8减到4)。
- 检查模型是否过于复杂。可先运行一个简化模型(如严格时钟、简单树先验)测试。
问题 2:Tracer 中显示参数 ESS 值过低(< 200)。
- 解决方案:
- 增加 MCMC 链长(Chain Length),运行更长时间。
- 调整先验分布,避免使用过于模糊或不合理的先验。
- 尝试对参数进行重新参数化(如对某些参数使用对数或logit变换)。
- 运行多条链,检查是否收敛到同一后验分布,然后合并。








