群体结构分析:用 phylip 构建进化树

用 phylip 构N-J树

在 linux 系统,可以用 conda 安装 phylip 软件

1. 将 SNP 文件转换为 phylip 格式

用 tassel 的格式转换功能将 plink 格式转为 phylip 格式。
另外有一个脚本可以将 vcf 格式转换为 phylip ,vcf2phylip.py

run_pipeline.pl -Xmx50G -plink -ped snp.ped -map snp.map -export snp.phy -exportType Phylip_Inter

2. 构建进化树

构建进化树需要先将序列比对好,因为 SNP 文件都是根据参考基因组比对过的,所以不用再次比对。
phylip 在命令行中可以根据提示输入参数,也可以用含有参数的文本导入参数。
phylip 构树需要用到四个程序,按顺序运行:

1. seqboot:重抽样,生成随机样本。参数文本:seqboot.bar
$ cat seqboot.par 
snp.phy
R #选择bootstrap
1000 #设置bootstrap的值,即重复的replicate的数目,通常使用1000或者100,注意此处设定好后,后续两步的M值也为1000或者100
Y #yes确认以上设定的参数
9 #设定随机参数,输入奇数值。

$ seqboot < seqboot.bar
$ mv outfile seqboot.out

注意:参数文本的第一行为输入文件,且后面不能跟注释

2. dnadist:计算距离矩阵,最耗时,几千个SNP可能需要1天甚至数天。 参数文本dnadist.par
$ cat dnadist.par 
seqboot.out
T #选择设定Transition/transversion的比值
2 #比值大小
M #修改M值
D #修改M值
1000 #设定M值大小
2 #将软件运行情况显示出来
Y #确认以上设定的参数

$ dnadist < dnadist.par
$ mv outfile dnadist.out
3. neighbor: Neighbor-Joining 建树。参数文本:neighbor.par
$ cat neighbor.par 
dnadist.out
M
1000 #设定M值大小
9 #设定随机数,输入奇数值
Y #确认以上设定的参数

$ neighbor < neighbor.par
$ mv outfile neighbor.out
$ mv outtree neighbor.tree
4. consense:将多重树汇总成一个。参数文本:consense.par
$ cat consense.par 
neighbor.tree
#确认以上设定的参数
Y

$ consense < consense.par
$ mv outfile consense.out
$ mv outtree consense.tree

可视化

可以用iTOL(收费了)、EvolView(经常登不上)、ggtree(美观易用,推荐)、Figtree等。

参考:https://blog.csdn.net/g_r_c/article/details/8869494

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值