1. 等位基因频率概述:定义与生物学意义
讲等位基因频率之前,我先问大家一个问题:你凭什么说一个群体里某个基因变异“常见”或“罕见”?数量。说白了就是数数——数清楚这个位点上每种等位基因出现了多少次。
等位基因频率(Allele Frequency),就是某个特定等位基因占该位点全部等位基因总数的比例。打个比方:你有一个100人的群体,每个人都是二倍体,那某个常染色体位点就有200个等位基因。如果其中A出现了120次,那么A的频率就是0.6。
我在做GWAS分析的时候,第一件事就是算频率。频率不对,后面所有统计都会翻车。这一点我深有体会——有一次我没仔细检查,混入了一批重复样本,结果频率直接偏了10%,整张曼哈顿图都废了。
1.1 核心公式与计算
公式很直白:
p = count(A) / (2 * N)
其中count(A)是A等位基因的拷贝数,N是样本个体数。注意,性染色体和线粒体的算法要调整,后面章节会细说。
如果是基因型数据,通常从PLINK或VCF里直接提取。我用得最多的命令:
plink --bfile mydata --freq --out freq_output
输出文件长这样:
CHR SNP A1 A2 MAF NCHROBS
1 rs1 A G 0.35 2000
1 rs2 T C 0.12 1998
MAF就是Minor Allele Frequency(次等位基因频率)。注意,MAF不一定是频率小的那个——在输出里它会自动选频率低的那个作为A1。
1.2 生物学意义:为什么我们关心它?
等位基因频率不是个数字那么简单。它背后藏着进化、疾病、选择、漂变。我总结了几层意义:
- 衡量变异重要性:频率高的变异可能更古老,也可能是功能保守区域;频率低的往往更“年轻”,或者受负选择压制。
- 疾病关联:病例组和对照组之间频率有差异,可能就是致病位点。GWAS就靠这个。
- 选择信号:某个位点的频率在群体中异常升高或降低,可能意味着受到正选择或净化选择。
- 群体结构:不同亚群的频率差异可以帮我们识别祖源和迁徙历史。
你想想看,一个位点在非洲人群里频率0.8,在欧洲人群里只有0.05,这表示什么?要么是当地选择压力不同,要么是遗传漂变。我曾经在一个跨种族研究中,发现某个药物靶点的频率差异巨大,差点因此调整了入组标准。
1.3 频率分布特征
在实际项目里,我通常关注几个分布特征:
| 特征 | 定义 | 常见范围 |
|---|---|---|
| 常见变异(Common) | MAF ≥ 0.05 | 约占全基因组SNP的1-2% |
| 低频变异(Low frequency) | 0.01 ≤ MAF < 0.05 | 约占3-5% |
| 罕见变异(Rare) | MAF < 0.01 | 占绝大多数(> 90%) |
1.4 一个典型的频率分布——你猜什么样?
绝大多数位点的等位基因频率其实靠近0或1。为什么?因为大部分突变都是近期产生的,还没扩散开。也就是说,绝大多数SNP是罕见变异。
这个分布可以用SFS(Site Frequency Spectrum)来展示。简单说就是:把位点按等位基因出现的次数分组,然后看每组有多少个位点。结果往往是“L”形——次数低的位点占绝大多数。
1.5 频率与样本量的关系
频率的精度高度依赖样本量。样本量太小,你根本测不准低频变异。举个例子:你只有50个样本,那一个MAF=0.02的位点最多出现2次等位基因,算出来误差极大。
常用的估算:要稳定检测MAF=0.01的位点,至少需要2000个样本(单倍型数4000)。
# Python里快速计算频率标准误
import numpy as np
p = 0.01 # 等位基因频率
n = 2000 # 样本数
se = np.sqrt(p * (1-p) / (2*n))
print(f"标准误: {se:.4f}")
输出:
标准误: 0.0016
也就是说,如果p=0.01,n=2000,95%置信区间大约是0.0069 ~ 0.0131。还算靠谱吧。
1.6 本节知识图谱
下面我把这章的核心概念串起来,画一张结构图。你看完应该能记住频率到底是什么,怎么算,为什么重要。
嗯,这一章就到这里。记住:频率是统计,也是生物学。下次再做数据清洗,记得先看看MAF分布。