美文网首页
重测序分析(9)群体进化分析之构建进化树

重测序分析(9)群体进化分析之构建进化树

作者: Bioinfor生信云 | 来源:发表于2022-10-09 11:06 被阅读0次

    1.进化树的概念

    系统发育或系统发育树,是物种间、基因间、群体间乃至个体间谱系关系的一种表现形式。
    Node:分支的连接点或者分枝的尖端都称为节点。内部节点连接分枝,外部节点代表分类单元。
    Clade:一个祖先节点及其所有后代节点的组合称为一个分枝。
    Branch Length:分枝长度,大多数情况下是分歧度,代表突变的累积。


    根据是否指定了根节点,系统发育树可以分为有根树和无根树
    无根树没有指定祖先节点,只能看出各个节点的拓扑结构和相对距离
    有根数指定了根节点,反映了树上物种或基因的时间顺序,一般采用外群定根法,建树时引入亲缘关系较远的物种作为外群来定根
    无根树
    有根树

    2.常用的建树方法

    基于距离:
    邻接法NJ(邻接连接将距离矩阵作为输入,指定每对分类群之间的距离。该算法以完全未解析的树开始,其拓扑对应于星型网络的拓扑,并迭代地将相邻点合并成新的点(相邻是指两个分类单位在某一无根分叉树中仅通过一个节点相连),直到树完全解析并且所有分支长度都已知。)
    基于特征/性状:
    最大简约法MP(计算所有可能的拓扑结构;计算出所需替代数最小的那个拓扑结构,作为最优树。)

    最大似然法ML(选取一个特定的替代模型来分析给定的一组序列数据,使得获得的每一个拓扑结构的似然率都为最大值,然后再挑出其中似然率最大的拓扑结构作为最优树)

    贝叶斯推算(用于枝长和后验概率联合计算)

    3.软件和数据准备

    软件:plink、phylip、tassel(用于格式转换)
    数据:all.vcf、�all.LDfilter.vcf

    4.构建进化树

    进化树反映群体间个体的谱系关系,由于群体SNP位点一般较多,大多数项目中采用邻接法构树,也有部分项目使用最大似然法。

    4.1SNP数据过滤

    这一步过滤是为了保留高质量和多态性比较高的位点做后续的分析

    #过滤missing和次等位基因频率 
    plink --vcf  all.vcf  \
    --geno 0.1  \#设置缺失率阈值
    --maf 0.01  \#设置maf阈值
    --out all.missing_maf  \#输出文件前缀
    --recode vcf-iid   \#输出文件格式
    --allow-extra-chr  \#允许其他格式序列名称
    --set-missing-var-ids @:#  \#设置snp id名称
    --keep-allele-order
    
    #生成需要保留的位点文件
    plink --vcf  all.missing_maf.vcf  \
    --indep-pairwise 50 10 0.2  \ #LD过滤阈值
    --out tmp.ld   \
    --allow-extra-chr  \
    --set-missing-var-ids @:#
    
    #过滤 LD
    plink --vcf  all.missing_maf.vcf  
    --make-bed   \
    --extract tmp.ld.prune.in   \
    --out all.LDfilter  \
    --recode vcf-iid  \
    --keep-allele-order  \
    --allow-extra-chr  \
    --set-missing-var-ids @:#
    

    最终文件:all.LDfilter.vcf

    4.2使用 phylip软件 NJ 法构树

    #将vcf转为phylip格式文件
    run_pipeline.pl -Xms1G -Xmx5G  \
    -importGuess  ./all.LDfilter.vcf  \
    -ExportPlugin \
    -saveAs sequences.phy \
    -format Phylip_Inter
    
    #生成dnadist需要的配置文件
    echo -e "sequences.phy\nY" > dnadist.cfg
    
    #运行dnadist生成距离矩阵文件
    dnadist < dnadist.cfg  >dnadist.log
    
    #生成neighbor程序需要的配置文件
    mv outfile infile.dist
    echo -e "infile.dist\nY"  > neighbor.cfg
    
    #构建nj树
    neighbor  <  neighbor.cfg  >nj.log
    
    #整理结果格式
    less infile.dist | tr '\n' '|'| sed 's/| / /g' | tr '|' '\n' >infile.dist.table
    less outtree | tr '\n' ' '|sed 's/ //g' > outtree.nwk
    

    结果文件:outtree.nwk

    构建好的进化树以文本格式存储,可以使用各种进化树美化软件进行美化,如figtree、mega、ITOL、Evolview等等。


    相关文章

      网友评论

          本文标题:重测序分析(9)群体进化分析之构建进化树

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