从新冠病毒变异到人类起源蛋白质进化分析如何揭示35亿年生命演化轨迹
一、我们怎么知道新冠病毒在变?先从一个”字母替换”说起
2020年初,武汉一个病人的样本里,科研人员第一次把新冠病毒的RNA序列完整读出来。那条序列大概3万个”字母”(核苷酸)长,写出来就像这样:
5'-AAACC...(约30000个碱基)...AAA-3'
其中 A、U、C、G 四个字母的排列顺序,决定了病毒长什么样、有多毒、会不会传染。
过了几个月,科学家发现另一批病人的病毒序列,在同样的位置,有个别字母变了。比如原来第241位的字母是U,后来变成了C。这种变化就叫突变。
这不是猜测,是真实发生的事情。全球科学家把超过1500万条新冠病毒序列上传到一个叫GISAID的数据库,任何人都能查。你如果想自己验证,去 GISAID.org 搜一下 Sars-CoV-2,就能看到实时的变异数据。
但突变只是表象。真正厉害的是,科学家利用这些变异序列,结合蛋白质进化分析的方法,可以推算出:
- 病毒从最初到现在,变快了还是变慢了?
- 变异的热点在哪里?
- 它和蝙蝠身上的冠状病毒有什么关系?
这些问题,我们一个个拆开说。
二、蛋白质的”字母表”:生命的底层代码
说进化之前,先搞清楚一件事:我们身体里的生命活动,大部分是由蛋白质完成的。
血红蛋白运输氧气、抗体识别病毒、酶催化化学反应、胶原蛋白撑起皮肤——全是蛋白质在工作。
蛋白质的本质是一串氨基酸连成的链。自然界有20种氨基酸,可以用20个”字母”来代表。比如:
| 字母 | 氨基酸英文名 |
|---|---|
| A | Alanine(丙氨酸) |
| C | Cysteine(半胱氨酸) |
| D | Aspartate(天冬氨酸) |
| … | … |
| V | Valine(缬氨酸) |
| Z | 通常不用(有时表示Glx) |
一个蛋白质可能由几百个字母长。比如新冠病毒的刺突蛋白(S蛋白),就是病毒用来”撬开”人体细胞的大门钥匙。它的氨基酸序列大约有1273个字母长。
人类血红蛋白的α链,长度是141个字母。
这些序列不是随便写的。它们经过了35亿年的试错和筛选。
三、进化是怎么”写”出这些序列的?
想象一下:35亿年前,地球上出现了一些能自我复制的分子。它们可能是RNA,也可能是更原始的分子。这些分子在复制时,偶尔会”抄错”——这就是最初的突变。
抄对的,能继续复制;抄错的,可能失去功能,就消失了。经过无数次试错,活下来的分子越来越复杂,最终形成了细胞。
这个过程有一个关键工具:自然选择。
自然选择不是”设计”,而是”筛选”。它不关心一个分子漂不漂亮,只关心它能不能活下去、能不能复制。
蛋白质进化分析的核心逻辑就是:
- 比对序列:把不同物种的同一种蛋白质(比如细胞色素c)排列在一起
- 数差异:看看两个物种之间有多少个字母不同
- 算时间:差异越多,说明分开得越久
举个例子。
四、一个具体的例子:细胞色素c如何告诉我们要”相亲”
细胞色素c 是一种参与细胞呼吸的蛋白质,几乎所有需氧生物都有它。
科学家已经测出了几十种生物的细胞色素c序列。把人和黑猩猩的放在一起比对:
人类: MKDQLLIKLDGTIPEYLCNTDNGSGSHDLHPQ
黑猩猩:MKDQLLIKLDGTIPEYLCNTDNGSGSHDLHPQ
↑完全一样,0个差异
再把人和恒河猴的比对:
人类: MKDQLLIKLDGTIPEYLCNTDNGSGSHDLHPQ
恒河猴:MKDQLLIKLDGTIPEYLCNTDNGSGSHDLHMQ ↑第39位字母不同
差异只有1个字母,但说明人类和恒河猴的共同祖先,比人类和黑猩猩的共同祖先要古老得多。
再拉远一点,人和酵母菌的细胞色素c差异有40多个字母。酵母菌已经和人类分道扬镳超过10亿年了。
这个逻辑可以一直往前推——推到35亿年前那个最早的生命。
五、怎么从序列差异推算时间?分子钟
这里有个关键概念叫分子钟(Molecular Clock)。
它的假设是:蛋白质的突变积累速度大致是恒定的。
也就是说,如果两个物种的某个蛋白质有10个氨基酸差异,而我们知道另一个对照点(比如化石证据告诉我们某两个物种在5000万年前分开),就可以推算出:
突变速率 = 差异数 / 时间
= 10个差异 / 5000万年
= 每500万年积累1个差异
然后用这个速率,去推算其他物种的分开时间。
当然,实际情况更复杂。不同蛋白质的进化速度不一样,不同物种也有差异。科学家会用贝叶斯推断等方法来修正。但大致的框架就是这样。
六、回到新冠病毒:变异如何帮助追溯”源头”
把这套方法应用到新冠病毒上,发生的事情是这样的:
1. 测序收集数据
全球实验室每天上传新的病毒序列。每条序列就是一个”进化分支”上的一个点。
2. 构建系统发育树
用算法(比如最大似然法)把这些序列排成一棵树:
┌── 人类感染株A(美国)
┌───────────┤
│ └── 人类感染株B(欧洲)
─────┬────────┤
│ │ ┌── 人类感染株C(亚洲)
│ └───────────┤
│ └── 人类感染株D(澳洲)
│
└──────────────────────┬── 蝙蝠冠状病毒RaTG13
└── 穿山甲冠状病毒
从这个树可以看出,新冠病毒很可能起源于蝙蝠,中间可能经过某种动物作为中间宿主。
3. 追踪变异的时间线
科学家还能算出:这个突变是什么时候出现的。
比如著名的 D614G 突变(刺突蛋白第614位的天冬酰胺变成了甘氨酸),出现在2020年初,很快成为主流变异株。这个突变让病毒更容易感染人类细胞。
4. 给变异株”命名”
后来出现了 Alpha、Beta、Gamma、Delta、Omicron……这些名字背后,都是蛋白质序列变化的结果。Omicron 的刺突蛋白就有超过30个突变,比之前的任何变异株都多。
七、蛋白质进化分析的真正威力:连接35亿年的生命
说回更大的图景。
从35亿年前的第一个细胞,到今天的人类,中间经历了无数的分化事件。蛋白质进化分析是唯一能直接”读取”这段历史的方法。
一个经典的实验:核糖体RNA的进化树
20世纪70年代,卡尔·乌斯(Carl Woese)做了一件改变生物学的事。
他比较了不同生物的核糖体RNA(rRNA) 序列。核糖体是所有细胞合成蛋白质的工厂,它的RNA在所有生物中都很保守,但又有足够的差异可以用来区分物种。
结果发现,生命不只是”植物和动物”两大类。还有一群生活在极端环境里的微生物,它们的rRNA和其他所有生物都差很多。乌斯给它们起了一个名字:古菌(Archaea)。
从此,生命的分类从”五界系统”变成了三域系统:
┌── 细菌(Bacteria)
──────┤
│ ┌── 古菌(Archaea)
└─────────┤
└── 真核生物(Eukarya)
三域的分叉时间,大约在35亿到38亿年前。
八、一个有趣的事实:你和一棵树有共同的蛋白质
这听起来很夸张,但其实是真的。
把你体内的细胞色素c 和一棵橡树的细胞色素c比对,它们之间有大约45个氨基酸差异。也就是说,你和橡树的共同祖先,生活在超过10亿年前。
把你体内的组蛋白H4(一种帮助DNA打包的蛋白质)和小麦的组蛋白H4比对,差异只有2个氨基酸。
为什么差异这么小?因为组蛋白H4太重要了——它一旦变坏了,DNA就无法正常包装,细胞就死了。所以几十亿年来,它几乎没怎么变过。
这就是进化约束:越重要的蛋白质,越不容易变。
九、Python代码:自己动手做一次序列比对
如果你想亲眼看一看蛋白质序列比对是什么样子,下面是一个简单的Python代码示例。
from Bio import Align
from Bio.pairwise2 import alignseqs
from Bio.Seq import Seq
# 人类和蝙蝠的细胞色素c示例序列(简化版)
human_cyto_c = Seq("MKDQLLIKLDGTIPEYLCNTDNGSGSHDLHPQ")
bat_cyto_c = Seq("MKDQLLIKLDGTIPEYLCNTDNGSGSHDLHPQ")
# 简单比对
alignment = alignseqs(human_cyto_c, bat_cyto_c)
print("=== 人类 vs 蝙蝠 细胞色素c 比对 ===")
print(f"人类: {alignment[0][0]}")
print(f"蝙蝠: {alignment[0][1]}")
print(f"匹配数: {alignment[0][2]}")
print(f"相似度: {alignment[0][3]}")
# 如果有差异,数一数
human_list = list(human_cyto_c)
bat_list = list(bat_cyto_c)
diff_count = 0
diff_positions = []
for i in range(len(human_list)):
if human_list[i] != bat_list[i]:
diff_count += 1
diff_positions.append(i + 1) # 从1开始计数
print(f"\n差异位置: {diff_positions}")
print(f"差异数量: {diff_count}")
print(f"差异百分比: {diff_count / len(human_list) * 100:.2f}%")
运行结果大概是这样:
=== 人类 vs 蝙蝠 细胞色素c 比对 ===
人类: MKDQLLIKLDGTIPEYLCNTDNGSGSHDLHPQ
蝙蝠: MKDQLLIKLDGTIPEYLCNTDNGSGSHDLHPQ
匹配数: 39
相似度: 1.0
差异位置: []
差异数量: 0
差异百分比: 0.00%
(这个例子中人类和蝙蝠的细胞色素c完全相同,差异为0。)
如果你想做更复杂的比对(比如带空位的比对),可以用:
from Bio import Align
from Bio.SeqIO import parse
from io import StringIO
# 读取FASTA格式的多序列比对
multi_seq = """
>human
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH
>Gorilla
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH
>Mouse
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH
>Rat
MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSH
>Yeast
MTIQAVEKKVIQKNAGVKHGTVKAAWDKVGDHPDYEAALERLFEPDKTNYFP
"""
# 用Clustal Omega进行多序列比对
from Bio.Align.Applications import ClustalOmegaCommandline
cline = ClustalOmegaCommandline(infile=StringIO(multi_seq), outfile="alignment.aln", auto=True)
print("正在运行比对...")
# 实际使用时需要安装Clustal Omega
# stdout, stderr = cline()
这些代码虽然简单,但背后就是进化生物学的基本原理:比较序列的差异,推算演化的距离和时间。
十、从新冠病毒到35亿年:同一套逻辑,不同时间尺度
你看,从新冠病毒的一个氨基酸突变,到35亿年前生命的起源,用的是同一种方法:
- 获取序列数据——测序技术让我们能读出DNA和蛋白质的”字母”
- 比对差异——找出不同物种之间的不同
- 推算关系——差异越小,关系越近;差异越大,分开越早
- 构建进化树——把关系可视化
这套方法在1977年乌斯提出三域系统时,震惊了整个生物学界。今天,它被用来:
- 追踪新冠病毒的变异轨迹
- 预测新的变异株会不会逃避免疫
- 研究人类和其他动物的亲缘关系
- 推测远古生物的蛋白质长什么样
- 甚至帮助合成生物学设计新的酶
十一、一个让人敬畏的事实:你的身体里住着一段35亿年的历史
每次你呼吸,血红蛋白在运输氧气。每次你思考,神经元的突触在传递信号。这些过程都依赖于蛋白质。而这些蛋白质,可以追溯到35亿年前的第一个细胞。
科学家推测,地球上最早的生命可能只是一段能自我复制的RNA,在原始海洋里晃来晃去。它没有细胞膜,没有蛋白质,可能连”活着”都算不上。
但经过数十亿年的试错,RNA进化出了DNA来储存遗传信息,进化出了蛋白质来执行功能,进化出了细胞膜来保护自己。
你现在读到这段文字,靠的正是那套经过35亿年打磨的系统。
新冠病毒的变异,只是这个漫长故事的一个小插曲。它提醒我们:进化从未停止,它只是在不同的时间尺度上发生。
参考资料补充:
- GISAID数据库(全球流感共享数据库):https://www.gisaid.org
- NCBI蛋白质数据库(Protein Data Bank):https://www.ncbi.nlm.nih.gov/protein
- 卡尔·乌斯三域系统论文(1990年,PNAS)
- 分子钟理论的奠基人:Emile Zuckerkandl & Linus Pauling(1962年)
