美文网首页
2023-03-21 | Dsuite做D及f4-ratio统计

2023-03-21 | Dsuite做D及f4-ratio统计

作者: 千万别加香菜 | 来源:发表于2023-03-20 10:44 被阅读0次

    Dsuite原理:

    • D值(即ABBA统计量)和f4-ratio统计可以表示为适用于四个分类群的双等位基因SNP:P1,P2,P3,O,拓扑是 (((P1,P2),P3),O)。
    • 其中外类群O携带祖先等位基因A,衍生等位基因用B表示。BBAA,ABBA,BABA分别代表四个分类群携带等位的三种模式。
    • 在没有基因流的零假设下,由于具有相同频率的不完全谱系分类,预计P3与P1或P2共享衍生等位基因B的两种模式ABBA和BABA的频率相等,如果ABBA和BABA的频率有显著差异则代表在P3和P1或P2间存在基因渐渗。
    • D=(nABBA-nBABA)/(nABBA+nBABA);在外群对于祖先等位基因A是固定的(外群中B的频率为0)假设下,D统计量是等位基因模式计数的归一化差异。
    • 如果外群中衍生等位基因B不为0,则Dsuite的D值是Patterson’s D,适用于无根的四分类群树。
      基因流推断 —— Dsuite | 生信技工 (yanzhongsino.github.io)

    Dsuite的使用:
    /home/sll/software/Dsuite/Build/Dsuite

    寻找系统中高版本的libstdc++.so: find / -name "libstdc++.so*"
    激活环境:因为服务器的/lib64/libstdc++.so.6版本过老,所以这里使用我的conda下的版本

    export LD_LIBRARY_PATH=/home/sll/miniconda3/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib:$LD_LIBRARY_PATH
    

    准备两列的表格,第一列为样本ID,第二列为群体ID(需指定外群Outgroup,也就是树的根),想屏蔽的个体用第二列xxx表示,注意群体ID不要包含“. - 空格”等字符,可以有下划线_
    否则,Fbranch会报错

    1、Dsuite Dtrios模块:

    为所有可能的种群/物种三重组合计算D和f4-ratio统计量(ABBA-BABA)
    建议分染色体计算,然后使用DtriosCombine 模块将各染色体结果合并

    /home/sll/software/Dsuite/Build/Dsuite Dtrios sample-select.vcf d.txt -t sample.ML.tree.treeout -o sample
    
    -t 物种树文件,可用treemix生成,根为outgroup,且m设为0,不考虑基因流
    -o sample:指定输出文件前缀,默认是sets
    -p 5:如果样品中包含pool-seq数据,-p用于设置最小深度,设置后从等位基因深度估计群体的等位基因频率。
    

    D和f4-ratio结果包含在.Dmin.txt文件中

    DtriosCombine 模块对Dtrios结果合并:
    /home/sll/software/Dsuite/Build/Dsuite DtriosCombine -t sample.ML.tree.treeout -o sample_all DminFile1.txt DminFile2.txt DminFile3.txt
    
    -o, --out-prefix=OUT_FILE_PREFIX       输出文件前缀,默认为 "out"
    -n, --run-name                         看不懂
    -t , --tree=TREE_FILE.nwk              树文件
    -s , --subset=start,length             只进行指定长度部分的合并
    
    2、Dsuite Dinvestigate:

    用于对感兴趣渗入组合的基因组区域的D值的计算,看哪些区域发生了渗入

    /home/sll/software/Dsuite/Build/Dsuite Dinvestigate -w 50,25 INPUT_FILE.vcf.gz SETS.txt test_trios.txt
    
    Outputs D, f_d, f_dM, and d_f in genomic windows
     SETS.txt文件有两列 : SAMPLE_ID    POPULATION_ID
    test_trios.txt包含三个群体(除外群,外群在SETS.txt文件中已经指定)的名称:
    POP1   POP2    POP3
    There can be multiple lines and then the program generates multiple ouput files, named like POP1_POP2_POP3_localFstats_SIZE_STEP.txt
    
    -h, --help                              display this help and exit
    -w SIZE,STEP --window=SIZE,STEP         (required)设置移动的窗口及步长大小 (default: 50,25)
    -n, --run-name                          run-name will be included in the output file name
    
    3、Dsuite Fbranch:

    是一种启发式方法,执行f-branch计算,用于解释f4-ratio相关结果

    /home/sll/software/Dsuite/Build/Dsuite Fbranch sample.ML.tree.treeout sample_tree.txt > fbranch.out
    
    fbranch.out:f-branch统计量保存成矩阵格式
    

    用dtools.py脚本绘制f-branch图

    /home/sll/software/Dsuite/utils/dtools.py fbranch.out sample.ML.tree.treeout --outgroup Outgroup --use_distances --dpi 1200 --tree-label-size 30
    
    –outgroup:指定外类群(与fbranch.out和species.newick一致,一般是Outgroup)
    –use_distances:画树时使用newick文件里节点距离
    –dpi:设置png分辨率,有些期刊投稿要求1200,800,600不等;最好高点。
    –tree-label-size:设置树节点标签大小
    
    结果展示:
    Fbranch.png
    • 真正的物种树作为数据模拟的输入文件显示在图的侧边。物种树在 y 轴以“展开”的形式进行展示,所以每一个分枝包括内部分枝都指向矩阵中对应的行和推断的 f-brach 统计值。
    • 图的上方和左侧为群体/物种系统发育树,其中左侧为展开的群体/物种树。矩阵中色块颜色深浅表示渗入比例,颜色越深表示渗入比例越高,越浅渗入比例越低。
    脚本自用:

    Dsuite.sh

    export LD_LIBRARY_PATH=/home/sll/miniconda3/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib:$LD_LIBRARY_PATH
    Dsuite="/home/sll/software/Dsuite"
    
    $Dsuite/Build/Dsuite Dtrios sample-select.vcf d.txt -t sample.ML.tree.treeout -o sample
    
    $Dsuite/Build/Dsuite Fbranch sample.ML.tree.treeout sample_tree.txt > fbranch.out
    
    $Dsuite/utils/dtools.py fbranch.out sample.ML.tree.treeout --outgroup Outgroup --use_distances --dpi 1200 --tree-label-size 30
    

    相关文章

      网友评论

          本文标题:2023-03-21 | Dsuite做D及f4-ratio统计

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