使用SNPhylo构建群体系统发生树

SNPhylo是一个基于SNP数据构建群体系统发生树的流程工具,它能接受VCF,HapMap和简单SNP数据格式作为输入,经过一系列的过滤(低质量数据、连锁不平衡)得到用于构建系统发生树的输入数据,最后会自动调用DNAML构建ML树,得到最终的结果。当然你可以把它当作一个过滤工具,用它生成Phylip输入文件。
使用SNPhylo构建群体系统发生树
文章图片
SNPhylo pipeline 【使用SNPhylo构建群体系统发生树】安装依赖环境:

  • R(getopt, phangorn, gdsfmt,SNPRelate): 实现LD过滤
  • Python 2.7: 数据转换和过滤由python编写
  • MUSCLE: 实现序列联配,可选步骤
  • PHYLIP: 构建ML树
将这些软件放在环境变量中,或者你需要记住这些软件的安装位置。
接着从GitHub上下载该软件,最新版是20180901,支持多核CPU但是不支持压缩的VCF文件。
git clone https://github.com/thlee/SNPhylo.git

最后运行setup.sh进行配置
cd SNPhylo bash setup.sh # 配置信息 # Version: 20180901 #START TO SET UP FOR SNPHYLO!!! #The detected path of R is /usr/local/bin/R. Is it correct? [Y/n] y #The detected path of python is /opt/sysoft/Python-2.7.15/bin/python. Is it correct? [Y/n] y #The detected path of muscle is /opt/biosoft/muscle/muscle. Is it correct? [Y/n] y #The detected path of dnaml is /opt/biosoft/phylip-3.697/dnaml. Is it correct? [Y/n] y #SNPHYLO is successfully installed!!!

流程的入口是snphylo.sh,使用起来非常方便,以测试数据集为例进行介绍
curl -O http://chibba.pgml.uga.edu/snphylo/soybean.hapmap.gz gunzip soybean.hapmap.gz snphylo.sh -H soybean.hapmap

最终会生成一系列以snphylo.output作为前缀的文件,其中snphylo.output.phylip.txt可以作为其他建树软件的输入文件。
除了默认参数外,主要需要考虑的是过滤参数的设置, 然后我发现代码里面有一个参数比较奇怪,-p参数对应了Maximum_PLCSMaximum_PNSS
  • -c: 最低覆盖深度(5)
  • -l: LD阈值(0.1)
  • -m: 次等位基因频率阈值(MAF,0.1)
  • -M: 缺失率(0.1)
  • -a: 最后一个常染色体的编号。这意味着你的染色体编号必须是纯数字
学习这个软件并不意味着我们一定要用,我们可以借鉴流程的思路,使用其他软件实现相同的处理。

    推荐阅读