ABBA-BABA遗传渗入分析(Dsuite软件)

ABBA-BABA分析方法最早发布于2012年NATURE的文章:Butterfly genome reveals promiscuous exchange of mimicry adaptations among species(https://www.nature.com/articles/nature11041

原理:

简单来说,假设有三个物种,P1,P2,P3,利用它们的全基因组SNPs建树得到的是下图中的树,即P1和P2为单系,再与P3聚到一起。那么根据分子钟原理,P1与P2的共同祖先从P3中分离出,而后经过相同时间演化出P1和P2,那么以下几点应该成立:

(1)【P1到P3】和【P2到P3】的遗传距离应该是大致相同的(考虑到不同位点的进化速率不同,至少在全基因组范围,其平均遗传距离应该是大抵相同的)。

(2)假如P2与P3之间发生过杂交事件,那么P2-P3的距离应该小于P1-P3的举例;反之,如果P1与P3发生过杂交事件,则P1-P3<P2-P3。

(3)ABBA-BABA顾名思义,将遗传距离相近的两物种用同一字母表示(A或B),ABBA即为P2-P3之间距离较近(但此时不能下定论,要通过统计量确定其两者是否存在遗传渐渗),BABA即为P1与P3之间距离较近。

(4)D统计(D-statistics)以及Z-score的计算:假设使用全基因组SNPs数据进行研究,无论是使用滑窗法(将连续的数个SNPs一起分析)还是单个SNPs进行研究,最终的D统计都是:D=(ABBA树数量-BABA树数量)/(ABBA树数量+BABA树数量)。看到这里也就懂了,如果D统计量=0,说明总体ABBA和BABA的数量相同,不存在明显的渗入;如果不等于0,则或许存在渗入。进一步计算Z-score,在本软件中用的是:

𝑍-score = 𝐷/𝑠𝑡𝑑_𝑒𝑟𝑟(𝐷)

Z>3和<-3分别是正负显著。

P.S. 其实Patterson‘s D统计就是ABBA-BABA统计。

D统计大致原理

变式

变式



实际软件操作:

Dsuite软件链接:https://github.com/millanek/Dsuite
Publication:Malinsky, M., Matschiner, M. and Svardal, H. (2020), Dsuite ‐ fast D‐statistics and related admixture evidence from VCF files. Mol Ecol Resour. Accepted Author Manuscript. https://doi.org/10.1111/1755-0998.13265


Dsuite的优势:
(1)可以使用SNPs和Indels
(2)个体及种群无上限(可到几百)
(3)可以设置genomic sliding windows
(4)可以进行全基因组范围的D统计量和f4-ratio计算(f4是一种统计量,用来验证一棵无根树是否符合预想的拓扑,具体解释见后文,类似的还有f3,f2等等)

1、安装

$ git clone https://github.com/millanek/Dsuite.git
$ cd Dsuite
$ make


2、命令

Commands:
           Dtrios                  Calculate D (ABBA-BABA) and f4-ratio statistics for all possible trios of populations/species
           DtriosCombine           Combine results from Dtrios runs across genomic regions (e.g. per-chromosome)
           Dinvestigate            Follow up analyses for trios with significantly elevated D:
                                   calculates f_d, f_dM, and d_f in windows along the genome
           Fbranch                 Calculate D and f statistics for branches on a tree that relates the populations/species

Experimental:
           Dquartets               Calculate D (ABBA-BABA) and f4-ratio statistics for all possible quartets of populations/species
                                   (no outgroup specified)

Usage:
a) Dsuite Dtrios [OPTIONS] INPUT_FILE.vcf SETS.txt
b) Dsuite Dquartets [OPTIONS] INPUT_FILE.vcf SETS.txt
c) Dsuite Dinvestigate [OPTIONS] INPUT_FILE.vcf.gz SETS.txt test_trios.txt
d) Dsuite Fbranch [OPTIONS] TREE_FILE.nwk FVALS_tree.txt

一般应该是用Dtrios

3、输入文件

(1)vcf文件,可以包含SNPs和Indels的多等位基因位点,但必须是biallelic的。.vcf
(2)个体及种群名录(Population/species map )SETS.txt
如下图所示 注意要用tab分割

Ind1    Species1
Ind2    Species1
Ind3    Species2
Ind4    Species2
Ind5    Species3
Ind6    Outgroup
Ind7    Outgroup
Ind8    xxx
...     ...
IndN    Species_n

想用多少用多少个体,如果中途希望取子集研究,只需要把不需要的个体用xxx替代就行。
Dtrios命令中至少要指定一个outgroup。
Dquartets中不应该有outgroup,因为这个命令是探索所有可能patterns的。
要用另外三个算法的话要输入额外的文件,这里不再列出,可以参考github(见上文链接)

4、运行Dtrios

Usage: Dsuite Dtrios [OPTIONS] INPUT_FILE.vcf SETS.txt

Calculate the D (ABBA/BABA) and f4-ratio (f_G) statistics for all trios of species in the dataset (the outgroup being fixed)
The results are as definded in Patterson et al. 2012 (equivalent to Durand et al. 2011 when the Outgroup is fixed for the ancestral allele)
The SETS.txt should have two columns: SAMPLE_ID    SPECIES_ID
The outgroup (can be multiple samples) should be specified by using the keywork Outgroup in place of the SPECIES_ID

       -h, --help                              display this help and exit
       -k, --JKnum                             (default=20) the number of Jackknife blocks to divide the dataset into; should be at least 20 for the whole dataset
       -j, --JKwindow                          (default=NA) Jackknife block size in number of informative SNPs (as used in v0.2)
                                               when specified, this is used in place of the --JKnum option
       -r, --region=start,length               (optional) only process a subset of the VCF file
       -t, --tree=TREE_FILE.nwk                (optional) a file with a tree in the newick format specifying the relationships between populations/species
                                               D and f4-ratio values for trios arranged according to the tree will be output in a file with _tree.txt suffix
       -o, --out-prefix=OUT_FILE_PREFIX        (optional) the prefix for the files where the results should be written
                                               output will be put in OUT_FILE_PREFIX_BBAA.txt, OUT_FILE_PREFIX_Dmin.txt, OUT_FILE_PREFIX_tree.txt etc.
                                               by default, the prefix is taken from the name of the SETS.txt file
       -n, --run-name                          (optional) run-name will be included in the output file name after the PREFIX
       --no-f4-ratio                           (optional) don't calculate the f4-ratio
       -l NUMLINES                             (optional) the number of lines in the VCF input - required if reading the VCF via a unix pipe


5、总结

总而言之,最后的代码大概就这一行,参数可以都为默认

Dsuite Dtrios [OPTIONS] INPUT_FILE.vcf SETS.txt

最后得到的BBAA.txt, Dmin.txt, tree.txt就是最终结果,之后再绘图。

如果是将基因组分成若干文件来跑的,需要注意设置【-n, --run-name】参数,最后可以用DtriosCombine将combine.txt和combine_stderr.txt合并。



Dsuite软件作者给出的D统计软件对比图



f4统计量简介

直接看下文公式:假设有A、B、C、D四个个体,代表四个类群,aj/bj/cj/dj分别是该类群在位点j的参考基因组基因频率(reference allele frequency)。总位点J个。分母是用来将统计量正态化的,类群x可以左右选择,对好的是选择与感兴趣类群关系较近的population。


f4统计量公式

同样的,f4统计量最后也要用计算Zscroe,以正负3为显著性的阈值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容