祖系重组图:
Ancestral recombination graph
,基于染色体样本的历史重组事件, 用来描述染色体样本之间系统发生关系的数据结构。
基因树和祖系重组图ARG
含有丰富的进化信息,能够用来检测DNA序列中的自然选择信号。
自然选择信号的识别
自然选择能够影响DNA序列的多态性,连锁不平衡,等位基因频率等,比如在正向选择事件中(选择性清除),选择位点附近的多态性降低,连锁不平衡增强,低频位点增多等。
自然选择能够告诉我们很多关于生物进化的信息,其在医药卫生、动植物繁育以及生态学上有很多用途。比较经典的自然选择例子,有非洲人群中抵抗疟疾的血红素;欧洲人群中乳糖耐受基因LCT等。此外,自然选择还是物种分化和形成的重要因素之一。
很多方法可以用来识别这些自然选择信号,比如经典的统计量(Tajima's D等),综合多种统计量的机器学习模型和近似贝叶斯计算(ABC)以及本文所关注的通过祖系重组图来推测自然选择。
进化模拟
通过计算机进行进化模拟是一个非常有用的工具,很多选择信号的识别依赖于进化模拟。模拟一般分为两类:溯祖模拟coalescent simulation
和向前模拟forward simulation
。
溯祖模拟起始于当下群体中,然后向过去溯源,直到所有的样本追踪到同一个共同祖先。在溯祖过程中,很多支系会丢失掉,同时突变、重组、群体结构、群体大小变化等因素都可以加入到该溯祖的过程中。
溯祖模拟的软件最早的是ms
,其后包括了msprime
,但是二者都假设了基因型具有相同的适应性,因而无法模拟自然选择。不过通过他们可以模拟无效模型。除此二者外,还有discoal
和msms
两个模拟软件,能够模拟自然选择的情况,二者的使用方法也很相似,本人使用过discoal.。
向前模拟是起始于一个祖系群体,然后向未来演化。向前模拟最典型的软件是SLiM
,除了可以模拟各种复杂的群体结构和群体大小变化外,还可以模拟物种不同的繁殖策略。
通过统计量识别自然选择
dN/dS
:通过比较非同义突变位点和同义突变位点,来识别正在发生的或者重复发生的自然选择,其值>1,可能提示正向选择,其值<1,提示负向选择。
McDonald-Kreitman test
:通过比较种内的多态性和种间的分化情况,来推测自然选择情况。
还有一些方法,利用单倍体信息和等位基因频谱来检测自然选择,比如Tajima's D
, ,,H12
, iHS
等。
复合似然
:通过对相应基因位点过大的连锁不平衡性,进行复合似然性检验,进而推测自然选择的可能性。
同样的方法还有: SweepFinder
, SweepFinder2
, SweeD
,OmegaPlus
等
与一些依赖于近似贝叶斯计算和深度学习的模型相比较,上述方法简化了计算,提升了效率,但是当选择压力比较弱的时候,其灵敏性较低。
近似贝叶斯计算
根据一些先验参数或者MCMC中的分布参数,进行模拟,然后对模拟的数据进行一般统计量的计算;这些计算结果和实际观测数据的计算结果进行比较,根据比较结果的相似性程度,来判断是否接受原模拟模型,即是否能够用模拟模型的参数来刻画观测数据。
与传统用简单统计量和符合似然来推测自然选择相比,近似贝叶斯计算能够提供一个后验概率分布,同时能够推测选择压力大小和发生的时间,能够区分选择是发生于既有变异上(软性清除)还是新突变上(硬性清除)。
当然,近似贝叶斯计算 的缺点也显而易见,需要特别大的计算量,特别是当参数比较多的时候。
机器学习
有监督的机器学习已经被用于了自然选择的识别中,包括正向选择(软性清除和硬性清除),负向选择。
通过模拟自然选择的类型(标签),然后计算模拟数据的各种类型的统计量,将这些统计量组成特征向量,然后通过CNN等,来训练分类器,将该分类器用于实际观测数据中,即可判断实际数据中的自然选择类型。相对应的工具有S/HIC
, diploS/HIC
, SFselect
, evolBoosting
等。
通过机器学习来识别自然选择同样需要进行大量的数据模拟,同时模拟的群体模型(群体参数等)要和你实际观测数据来源的群体相一致。否则可能会出现一定的假阳性或者假阴性错误。
超越统计量:ARG和基因树
上述几种方法,不管是贝叶斯还是机器学习,其核心内容还是传统群体统计量的计算和比较。与之不同,ARG和基因树从另一个角度来识别自然选择。
ARG包含了祖系重组信息,通过它可以计算群体的重组率、估计群体分化时间、有效群体数量、基因流、基因形成的时间、自然选择对等位基因的影响等。下图是一个简单的祖系重组图ARG的示意:
一段序列,根据祖系重组情况的不同,可以形成不同的基因树。如上述(B)中的第二个单倍体,其包含了两个基因树(C):a1-a2之间的基因树为((1,2),3);而a2-a3之间的基因树为(1,(2,3))。
本文着重于如何使用ARG来推测自然选择。下图展示了自然选择发生时,其基因树的变化:
ARGweaver: 对于特定DNA序列数据,目前仅有的可以从ARG后验分布中抽样的工具。可以用来描述局部基因树分布,重组断点,重组率,到最近共同祖先的时间,基因形成时间等。同时,它还可以处理非分型的数据(unphased data),基因型缺失数据以及古DNA样本数据。其缺点是计算量过大,特别是当序列样本比较多的时候。所以,比较适用于小样本数据。 RENT+:通过极简约方法,以最小的重组数,推测形成观测SNPs的局部基因树。不过,这种通过极简推断的方法,往往会很大程度上低估了实际重组数。同时,其对树的估计是一个点估计,而非一个分布区间,所以无法描述树的不确定性。其优点是,(与ARGweaver不同),其结果对用户定义的一些参数(突变率,重组率,迭代次数等)比较稳健。 tsinfer:速度非常快,可以用于数百到数千基因组的ARG构建。它需要biallelic样本,同时数据要分型,祖系基因状态要已知。不过,它并没有很明确的推测ARG。实际上,它是通过拓扑结构描述了局部基因树的序列。tsinfer具有很快的速度和较高的准确性。和RENT+一样,tsinfer也是点估计,没有包含基因树的不确定性。 RELATE:它可以产生上万序列的基因组水平的系统发生树,然后估计各个树枝长度,基因年龄和群体大小的变化情况。RELATE的速度比ARGweaver和RENT+要快,同时准确性也更高。不过,RELATE也只是对参数的点估计。
tsinfer和RELATE都使用了 Li-and-Stephens算法。理论上二者可以联合使用,tsinfer首先对样本预处理,根据样本相似关系进行分组,然后使用RELATE推测树枝长度。
通过ARG和基因树推测自然选择
溯祖模型一般会考虑遗传漂变,但是假设没有重组。这使得谱系历史和中性突变能够相对独立:先生成一个谱系树,然后再树枝上添加中性突变即可。
但是一旦有自然选择的发生,溯祖模型变得很复杂,谱系和突变不再相互独立。有些早期研究通过祖系选择图ancestral selection graph
来处理带有自然选择的谱系。但是这种处理方法效率很低,特别是当选择压力很大时,是的数据模拟很困难。
另一种方法是像扩散理论那样,精确描述溯祖过程中受选择位点的频率变化轨迹。比如有研究根据特定位点频率变化轨迹可以估计出谱系树的分布。还有研究进一步将频率变化轨迹和与之对应的谱系树作为隐变量,根据似然性来推出受选择位点的选择压力大小。这些方法都没有考虑重组。
最近有研究拓展了上述方法,将重组因素加入在内。该方法(CLUES
) 通过ARGweaver在祖系重组图后验概率分布中抽样,然后使用隐形马尔科夫模型(HMM)使得等位基因频率变化轨迹与观测值最相似,以此来推测受选择位点的选择压力大小。
ARG还可以用来推测多基因选择polygenic selection
。但是要注意群体结构对结果的干扰。比如有不少研究发现欧洲人群中,身高相关基因受到自然选择,但是在UK-biobank中,并没有发现这些基因受到自然选择的迹象。前面的一些经过可能是群体结构造成的假阳性。
结束语
识别自然选择信号,最初是通过一些像Tajiam's D 之类的简单 统计量。近些年,机器学习,尤其是深度学习,通过图像识别来识别自然选择取得了很大的进展。对于处理含有时序的数据,可以通过使用递归神经网络RNN来实现。比如有研究使用RNN发明了ReLERNN工具来估计基因组重组率。相类似的,ARG含有时序信息,溯祖过程中,每一个时间节点都可以看做一个向量,所以可以通过RNN来处理ARG数据,进而推测自然选择。值得一提的是,RNN可以很好的处理高度复杂的高维数据。
通过机器学习可来估计适应度分布DFE
和研究种群到物种的分化。
最近还有对ARGweaver方法的扩张,ARGweaver-D。该方法考虑基因流和基因渗入对ARG的影响,同时提升了对最近共同祖先时间和对基因时间形成时间估计的准确性。特别是,如果你有个新的序列,ARGweaver-D能够将该序列整合到现有的ARG数据中,进而判断该序列的来源。比如,识别人类基因序列中某一段是来源于尼安德特人,某一段是来源于丹尼索瓦人等。
资料来源:Hejase, H. A., Dukler, N., & Siepel, A. (2020). From summary statistics to gene trees: methods for inferring positive selection. Trends in Genetics, 36(4), 243-258.