想象你手里有一本跨越几亿年的家族相册。相册里不是人脸,而是一群高度相似的 RNA 分子——它们来自不同物种,却保留着同一个“祖传”的折叠结构。每翻一页,你都会发现:只要左边某个位置换了“衣服”(碱基),右边某个位置也几乎一定会换成配套的“衣服”。爷爷的领结变蓝,奶奶的丝巾就变蓝;孙子换红领结,孙媳的丝巾也换红。这种“同步换装”不是约好的时尚,而是进化在暗中维持结构的证据。 EvoFold 就是那个专门端详相册的侦探。它不像传统方法那样只凭物理化学的“审美”来判断一条 RNA 会怎么折叠,而是收集大量同源 RNA 的“合影”,分析哪些碱基位置总在同步进化,从而推断它们是否手牵手形成配对。这套思路叫协方差分析,让它在非编码 RNA 的结构预测上格外敏锐。这篇文章会像翻相册一样,把 EvoFold 的原理、流程、优势与挑战一层层展开。
对 AI 从业者而言,EvoFold 是把“进化数据”转化为预测模型的经典案例:看懂它,你就掌握了如何用生物先验知识为模型注入强约束。
可视化演示
演示EvoFold利用进化信息预测RNA二级结构:协方差分析捕捉碱基共变信号,系统发育SCFG建模茎环与发夹结构,右侧指标呈现预测精度与共变检测能力。
本节配有交互动效(进入视口后自动加载,约 3KB)。
碱基配对 A-U配 G-C配 A-U·G-C 推断碱基配对关系
进化印记
翻开家族相册时,最显眼的往往不是某一个人,而是那些永远站在一起的搭档。爷爷换蓝领结,奶奶就换蓝丝巾;父亲换成红领带,母亲便换成红披肩。在 RNA 的世界里,这样的搭档叫碱基配对:A 和 U 是一对,G 和 C 是一对。它们一旦失配,整个折叠结构就可能散架。功能重要的非编码 RNA(比如核糖开关、miRNA 前体)并不编码蛋白质,而是靠折叠出来的形状干活,形状一旦被破坏,功能就报废。
正因如此,自然选择会在进化中反复“修修补补”:一边的碱基突变,另一边也必须跟着突变,才能继续保持配对。这种现象在相册里看起来,就是两个位置永远同步换装。EvoFold 盯住的,正是这种跨越物种、跨越时间的保守结构信号。
1. PairSupport(i,j):衡量第 i 列与第 j 列在所有同源序列中保持配对的比率,相当于“这对搭档在全家福里始终同时出现”的默契度。
2. N:同源 RNA 序列的条数,也就是相册里照片的张数。
3. b_{k,i}:第 k 条序列第 i 列的碱基,代表照片中某个固定位置上站着的家族成员。
4. 指示函数:括号里的条件成立记 1,不成立记 0,用来数有多少条序列维持配对。
5. 集合 C:规范碱基配对集合,包含 A-U 与 G-C 等常见配对,相当于“搭配手册”。
这样一来,EvoFold 不只看一条 RNA“漂不漂亮”,而是看它在整个家族中是否一直保持搭档关系。家族相册里最常见的搭配,往往就是最可信的折叠线索。
协方差分析
但是,单纯统计 PairSupport 也有陷阱:有些位置只是偶尔碰巧互补,并不代表真的配对。要鉴定“真搭档”,还需要看它们是否同步变化。比如相册里有一对表兄弟,十张照片里有六张穿同色衣服,但其他客人偶尔也穿同色;而另一对夫妻,无论衣服怎么变,一定同时换上配套颜色。后者才是真正的“共变”。
协方差分析把多个同源序列对齐后,为每一对列计算联合频率。如果第 i 列出现 A 时第 j 列几乎总是 U,第 i 列变成 G 时第 j 列几乎总是 C,那么两列之间的互信息(MI)就会很高。这个高 MI 就是“进化信号”:它们在许多独立进化事件中反复互相配合,而不是一次两次的巧合。
1. B:碱基字母表,即 A、U、G、C,代表四种“服装款式”。
2. f_{xy}(i,j):在所有序列中,第 i 列出现 x、第 j 列同时出现 y 的联合频率,相当于“两人搭配某套服装的照片占比”。
3. f_x(i):第 i 列出现碱基 x 的单列频率,相当于“某个人单独穿某件衣服的概率”。
4. log2:把频率比转换成信息量,单位是比特;比值越大,说明“看到 x 就能预测 y”的能力越强。
5. 双重求和:穷举所有碱基组合,把每一组的共变贡献累加起来,得到两列之间的总依赖程度。
EvoFold 会把高 MI 的列当作候选配对,再放进结构模型里做全局折叠。相比只看单序列的能量最小化,这种从“家族合影”里挖出来的信号更稳健、更少被巧合欺骗。
热力学对比
在 EvoFold 出现之前,RNA 二级结构预测的主流是热力学方法。它的想法很物理:RNA 像一根会自己打结的绳子,最终趋向自由能最低的形状。只要能算出每个茎环结构的堆叠能、环能,就能找到最稳定的折叠。这相当于一位工程师只看建筑设计图,就能判断哪座桥最牢固。
但真实生物分子不是理想实验室。体外测定的能量参数未必完全代表细胞里的真实情况;而且一个功能 RNA 的结构往往不是绝对最低能态,而是进化中保留下来的稳定状态。热力学方法擅长处理单条、无同源序列的 RNA,但对保守的非编码 RNA 结构,它会漏掉进化证据。
1. ΔG_fold:整个 RNA 折叠的自由能变化,数值越低表示结构越稳定。
2. 堆叠能 ΔG_stack:相邻碱基对层层堆叠时释放的能量,像书架上一排整齐的书互相支撑。
3. 环能 ΔG_loop:发夹环、内环等未配对区域需要付出的能量代价,像绳子转弯处多出来的松弛部分。
4. 求和:把每个结构单元的能量相加,得到全局折叠成本。
EvoFold 的立场是:与其只信物理,不如同时看历史。多个物种都维持同一个配对,说明这个配对在真实环境中经受了考验。于是它把进化信号纳入打分,预测精度与适用范围都因此提升,尤其在保守 RNA 家族上,常常优于纯热力学方法。
算法流程
现在把 EvoFold 的工作过程想象成侦探破案。第一步当然是收集相册:从公共数据库里找到目标 RNA 的同源序列,物种越分散越好。第二步把照片按“家族关系”排好,做多序列比对,让每一列对应同一个祖先位置。第三步,侦探放大镜扫过每一对列,计算共变分数,看哪些位置“同步换装”。最后,把所有候选配对组合成一个全局一致的二级结构,尽量满足高共变、低冲突的原则。
EvoFold 真正的实现涉及更精细的概率模型,但核心骨架可以简化成一句话:结构得分 = 配对位置的互信息之和 − λ 倍的热力学自由能。λ 控制进化信号与物理能量的权重,约等于告诉侦探“多信任照片证据,少依赖理论推测”。
1. S(fold):某个候选二级结构的综合得分,得分越高越可信。
2. MI(i,j):第 i 与第 j 列的互信息,代表这两列在进化中同步换装的强度。
3. 求和符号:把所有预测配对位置的互信息累加,得到总进化证据。
4. ΔG_fold:同一结构的热力学自由能,能量越低结构越稳定。
5. λ:平衡系数,决定进化信号和物理能量谁更重要。
经过这套流程,EvoFold 从一堆散乱的照片里整理出“谁和谁牵手”的完整关系网。序列收集是对齐的前提,比对构建是共变分析的地基,协变打分是发现线索,折叠预测则是把所有线索拼成一张结构图。
应用场景
拿到二级结构后,最直接的价值是理解非编码 RNA。比如一个 miRNA 前体只有折叠成发夹结构才能被加工;一个核糖开关只有折叠变化才能控制基因表达。EvoFold 在基因组里扫描进化保守的 RNA 结构,能帮研究人员标出“这些区域可能不是垃圾,而是功能单元”。
在药物研发中,许多疾病相关非编码 RNA 会形成稳定的结构口袋,小分子药物可以结合进去。EvoFold 通过比较不同菌株或不同物种的同源序列,优先给出那些高度保守的结构区域,为实验人员缩小靶点搜索范围。它也能在数据库挖掘中批量注释新测序基因组里的 RNA 元件。
1. F_cons:结构保守性分数,数值越高说明这个折叠在家族中越常出现。
2. fold_k:第 k 条同源序列预测出的二级结构。
3. fold_ref:参考序列的结构,相当于相册里最标准的一张合影。
4. 近似符号:结构比较很难完全相等,通常用相似度阈值判断“是不是同一个姿势”。
5. 取平均:对所有同源序列求平均,得到整个家族的结构保守程度。
简单来说,EvoFold 让研究者能在海量序列中找出“一直没变的折叠姿态”。这些姿态往往就是功能的关键,也是药物设计最值得瞄准的靶点。
效率优化
相册越多,证据越足,但整理也越累。RNA 折叠的动态规划本来就是 O(n³),如果再加上 K 条序列的共变计算,EvoFold 的代价会显著上升。此外,序列太相似会带来假阳性;序列太少则共变信号不确定。现实世界里的 EvoFold 并不总是“照片越多越好”,而是要在灵敏度、特异性和速度之间做权衡。
1. n:RNA 序列的长度,也就是需要折叠的碱基数。
2. K:同源序列的条数,也就是参与分析的家族照片数量。
3. O(·):渐进复杂度记号,表示计算量随输入规模增长的速度。
4. n³:单条序列折叠动态规划的典型复杂度,长度翻倍,计算量可能涨八倍。
5. K·n³:共变分析常常要对多条序列同时建模,因此总代价近似为序列数与 n³ 的乘积。
优化策略包括预计算互信息矩阵、使用保守区域过滤、采用带状动态规划、对近缘序列去冗余。EvoFold 的研究价值也在于:如何在保持精度的同时降低计算成本。这与现代深度学习模型追求效率是同一个命题。
科学价值
把 EvoFold 放回 AI for Science 的大图里,它和 AlphaFold 像一对互补的英雄。AlphaFold 用进化信息和深度网络预测蛋白质三维结构;EvoFold 更早地证明了:同源序列的共变模式足以推断 RNA 配对结构。两者都信奉同一句话:进化早就把答案写在了序列里。
EvoFold 不是深度学习模型,却给了后来者重要启发:与其只从单条序列硬学特征,不如先利用多序列比对构造“进化特征”。后来的 RNA 语言模型、蛋白质共变网络,都能看到这种思想的影子。
1. D:同源序列集合,相当于整本家族相册。
2. S:一个候选二级结构,代表“谁和谁牵手”的安排。
3. Pr(seq_k|S):在给定结构下,这条序列出现的概率;结构越合理,序列就越容易被解释。
4. log:取对数可以把连乘变成求和,方便计算,也避免概率过小。
5. arg max:在所有候选结构里,挑选总概率最高的那个,也就是最符合全家福证据的答案。
从“家族合影里的同步换装”到“全基因组的 RNA 元件扫描”,EvoFold 用一套优雅的数学框架,把进化时间变成了预测结构的力量。它提醒我们:在 AI 时代,最强大的先验知识,往往藏在生命自己书写的历史里。
AI 应用场景
非编码基因组扫描
阶段:特征工程与候选区域识别
解决的问题:传统基因组注释以蛋白质编码基因为主,非编码 RNA 往往缺乏序列相似性,很容易被当成“垃圾 DNA”。EvoFold 利用进化保守的二级结构模式,把“结构是否被自然选择保留”变成可计算的特征,从而在茫茫基因组中圈出候选功能元件。
具体案例:对细菌基因组做全基因组筛选,输入多个近缘菌株的同源序列,EvoFold 输出一批保守发夹结构,其中许多是核糖开关、tRNA 或 sRNA 的候选区域,后续再用基因敲除实验验证。
RNA药物靶点结构解析
阶段:结构预测与下游靶点分析
解决的问题:药物设计需要知道 RNA 上哪里形成了可结合的口袋,但 RNA 实验结构稀少。EvoFold 不需要晶体或冷冻电镜,只要有多条同源序列,就能给出保守二级结构,帮助研究者在序列突变较多的区域中找到稳定靶点。
具体案例:针对病原菌的核糖开关,收集多个临床菌株的基因序列,用 EvoFold 预测保守开关结构,再结合分子对接筛选小分子化合物,缩小湿实验验证范围。
Python 演示
import mathfrom itertools import combinations BASES = "ACGU"CANON = {("A", "U"), ("U", "A"), ("G", "C"), ("C", "G"), ("G", "U"), ("U", "G")} def count_col(seqs, col): cnt = {b: 0 for b in BASES} for s in seqs: cnt[s[col]] += 1 return cnt def pair_support(seqs, i, j): n = len(seqs) hit = 0 for s in seqs: if (s[i], s[j]) in CANON: hit += 1 return hit / n def mutual_information(seqs, i, j): n = len(seqs) col_i = count_col(seqs, i) col_j = count_col(seqs, j) mi = 0.0 for x in BASES: for y in BASES: pxy = 0.0 for s in seqs: if s[i] == x and s[j] == y: pxy += 1.0 pxy /= n if pxy == 0: continue mi += pxy * math.log2(pxy / ((col_i[x] / n) * (col_j[y] / n))) return mi def evofold_like_scan(seqs, top_k=4): ncol = len(seqs[0]) results = [] for i, j in combinations(range(ncol), 2): ps = pair_support(seqs, i, j) mi = mutual_information(seqs, i, j) score = mi * ps results.append((score, i, j, ps, mi)) results.sort(reverse=True) return results[:top_k] def main(): aligned_seqs = [ "GCAGUCAC", "GCGGUCAC", "AUAGUCAC", "AUACUCAC", "GCAUUCAC", "GCGUUCAC", "AUAUUCAC", "AUGCUCAC", ] print("Top candidate base-pair columns from EvoFold-style scan:") for score, i, j, ps, mi in evofold_like_scan(aligned_seqs): print(f"col {i + 1}-{j + 1}: score={score:.3f}, pair_support={ps:.2f}, MI={mi:.3f}") if __name__ == "__main__": main()
CANON = {("A", "U"), ("U", "A"), ("G", "C"), ("C", "G"), ("G", "U"), ("U", "G")}定义“搭配手册”,即规则碱基配对集合。def count_col(seqs, col)统计某一列四种碱基的出现次数,相当于统计某个人穿过几种颜色衣服。def pair_support(seqs, i, j)计算两列在所有序列中保持配对的比率,衡量“家庭合影里的默契度”。def mutual_information(seqs, i, j)用互信息捕捉两列的共变信号,判断它们是否真的在同步换装。mi += pxy * math.log2(pxy / ((col_i[x] / n) * (col_j[y] / n)))把每一对碱基组合的依赖信息累加,共享变越强,MI 越高。for i, j in combinations(range(ncol), 2)枚举所有可能的列对,避免重复比较。score = mi * ps用配对支持度与互信息相乘,既看是否互补,也看是否共变。
常见误区
误区EvoFold 名字里带“Fold”,又常和 AlphaFold 放在一起,不少人以为它也是深度学习模型,用神经网络直接预测 RNA 三维结构。
正解EvoFold 更接近“概率模型 + 动态规划”的比较基因组学方法。它的核心输入是多条同源 RNA 序列的比对,核心信号是共变,而不是深度网络从单条序列里自动学特征。AlphaFold 擅长蛋白质三维结构,EvoFold 擅长 RNA 二级结构与进化保守元件。
为何常见:AlphaFold 名声太大,“AI+结构预测”容易让人把所有结构预测工具都当成同一种深度学习产品。
误区只要两列之间 MI 很高,就一定是 A-U 或 G-C 配对,可以直接画进二级结构。
正解MI 高只是强证据,不是铁证。共享祖先导致的谱系相关、偶然的平行突变,都可能制造虚假共变。EvoFold 需要结合系统发育背景、结构冲突检查和保守性过滤,才能把候选配对变成可信结论。
为何常见:人脑天然容易被“两个变化很同步”吸引,容易把相关性当成因果关系。
误区预测 RNA 结构嘛,给我一条序列,EvoFold 就能像 RNAfold 一样直接输出结果。
正解EvoFold 的共变分析必须建立在多序列比对之上。没有家族相册,就看不到“同步换装”,也算不出 MI。如果只有一条序列,热力学方法反而更合适。
为何常见:普通用户接触的大多是单序列折叠工具,默认所有结构预测工具都可以“一条序列跑到底”。
误区EvoFold 比热力学方法准,所以以后预测 RNA 结构只要进化信号,不需要能量模型。
正解两者互补。序列太少、同源家族不明显时,热力学参数依然重要;EvoFold 的简化打分也常包含自由能约束。进化信号解决“哪些结构被保留”,热力学解决“单条序列如何折叠”,合用才更稳。
为何常见:对比实验里 EvoFold 在某些保守 RNA 上更优,容易被过度解读成“全面替代”。
面试题
Q1. EvoFold 主要利用哪种信号预测 RNA 二级结构?
- A.同源序列共变信号← 正确答案
- B.单条序列热力学能量
- C.蛋白质三级坐标
- D.人工实验标注结果
答案:A。EvoFold 的核心不是看单条序列的能量,而是看多个同源序列的同步突变。共变信号能揭示哪些位置在进化中始终配对。
Q2. RNA 二级结构中,A 通常与哪个碱基配对?
- A.与碱基 U 形成 A-U← 正确答案
- B.与碱基 T 形成 A-T
- C.与碱基 G 形成 A-G
- D.与碱基 C 形成 A-C
答案:A。RNA 不含 T,A 的经典搭档是 U,形成 A-U 配对。家族相册里的“同步换装”主要就体现在 A-U 与 G-C 这类规范配对中。
Q3. 两个比对列之间的互信息很高,最合适的解读是?
- A.两列在序列上前后相邻
- B.两列必然形成假结结构
- C.两列可能共同进化并配对← 正确答案
- D.两列一定编码一种蛋白质
答案:C。高互信息说明两列的碱基变化相互依赖,可能来自结构配对。但它只是强证据,不是绝对结论,更不能推出蛋白质编码或假结。
Q4. 为什么 EvoFold 在保守非编码 RNA 上常优于热力学方法?
- A.它不需要任何序列作为输入
- B.它纳入了进化上的共变证据← 正确答案
- C.它能直接测定 RNA 结构
- D.它只考虑自由能最低态
答案:B。热力学只从单条序列推导最低能量,而 EvoFold 利用多物种共变信息,相当于看了大量真实存在的“家族合影”,所以对保守 RNA 更准。
Q5. EvoFold 预测流程的第一步通常是?
- A.用冷冻电镜确定结构
- B.直接训练深度神经网络
- C.只对单条序列做能量最小化
- D.收集并比对同源 RNA 序列← 正确答案
答案:D。没有同源序列就没有共变分析。EvoFold 的第一步是收集足够多的同源 RNA 并做多序列比对,后续才能计算协方差。
Q6. 下列哪一项最符合 EvoFold 的简化打分思路?
- A.只用序列间的字符距离
- B.仅用随机森林分类
- C.组合互信息和自由能约束← 正确答案
- D.完全依赖实验测定结构
答案:C。EvoFold 类方法通常把进化共变分数与结构模型结合,有时也会参考热力学约束。它不依赖实验结构,也不是随机森林这类通用分类器。
Q7. 协方差分析需要哪些条件或数据?
- A.多条同源序列的比对← 正确答案
- B.仅一条目标序列
- C.两个位置的联合频率← 正确答案
- D.考虑系统发育背景← 正确答案
答案:ACD。多条序列比对是前提,联合频率是计算 MI 的基础,系统发育背景用于降低假阳性。只有一条序列算不出共变,因此 B 错误。
Q8. 以下哪些是 EvoFold 的真实优势?
- A.适合全基因组扫描保守 RNA← 正确答案
- B.能破解没有同源序列的短序列三维结构
- C.可比单序列热力学更好地利用进化信号← 正确答案
- D.完全替代湿实验验证
答案:AC。EvoFold 擅长从多序列比对中发现保守 RNA 结构,也能在保守家族上优于单序列热力学。但没有同源序列时发挥受限,预测结果仍需要实验验证。
Q9. EvoFold 面临哪些实际挑战?
- A.同源序列太少时信号不稳定← 正确答案
- B.随机共变会造成假阳性← 正确答案
- C.折叠搜索的计算成本较高← 正确答案
- D.无需任何计算优化
答案:ABC。序列少了信号不稳,序列太近又容易假阳性,动态规划搜索代价也高。因此 EvoFold 需要预计算、去冗余和系统发育校正等优化。
Q10. 关于 EvoFold 与 AlphaFold,哪种说法更准确?
- A.两者都说明进化信息能指导结构预测← 正确答案
- B.两者都用协方差预测 RNA 三级结构
- C.EvoFold 是 AlphaFold 的直接升级产品
- D.AlphaFold 使用协方差预测小分子
答案:A。AlphaFold 与 EvoFold 虽然技术路线不同,但都从进化信息中提取结构约束。EvoFold 不是 AlphaFold 的升级版,AlphaFold 也主要解决蛋白质而非小分子。