SNP功能预测工具:SIFT、PolyPhen-2、PROVEAN的原理与使用方法
做SNV/SNP功能预测,有三把常用的筛子——SIFT、PolyPhen-2和PROVEAN。我刚接触这个领域时,习惯三个工具全跑一遍,然后取交集。后来发现,搞清楚每个工具背后的逻辑,比盲目堆工具重要得多。你想想看,如果不知道它们在看什么,结果冲突时你该信谁?
SIFT——从序列保守性入手
SIFT的核心思想很直接:一个氨基酸位点在进化中越保守,换成别的氨基酸就越容易出问题。它拿你的变异位点去做多序列比对,统计每个位置上各种氨基酸出现的频率,然后算一个0到1之间的分数。分数越低,保守性越强,变异越可能有害。阈值基本固定在0.05。
我在项目中遇到过一种情况:某个变异SIFT score是0.06,刚好卡在阈值上面。这时候别急着下结论说"无害"。我建议先看看这个位点的多序列比对质量,如果覆盖的物种很少,分数可能不太可靠。嗯,这里要注意辅助证据。
使用方式
SIFT最方便的用法是通过网页提交,适合单个变异分析:
1. 打开 SIFT 网页服务器
2. 输入蛋白序列或 UniProt ID
3. 指定变异位点和氨基酸替换
4. 提交,等待结果
批量分析可以用SIFT 4G的本地版本:
java -jar sift4g.jar -d /path/to/uniref100.fasta \
-i input.vcf -o sift_output.txt
首次使用要对参考基因组建索引,这一步比较耗时。我记得第一次跑的时候没看文档,直接报错了——后来发现是数据库路径没配对。
PolyPhen-2——序列+结构,双管齐下
PolyPhen-2比SIFT多了一个维度:它不光看序列保守性,还把蛋白结构信息加了进来。说白了,它不光问"这个位置变没变过",还问"这个位置在结构上重不重要"。底层用的是朴素贝叶斯或随机森林,输入特征包括进化保守性、结构域注释、理化性质变化等。输出是一个概率分数,越接近1,表示有害的可能性越大。
它提供两个模型:HumDiv和HumVar。HumDiv适用于罕见变异,HumVar用于常见变异筛查。我个人习惯两个模型都跑一下,如果结论一致,可信度就高很多。有一次分析一个膜蛋白的突变,HumDiv判有害,HumVar判中性——后来查文献发现这个位点确实有争议。
使用方式
网页版适合单查,界面很直观:
https://genetics.bwh.harvard.edu/pph2/
批量分析可以用命令行版本:
polyphen-2 --query variants.txt \
--output result.html \
--model HumDiv
输入文件格式要求比较严,每行需要包含染色体、位置、参考等位基因和突变等位基因。我建议先用VCF转一下,别手写。
PROVEAN——同源比对的另一种计算思路
PROVEAN的思路跟SIFT有点像,但计算方式不同。它通过比对突变序列与同源序列,算一个delta对齐评分——简单说,就是看突变前后的序列跟同源序列的匹配程度变化了多少。评分是负值,低于-2.5就判定为有害。
这个阈值我试过好几个数据集,表现都挺稳定。不过要注意,PROVEAN对输入序列的质量很敏感。我在项目中遇到过一个问题:query序列里有几个 ambiguous 残基,provean直接跳过了那几条比对,导致评分失真。
使用方式
命令行工具很成熟,适合集成到pipeline里:
provean.sh -q query_protein.fa \
-v variants.txt \
-o provean_output
variant文件格式要求严格,每行必须严格按照"氨基酸位置 原始氨基酸 突变氨基酸"来写:
105 R W
207 G V
314 L P
网页版同样支持单个查询,适合快速验证。
三工具核心对比
| 工具 | 核心原理 | 输入特征 | 输出指标 | 有害阈值 |
|---|---|---|---|---|
| SIFT | 序列保守性 | 多序列比对 | SIFT score (0–1) | < 0.05 |
| PolyPhen-2 | 序列+结构特征 | 进化保守性、结构域、理化性质 | 概率分数 (0–1) | > 0.909 (HumDiv) / > 0.447 (HumVar) |
| PROVEAN | 同源比对 | 序列对齐得分 | PROVEAN score (负值) | < –2.5 |