1. 群体遗传学中的两大神器:Tajima's D与连锁不平衡
群体遗传学研究中,我们常常需要回答两个关键问题:这个基因是否受到自然选择的影响?不同基因位点之间是否存在关联?Tajima's D检验和连锁不平衡分析就是解决这两个问题的利器。前者帮助我们检测自然选择的信号,后者则揭示基因位点间的关联模式。
我第一次接触这两个概念是在分析一组野生大豆种群数据时。当时发现某个基因区域的Tajima's D值异常高,同时该区域的连锁不平衡程度也显著增强。这种"双高"现象让我意识到,这里可能存在强烈的平衡选择作用。正是这次经历让我深刻体会到,将这两种方法结合使用,能获得比单独使用更丰富的信息。
在R语言生态中,已经有多个成熟的包可以完成这些分析。比如pegas包提供了Tajima's D的计算函数,而genetics包则包含了丰富的连锁不平衡分析工具。更棒的是,这些包都遵循统一的输入数据格式,使得联合分析变得异常便捷。
2. Tajima's D检验的R语言实现
2.1 理论基础与计算原理
Tajima's D的核心思想是比较两种不同的θ估计值:基于平均成对差异的θπ和基于SNP数量的θW。在理想的中性进化条件下,这两个估计值应该相等。如果出现显著差异,就提示可能存在选择作用或种群历史事件。
让我用一个生活中的类比来解释:假设你是一家超市的经理,想估算每天的客流量。θπ相当于你通过统计每个时段顾客之间的互动次数来估算,而θW则是通过收银台的总交易笔数来估算。正常情况下,这两个数字应该吻合。但如果某天θπ显著高于θW,可能说明来了很多结伴购物的家庭(类似平衡选择);反之则可能是大量单独购物的顾客(类似定向选择)。
在R中计算Tajima's D时,我们需要准备以下数据:
- 样本的DNA序列或多态性数据
- 每个位点的基因型频率
- 样本大小
# 使用pegas包计算Tajima's D
library(pegas)
data(woodmous


2647

被折叠的 条评论
为什么被折叠?



