使用SNPhylo构建群体系统发生树
SNPhylo是一个基于SNP数据构建群体系统发生树的流程工具,它能接受VCF,HapMap和简单SNP数据格式作为输入,经过一系列的过滤(低质量数据、连锁不平衡)得到用于构建系统发生树的输入数据,最后会自动调用DNAML构建ML树,得到最终的结果。当然你可以把它当作一个过滤工具,用它生成Phylip输入文件。
文章图片
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_PLCS
和Maximum_PNSS
- -c: 最低覆盖深度(5)
- -l: LD阈值(0.1)
- -m: 次等位基因频率阈值(MAF,0.1)
- -M: 缺失率(0.1)
- -a: 最后一个常染色体的编号。这意味着你的染色体编号必须是纯数字
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小