1. HyPhy的简介
HyPhy的介绍可以参考博客用HyPhy分析自然选择:(一)介绍HyPhy:https://yanzhongsino.github.io/2023/10/20/evolution_selection_HyPhy_intro
- HyPhy的全称是Hypothesis Testing using Phylogenies,是一款近些年受到广泛使用和关注的一款用于选择压力分析的软件。
- 相较经典的选择分析软件PAML的codeML,HyPhy操作更简单一点,并且支持多线程运行,并使用了更新的模型,模型数量也更多。
2. HyPhy的RELAX模型
RELAX
- HyPhy的RELAX模型是用来检测系统发育树上的指定分支是否经历了负选择的放松或加强的模型。
- RELAX检测选择压力与一组指定的 “前景(foreground)/测试 (TEST)”分支的放松(正选择和负选择都变弱)或加强(正选择和负选择都变强)。RELAX方法不适用于检测正选择。
RELAX原理
- RELAX对放松选择的检验原理是基于放松选择对小于 1 的 ω 值(代表纯化选择)和大于 1 的 ω 值(代表正向选择)的不同影响。 当放松选择时,小于 1 的 ω 值会向 1 增大,而大于 1 的 ω 值会向 1 减小; ω 值的分布会向 1 集中。相反,当选择压力增强时, ω 值的分布会更加分散。
- 在分支位点模型中(不同分支不同的位点有不同的 ω 值),放松选择的这种趋势可能有两种的影响: (1)推断出的选择类别的 ω 值可能趋向于 1,和/或 (2)属于不同类别的位点比例可能发生变化,从而使更多的位点被分配到 ω 值更接近于 1 的类别。这与PAML检测放松选择不同,PAML使用分支模型。
Figure 1. 强化选择和放松选择的模型效应。强化选择使所有类别的 ω 远离中性(ω = 1),而放松选择使所有类别的 ω 向中性(ω = 1)靠拢。净化选择下的位点用蓝色表示,正选择下的位点用红色表示。 图源:RELAX paper
- RELAX需要一组指定的 “前景/测试”分支与第二组 “背景/参考”分支进行比较。RELAX首先对整个系统发育过程拟合一个具有三类 ω 的密码子模型(空模型)。然后,RELAX通过引入作为选择强度参数的参数 k(其中k ≥ 0)作为推断 ω 值的指数:ωk来测试放松/强化选择。具体来说,RELAX固定推断的ω值(都是ωk <1,2,3>),并对测试分支推断出一个将比率调整为ωk<1,2,3>的k值(替代模型)。然后,RELAX进行似然比检验(LRT),比较替代模型和空模型来检测结果的显著性。
3. HyPhy的RELAX模型检测选择放松或加强
3.1. 安装HyPhy
conda install -c bioconda hyphy
3.2. 输入文件
- samples.aln:fasta或phylip格式的序列比对文件
- tree.nw:newick格式的树文件
- RELAX模块的分析需要指定前景支(foreground)/测试支(TEST),其余支是参考支(reference,默认,无需标记)。
- 标记方法:前景支(类比codeml的branch model的前景支)的分支名和支长(如果存在)之间标注{FG};如果要标记某一支及其包含的所有支,则需要标注多个{FG}。
- 可以用 HyPhy官网的phylotree在线工具(http://phylotree.hyphy.org/)对系统树进行标注。
- A支做前景支的标记实例:
((((A{FG}:0.14,B:0.15):0.23,C:0.69):0.47,D:0.26):0.11,E:0.20);
。 - A+B+C所在的所有支做前景支的标记实例:
((((A{FG}:0.14,B{FG}:0.15){FG}:0.23,C{FG}:0.69){FG}:0.47,D:0.26):0.11,E:0.20);
3.3. 运行
nohup HYPHYMPI relax --alignment aln.fas --tree tree.nw --test FG --output relax.json > relax.log 2>&1 &
3.4. 参数
- –alignment:比对好的codon文件,可以是fas格式,也可以是phylip格式。
- –tree:newick格式的树文件,如有test支标记在树文件里(标记方法见输入文件)
- –test:RELAX模块指定树文件中标记的分支为测试支
- –output:指定输出json文件名称,默认是输入比对文件加json后缀,aln.fas.json
- –rates 3: ω 值(dN/dS)的类别,可设置2-10类 ω 值,默认是3类。数字越大,运行越耗时。
- 屏幕输出的是markdown格式,建议保存为relax.log文件。
3.5. 结果文件
- relax.json:json格式,可以在网站http://vision.hyphy.org/RELAX 上传这个结果文件进行可视化,直观展示。结果中site的数量代表的是密码子的数量,是碱基数量的1/3。
- relax.log:屏幕输出的markdown格式,直接查看方便。
3.6. 结果展示
- 结果解释
- 主要看K值和LRT检验的P值。
- K>1表示选择强度加强(intensification),K<1表示选择放松(relaxation)。
- P值小于0.001表示结果显著(significant),否则不显著。
- 结果可视化可以在网站 http://vision.hyphy.org/ 上上传json格式文件,然后交互式的展示结果。
- 结果中会根据K值显示放松或加强,并根据p值标注是否显著。
- json格式的结果具体的介绍可以参考https://www.hyphy.org/resources/json-fields.pdf。
- 也可以在relax.log文件中搜索K值:Relaxation/intensification parameter (K) = 1.05和LRT检验的P值:Likelihood ratio test p = 0.4564。
ps:有些物种,不能简单的根据ω值或K值判断选择的放松或加强,有时ω值或K值的结果不一致,还要进一步看dN和dS来判断。
4. reference
- HyPhy官网:https://www.hyphy.org/
- HyPhy的github:https://github.com/veg/hyphy-analyses/tree/master
- 介绍HyPhy的博客:https://www.jianshu.com/p/2e8f7f7d545a
- 欢迎关注微信公众号:生信技工
- 公众号主要分享生信分析、生信软件、基因组学、转录组学、植物进化、生物学概念等相关内容,包括生物信息学工具的基本原理、操作步骤和学习心得。