SNP数据构建系统进化树

作者: 生信要进步 | 来源:发表于2018-03-11 03:45 被阅读1557次

    大概是长期的不锻炼使得今天的爬山运动过量了,接着悲剧就是无法入眠。也幸亏明天是周日,干脆就起床码字了。
    总结下自己前面用snp构建系统进化树的方法吧。

    1.构建进化树的算法

    构建系统进化树的方法主要有以下几类:

    基于距离矩阵的方法:NJ(邻接法)

    MP(最大简约法)

    ML(最大似然法)

    以及贝叶斯法。

    一般情况下,若有合适的模型,ML的效果较好;

    近缘序列的话,一般使用MP;

    远源序列,一般使用NJ或者ML。

    在分析变异过滤得到SNP时,一般都会用PHYLIP构建NJ进化树。

    PHYLIP软件官网http://evolution.genetics.washington.edu/phylip.html

    那么具体如何操作呢?

    软件安装

    软件安装较为简单

    wget http://evolution.gs.washington.edu/phylip/download/phylip-3.69.tar.gz ./ #下载软件
    tar zxvf phylip-3.69.tar.gz #解压
    cd phylip-3.69/src
    make install
    #以上几步即安装完软件,文件夹中的exe目录里为可执行程序
    

    2.输入文件的格式转换

    查看Phylip软件的说明,发现其输入文件的格式为下图,并不为vcf格式(http://evolution.genetics.washington.edu/phylip/doc/main.html#inputfiles),因此需要对其进行格式的转换。

    输入文件格式事例.png

    其中第一行为构建进化树的样品数以及每个样品使用的snp数目。

    第二行及以下为每个样品的名称及snp的具体内容。需要注意的是样品的名称必须为10个字母,如果未达到10个字母,可用tab键或者空格键代替。第11个字母后即为snp的内容,同时在这些序列中,一般每10个位点会有1个空格使其方便阅读。每个样品的用于构建snp的个数必须相同。

    根据以上的规定,可以写脚本将vcf格式转化为可用于phylip的phy格式。

    3.软件使用

    phylip中有许多程序,大部分的程序运行方法相同,把infile作为默认的输入文件,输出结果写在outfile中。因此,在进行下一步分析前,需要重命名想要保存的文件。

    seqboot: 生成随机样本,用bootstrap和jack-knife方法。需要设置选项M

    dnadist:DNA距离矩阵计算器。

    neighbor:NJ法的使用

    consense:用多重树构建一致树。

    每个程序都需要设定参数,因此还需要新建par文件。

    #cat seqboot.par
    all.merge.snp.phy #设定输入文件的名称,否则输入默认的名为infile的文件
    r #选择bootstrap
    1000 #设置bootstrap的值,即重复的replicate的数目,通常使用1000或者100,注意此处设定好后,后续两步的M值也为1000或者100
    y #yes确认以上设定的参数
    9 #设定随机参数,输入奇数值。
    
    #cat dnadist.par
    seqboot.out #本程序的输入文件
    t #选择设定Transition/transversion的比值
    2.3628 #比值大小
    m #修改M值
    d #修改M值
    1000 #设定M值大小
    2 #将软件运行情况显示出来
    y #确认以上设定的参数
    
    #cat neighbor.par
    dnadist.out #本程序的输入文件
    m 
    1000  #设定M值大小
    9 #设定随机数,输入奇数值
    y #确认以上设定的参数
    
    # cat consense.par
    nei.tree  #本程序的输入文件
    y #确认以上设定的参数
    

    再运行以下命令行即可

    seqboot<seqboot.par &&mv outfile seqboot.out &&dnadist<dnadist.par &&  mv outfile dnadist.out && neighbor<neighbor.par && mv  outfile nei.out && mv outtree nei.tree  && consense<consense.par && mv outfile cons.out && mv outtree constree
    

    最后将会得到constree文件,可将该文件gaiwei*.tre文件,双击后在treeview中直接查看进化树的内容。

    若要进行进一步的编辑,可使用iTOL在线的网站(http://itol.embl.de/)进行编辑,以下即为我得到的一个进化树。

    进化树.png

    相关文章

      网友评论

        本文标题:SNP数据构建系统进化树

        本文链接:https://www.haomeiwen.com/subject/qssifftx.html