1.简介
HyDe使用系统发育不变量检测系统发育数据集中的杂交,主要通过python包Phyde对三元组分类群进行假设检验,以检测杂交。
2.安装
2.1 配置环境
#使用conda安装软件依赖
conda install cython numpy multiprocess
#方法1安装:进入python环境,使用pip安装
pip install phyde
#方法2安装:从github安装
git clone https://github.com/pblischak/HyDe.git
cd Hyde
python3 -m pip install .
make test #可以不用,只是用来检测是否安装成功的
make test_threads #可以不用,只是用来检测是否安装成功的
3.输入文件
3.1 DNA序列
典型的phylip格式,第一行表示该文件有16个样本,位点数目为10,后续每行包含一个样本及其序列,用tab分隔。每个样本的名字长度没有限制且可以不相等。
16 10
i1 ATAGTCACCA
i2 ATAGTCACCA
i3 ATAGTCACCA
i4 ATAGTCACCA
i5 ATAGTCATCA
i6 ATAGTCACCA
i7 ATAGTCACCA
i8 ATAGTCACCA
i9 ATTGTCACCA
i10 ATAGTCACCA
i11 ATAGTCACCA
i12 ATCGTCACCA
i13 ATAGTCACCA
i14 ATCGTCACCA
i15 ATCGTCACCA
i16 ATAGTCTCCA
3.2 样本对应关系
每行包含一个样本和标签,用tab分隔,并且样本的名字顺序必须和DNA序列文件中的样本顺序一致。
i1 sp1
i2 sp1
i3 sp1
i4 sp1
i5 sp1
i6 sp2
i7 sp2
i8 sp2
i9 sp2
i10 sp2
i11 sp3
i12 sp3
i13 sp3
i14 sp3
i15 sp3
i16 out
3.3 三元组文件(可选)
可选输入文件,输入感兴趣的三元组文件,第一列为亲本1,第二列为假定的杂交物种,第三列为亲本2
sp1 sp2 sp3
sp1 sp3 sp2
sp2 sp1 sp3
4. 输出文件
4.1 第一步
#-i就是DNA序列文件,-m就是样本对应关系,-o输出前缀,-n样本数量,-t分组数量,-s位点数量,-j线程数量
#-tr:如果有想测试的三元组,按照三元组文件格式输入即可;如果没有,软件默认是输入数据的所有三元组
#--prefix:输出前缀也可以修改,默认是hyde
#-p:默认过滤的P值为0.05
#--ignore_amb_sites:是否忽略gap/不确定的碱基位点
python /path/run_hyde_mp.py -i input.phy -m map.txt -o out -n 16 -t 4 -s 50000 -j 10
输出文件有两个,一个是所有三元组的文件<prefix>-out.txt,一个是过滤后的三元组文件<prefix>-out-filtered.txt,第一列为亲本1,第二列为杂交种,第三列为亲本2,第四列为Zscore,第五列为P值,第六列为Gamma值,解释为杂交种来源于P2的比例(不要怀疑,你没看错,就是P2),后续的列为每个位点的数目。
4.2 第二步(可选步骤)
#运行完第一步后,如果想看一个群体种多个个体之间的或者不同群体多个个体之间的杂交信息,可以将想测试的三元组按照三元组文件格式输入即可
python /path/individual_hyde_mp.py -i input.phy -m map.txt -o out -n 16 -t 4 -s 50000 -tr triples.txt -j 10
如果你每个群体只有一个个体,那么就不用做第二步了。
4.3 第三步(可选步骤)
#-r: bootstrap的重复次数,默认是100
python /path/bootstrap_hyde_mp.py -i input.phy -m map.txt -o out -n 16 -t 4 -s 50000 -tr triples.txt -j 10 -r 200
官方推荐:如果DNA序列的位点数目≥10000,就运行第二步;如果DNA序列的位点数目<10000,就运行第三步;
5. 原理讲解
5.1 系统发育不变量
系统发育不变量是指在许多常见的生物序列沿着进化树进化模型中,现存分类群中碱基模式的频率满足系统发育不变量的多项式关系。
对于一个有根的四元组(亲本1、亲本2、杂交种、外群)有以下拓朴结构:(((P1,Hyb),P2),O),我们描述该四元组可能位点模式的概率分布为:P(ijkl) = P(O = i, P1 = j, Hyb = k, P2 = l), with i, j, k, l ∈ {A, G, C, T}。当位点数目足够多时,已经通过模拟和经验分析表明,多位点数据为模型提供了良好的近似,并且可以用于计算位点模式概率。有研究表明f1 = piijj − pijij和f2 = pijji − pijij的比值拟合模型更好,这也是Hyde检测的基础逻辑。

5.2 Gamma值
根据上面的公式可以看出Gamma值理论是在负无穷大到正无穷大的,但是基于生物学假设来说杂交种来源于亲本的概率为[0,1],因此第一步的脚本run_hyde_mp.py生成的两个文件<prefix>-out.txt是所有三元组的结果,而<prefix>-out-filtered.txt是Gamma值[0,1]之间的三元组结果。