MIT-7-91J-计算生物学笔记-全-
MIT 7.91J 计算生物学笔记(全)
001:课程介绍与概述

在本节课中,我们将对《计算与系统生物学基础》这门课程进行全面的介绍。我们将了解课程的历史背景、核心内容、教学结构以及各项要求,为后续的学习奠定基础。


课程背景与历史脉络
上一节我们介绍了课程的基本框架,本节中我们来看看计算与系统生物学领域是如何发展起来的。这是一个跨学科的领域,它融合了生物学、计算机科学、统计学和数学等多个学科。
计算生物学是生物学的一个分支,它使用计算策略来理解生物学问题,就像遗传学或生物化学一样。生物信息学则更侧重于工具的开发,而计算生物学侧重于使用这些工具。整个领域建立在信息学、计算机科学、统计学和数学的基础之上。
以下是该领域按年代发展的简要概述:
- 20世纪70年代:早期工作集中于蛋白质序列比较,以理解其功能、结构和进化。关键贡献包括Margaret Dayhoff开发的氨基酸替换矩阵(如PAM系列),以及Carl Woese和Russ Doolittle通过核糖体RNA序列分析对生命进化树的重构。
- 20世纪80年代:随着数据库扩展,序列比对和搜索算法变得至关重要。FASTA、BLAST(由David Lipman等人开发)和Smith-Waterman等快速算法被广泛使用。同时,RNA二级结构预测(Nussinov和Zuker)和文献数据库(如PubMed)也取得了进展。
- 20世纪90年代:微阵列技术和首批基因组序列推动了领域发展。隐马尔可夫模型(HMM)被引入用于序列标记问题(如基因识别)。比较基因组学和蛋白质结构预测(如David Baker的Rosetta算法)也取得了重要进展。
- 21世纪00年代:人类基因组计划完成,带来了基因组组装、注释等巨大计算挑战。高通量技术(如微阵列)使得大规模测量基因表达成为可能,系统生物学和合成生物学作为新领域诞生。例如,Eric Davidson构建了海胆发育的基因调控网络模型,而合成生物学则设计了人工基因网络(如抑制振荡器)。
- 21世纪10年代至今:第二代测序技术彻底改变了生物学研究,使得基因组学、转录组学、蛋白质-DNA相互作用(如ChIP-seq)等应用变得常规。生物图像信息学和更复杂的系统模型继续推动领域前沿。
课程目标与结构
了解了领域背景后,我们来看看本课程的具体设置。本课程旨在帮助学生理解计算生物学的基础方法,从而能够阅读和理解该领域的大部分研究文献。对于研究生版本,课程还额外设定了帮助学生接触该领域研究、并完成一个小型计算生物学研究项目的目标。
本课程不是一门专注于系统生物学、合成生物学或算法设计的课程,尽管会涉及相关主题。课程6874版本包含额外的算法内容。
课程内容分为六个主要专题:
- 基因组分析一:经典计算生物学(局部比对、全局比对等)。
- 基因组分析二:面向第二代测序的新方法(快速读段映射、基因组组装等)。
- 生物功能建模:序列模体、隐马尔可夫模型、RNA二级结构。
- 蛋白质组学与蛋白质结构:蛋白质相互作用、结构预测。
- 调控网络:不同类型的基因调控网络模型。
- 计算遗传学:基因组功能注释、数量性状位点、疾病关联分析。
课程将由多位教授共同授课,并包含来自George Church、Doug Lauffenburger和Ron Weiss的客座讲座。
课程要求与评分
明确了学习内容后,我们需要了解如何完成这门课程。课程有本科生和研究生多个版本,请注意区分。
核心要求包括:
- 先修知识:扎实的生物学背景,并熟悉定量方法。不要求有编程经验,但作业会涉及Python编程,助教将提供帮助。
- 教材:《Understanding Bioinformatics》(M. Zvelebil & J. Baum)为推荐参考书,涵盖部分主题。课程核心内容以讲座和作业为准。
- 概率统计基础:课程提供了专门的《概率统计入门》资料,涵盖P值、概率分布(如泊松分布、极值分布)等关键概念。学生需自行掌握这些基础知识。
作业与考试安排如下:
- 问题集:共有5次问题集,总分120分,但最高计为100分。此设计允许学生在特殊情况(如面试)下,即使错过一次作业,仍可通过其他作业获得高分。迟交24小时内可获50%分数。
- 考试:共有两次80分钟考试,分别覆盖前半部分和后半部分内容,不累积。
- 项目(仅研究生版本):研究生需组队(1-5人)完成一个研究项目,包括选题、研究计划、最终报告和口头展示。
- 评分构成:
- 本科生版本:作业36%,考试62%,同行评议(听报告并评论)2%。
- 研究生版本(7.91/20.490/HST):作业30%,考试48%,项目20%,同行评议2%。
- 研究生版本(6.874):作业25%,考试48%,项目20%,额外AI问题5%,同行评议2%。
- 课堂参与积极者可获得1%的额外加分。
关于协作的规则:
鼓励讨论问题集,但必须独立撰写解决方案和代码。提交相同或近乎相同的作业将导致双方得零分。
专题内容预览
最后,我们来简要预览一下各位教授负责的核心教学内容。
Chris Burge教授(专题1 & 3)将涵盖:
- 测序技术、局部序列比对(BLAST算法及其统计显著性,涉及极值分布)。
- 全局序列比对及空位罚分(Needleman-Wunsch, Smith-Waterman动态规划算法)。
- 比较基因组学分析基因调控。
- 模体发现(Gibbs抽样算法)、隐马尔可夫模型以及RNA二级结构预测。
David Gifford教授(专题2 & 6)将涵盖:
- 高通量基因组分析:序列读段快速映射与索引构建、基因组组装算法、蛋白质-DNA相互作用分析(如ChIP-seq)、RNA测序与异构体分析。
- 计算遗传学:基因组功能注释、数量性状位点建模、人类疾病全基因组关联研究分析。
Ernest Fraenkel教授(专题4 & 5)将涵盖:
- 蛋白质组学与结构:蛋白质结构预测(从专用硬件到众包游戏等多种方法)、蛋白质-蛋白质相互作用预测。
- 调控网络:从蛋白质-DNA相互作用到基因调控网络的重建、遗传相互作用网络、以及可计算模型(如逻辑模型、贝叶斯网络)。

总结

本节课中,我们一起学习了《计算与系统生物学基础》课程的总体介绍。我们回顾了该领域的发展历史,明确了课程的目标是掌握理解前沿文献的基础计算方法。我们详细了解了课程由六大专题构成的结构、不同版本(本科/研究生)的要求差异、以及作业、考试、项目的具体安排和评分标准。最后,我们预览了各位教授将讲授的核心内容。请确保您注册了适合自己需求的课程版本,并准备好开始这段探索生物学与计算科学交叉领域的旅程。
002:局部比对(BLAST)与统计学


以下内容基于知识共享许可协议提供。您的支持将帮助麻省理工开放课件持续提供高质量免费教育资源。如需捐款或查看来自数百门MIT课程的更多资料,请访问 MIT OpenCourseware 网站 OCw.MIT.Edu。

📚 概述
在本节课中,我们将首先简要回顾经典的桑格测序和下一代(第二代)测序技术,这些技术为我们即将讨论的分析方法提供了大量数据。随后,我们将介绍局部比对,特别是BLAST算法,以及与之相关的统计学原理。
🧬 第一部分:测序技术
1.1 经典桑格测序
首先,我们来讨论测序。测序主要在DNA水平进行。无论原始材料是否为RNA,通常都会转化为DNA并在DNA水平进行测序。因此,我们常将DNA视为一个字符串。但需记住,DNA实际上具有三维结构,如左图所示。通常,将其视为二维表示有助于理解,如中间图所示,其中展示了碱基及其氢键等。
测序的化学原理与单个碱基的化学性质密切相关。这里主要有三种相关类型:核糖核苷酸、脱氧核糖核苷酸以及用于桑格测序的双脱氧核糖核苷酸。如何区分这些结构?一个记忆方法是观察核糖上碳原子的编号:碳1连接碱基,碳2在RNA中连接OH,在DNA中连接H,碳3是延伸的关键位点,碳4和碳5连接磷酸基团,形成糖-磷酸骨架。碳3是链延伸时添加下一个碱基的位置。

如果给DNA聚合酶一个模板和一些双脱氧核苷酸,会发生什么?链将无法延伸,因为双脱氧核苷酸缺少3‘羟基。这正是经典桑格测序的基础,弗雷德里克·桑格因此于1980年获得诺贝尔奖。该技术利用了双脱氧核苷酸终止链延伸的特殊性质。

设想我们有一个模板DNA(黑色),我们想测定其序列。我们还有一个引物。引物按5‘到3’方向书写。末端是已知序列,模板中有与引物互补的序列。在传统桑格测序中,通常将模板克隆到载体中。然后进行四个独立的测序反应。
以第一个反应(含ddGTP)为例。反应混合物中应包含什么?需要模板、引物、所有四种常规脱氧核苷酸以及一种双脱氧核苷酸(如双脱氧G)。双脱氧核苷酸的浓度应远低于常规核苷酸,例如1%。原因在于,如果浓度相等,每次遇到模板中的C时,都有50%的几率终止,导致信号迅速衰减,只能测序开头的几个碱基。
通常使用放射性标记的引物。然后跑胶。上图是一个理想化的凝胶图像。在加入双脱氧G的泳道中,最小的产物仅比引物长一个碱基,这是因为模板此处有一个C,链在此终止。下一个C出现在几个碱基之后,因此出现间隔。通过从下往上读取凝胶,可以读出序列。第一个碱基是C(与G互补),第二个碱基是A(与T互补),依此类推。
实际测序凝胶如图所示。需要跑四个泳道。读取长度受限于条带间距:短片段差异明显,但长片段(如500与501碱基)差异极小,导致无法分辨,这从根本上限制了读长。
1.2 更高效的桑格测序方法

能否用单泳道完成桑格测序?可以使用四种不同荧光标记的双脱氧核苷酸。根据链终止的位置,会发出不同颜色的荧光。所有反应可在同一泳道中进行。这就是90年代至今重要的“染料终止子测序”技术,也是ABI 3700测序仪的基础,该仪器是90年代末和21世纪初基因组测序的主力。

另一项创新是用毛细管取代大凝胶。DNA在毛细管顶部的凝胶中加载,在底部检测四种荧光,读出序列。这大大缩小了测序所需体积。

1.3 下一代测序
下一代测序一次只读取一个碱基,速度可能较慢,但具有大规模并行性,这是其巨大优势。其每碱基成本比传统测序低数个数量级。
基本思想是将模板DNA分子固定在某种表面(通常是流动池)上。有单分子方法,也有通过局部扩增产生簇的方法。然后使用修饰的核苷酸(常带有荧光标记)依次掺入,同时对数百万个模板分子进行成像。
不同技术的主要区别在于DNA模板类型、使用的修饰核苷酸以及成像和分析方法。以下是几种主要技术:
- 454测序(现属罗氏):基于乳液PCR。每个微珠携带独特的模板分子,通过局部PCR扩增。使用焦磷酸测序法,一次添加一种dNTP,通过检测发光确定掺入的碱基。
- Illumina测序:在流动池表面进行。模板单分子通过桥式扩增形成簇。每次循环添加所有四种被3‘阻断且带有不同荧光标记的dNTP,聚合酶只能掺入一个碱基。成像后,切除荧光基团和3’阻断基团,进行下一轮。
- Helicos测序:类似Illumina,但是单分子测序。
- Pacific Biosciences测序:DNA聚合酶固定在表面,模板穿入其中。使用带有荧光标记的dNTP,通过检测荧光停留时间判断是否掺入。该技术错误率较高,但读长较长。
Illumina测序的化学原理延续了桑格终止的思想,但可逆。核苷酸被3‘阻断基团和荧光基团修饰。掺入、成像后,切除这些基团,使链能够继续延伸。

实际测序图像显示不同荧光通道下的簇。簇的大小不一,因为不同DNA分子的PCR扩增效率不同。
当前Illumina HiSeq 2000的吞吐量:一个流动池有8个通道,每个通道可产生约2亿条读长,读长通常为100碱基。这相当于每个通道产出约1600亿个碱基。成本约为每通道2000-3000美元(仅试剂)。这远超人类基因组(30亿碱基)的测序需求。因此,通常使用条形码将多个样本混合在一个通道中测序。

🔍 第二部分:序列比对与局部比对
2.1 比对的意义
一旦从测序仪生成读长,通常需要将其比对到基因组上。例如,在RNA-seq中,需要确定读长来自哪个基因。其他原因包括:序列组装(通过重叠序列推断更长序列)、寻找同源基因(如疾病基因研究中,在模式生物中寻找同源物以进行功能研究)。

2.2 局部比对问题
我们将首先讨论局部比对,即寻找短片段的高相似性区域,不要求整个序列对齐。

举例:研究一个45碱基的人类非编码RNA,想在小鼠中寻找同源物。使用NCBI BLAST搜索后,得到一个匹配结果:查询序列1-45位与小鼠染色体某段403-447位匹配,其中40个匹配,5个错配。
问题:这个匹配是否显著?小鼠基因组有27亿碱基。这样的匹配是否可能偶然发生?如何判断?
首先需要定义一个评分系统。最简单的系统是:匹配得+1分,错配得-1分。这对应于一个4x4的矩阵,对角线为1,其余为-1。
如何判断显著性?一种方法是随机打乱查询序列多次,每次搜索基因组,得到最佳得分的分布,然后看实际得分是否显著高于该分布。但存在解析理论可以更快地确定显著性。
另一个问题是:如何在实际中找到这个最佳匹配?即设计算法在数据库中找出与查询序列最高得分的无空位局部比对片段。
2.3 无空位局部比对算法
假设查询序列很短,数据库很长。目标是找到最高得分的连续匹配片段。不允许插入/缺失(无空位)。
考虑一种比对“寄存器”,即查询序列的碱基1对应数据库的碱基1。沿着这条对角线,逐个检查是匹配(+1)还是错配(-1)。目标是找到累计得分最高的连续片段。
算法思路:定义两个变量。
maxS:迄今为止找到的最高片段得分,初始为0。cumulative_score:当前累计得分,初始为0。
然后遍历数据库(对于每个可能的起始位置,即每个“寄存器”),对于每个寄存器,遍历查询序列长度,更新累计得分:cumulative_score += score(query[i], subject[j])。
同时,记录累计得分曾达到的最小值(last_min)。每当累计得分上升时,计算 cumulative_score - last_min,这代表从上次最低点至今的净增分,可能是一个候选的高分片段。如果这个值大于当前的 maxS,则更新 maxS 并记录位置。
该算法的时间复杂度是 O(mn),其中m是查询长度,n是数据库长度。因为本质上需要比较查询的每个碱基和数据库的每个碱基(在所有的偏移位置上)。这是BLAST类算法速度的基础。
该算法要求平均得分期望为负,以确保累计得分有向下的漂移,从而产生向上的“激增”作为高分片段。在+1/-1评分下,由于错配概率3/4,平均得分为负。
2.4 局部比对的统计学
Karlin 和 Altschul 为该问题发展了一套理论。对于使用整数评分、期望得分为负的局部比对,最高得分超过某个阈值X的概率服从极值分布(Gumbel分布)。
公式为:P(S > x) ≈ 1 - exp(-K m n e^{-λx})
其中:
- m, n 是查询和数据库的长度。
- x 是观察到的得分。
- K 和 λ 是两个正常数参数,取决于评分矩阵和序列组成。
- λ 是关键参数,因为它与得分x相乘。
λ 是以下方程的唯一正解:
Σ_i Σ_j p_i r_j e^{λ s_{ij}} = 1
其中 p_i 是查询序列中碱基 i 的频率,r_j 是数据库中碱基 j 的频率,s_{ij} 是评分矩阵。
λ 的计算示例
假设序列组成均匀(所有 p_i = r_j = 1/4),评分矩阵为匹配+1,错配-1。
代入方程:
4种匹配项:(1/4)(1/4)e^{λ} * 4 = e^{λ}
12种错配项:(1/4)(1/4)e^{-λ} * 12 = 3e^{-λ}
方程:e^{λ} + 3e^{-λ} = 4
令 x = e^{λ},则方程化为二次方程:x + 3/x = 4 => x^2 - 4x + 3 = 0
解得 x=3 或 x=1。λ 为正,故取 x=3,所以 λ = ln(3)。


评分缩放的影响
如果将评分全部加倍(匹配+2,错配-2),新的 λ‘ 会变为原来的一半(λ’ = λ/2)。因为评分s_{ij}加倍,为了保持方程 Σ p_i r_j e^{λ‘ s_{ij}’} = 1 成立,需要 λ‘ 减半。这样,在显著性公式中,λx 的乘积保持不变,因此统计显著性不变。λ 实质上是评分的缩放因子。
2.5 如何选择DNA评分矩阵?
一个简单的通用矩阵是:匹配得1分,所有错配得相同的负分M。M必须是负数,以确保期望得分为负。
M应取何值?这很重要。它决定了算法将找到何种相似度的片段。根据 Karlin-Altschul 理论,高分比对片段中碱基i与j配对的比例 Q_{ij} 由以下“目标频率方程”给出:
Q_{ij} = p_i p_j e^{λ s_{ij}}
如果我们希望找到具有一定百分比一致性(r)的片段,可以反过来确定评分。假设序列组成均匀(p_i=1/4),设匹配得分 s_{ii}=1,错配得分 s_{ij}=M。可以推导出:
M = ln( 4(1-r)/3 ) / ln(4r)
代入不同的 r 值:
- 若想找到 75% 一致性的片段,M ≈ -1。
- 若想找到 99% 一致性的片段,M ≈ -3。
这意味着,当希望找到相似度更高的片段时,需要使用更严厉的错配罚分。这直观上是合理的:要识别高度相似的区域,需要惩罚错配更重,以避免低相似度区域产生高分。






📝 总结
本节课中,我们一起学习了:
- 经典桑格测序的原理,包括双脱氧核苷酸链终止法和毛细管电泳的发展。
- 下一代测序的核心思想——大规模并行,并简要介绍了454、Illumina等主要技术平台的特点。
- 局部比对的基本概念和意义。
- 寻找无空位局部最佳比对的算法思想及其O(mn)时间复杂度。
- 局部比对得分的统计学显著性评估,即Karlin-Altschul极值分布理论,以及关键参数λ的计算和意义。
- 如何根据期望找到的片段相似度(百分比一致性)来选择评分矩阵中的错配罚分。


下节课我们将讨论带有空位的全局比对。
003:蛋白质序列全局比对(NW、SW、PAM、BLOSUM)



概述
在本节课中,我们将要学习蛋白质序列的全局比对。我们将回顾上次讨论的局部比对,并引入全局比对的算法,特别是Needleman-Wunsch算法和Smith-Waterman算法。同时,我们将探讨与蛋白质序列相关的更复杂的评分矩阵,如PAM和BLOSUM矩阵,理解它们如何基于氨基酸的进化替换频率来优化比对结果。
回顾:局部比对与测序技术
上一节我们介绍了局部比对及其相关的统计学,以及Sanger测序和二代测序技术。在局部比对部分,我们引入了一个类似BLAST的简单算法,并讨论了目标频率、错配罚分等概念。
一个关于局部比对算法的小技巧是,当累计分数变为负数时,可以将其重置为零。这种方法更直观,最高分片段就是算法运行过程中达到的最高点。
从DNA到蛋白质:为何进行翻译搜索?
在讨论蛋白质比对之前,我们需要理解为何有时需要对编码序列进行翻译搜索。
当比较不同物种的序列时,例如将人类EST序列与小鼠基因组比对,直接进行核苷酸搜索可能效果不佳。虽然核苷酸序列可能只有约80%的相似性,但由于密码子简并性和蛋白质功能约束,对应的氨基酸序列相似性通常更高。因此,将核苷酸序列翻译成氨基酸序列后再进行搜索(例如使用tBLASTn或tBLASTx),往往能发现更可靠的同源关系。
以下是几种常见的BLAST变体及其用途:
- BLASTn:核苷酸查询序列对核苷酸数据库。
- BLASTp:蛋白质查询序列对蛋白质数据库。
- BLASTx:核苷酸查询序列(翻译为所有阅读框)对蛋白质数据库。
- tBLASTn:蛋白质查询序列对核苷酸数据库(翻译为所有阅读框)。
- tBLASTx:核苷酸查询序列(翻译)对核苷酸数据库(翻译)。

蛋白质序列比对的动机与挑战
我们进行蛋白质序列比对,最主要的原因是为了发现同源物。通常,序列相似性意味着功能和/或结构的相似性。当全长蛋白质的序列一致性超过30%时,这种推断通常是可靠的。在20%到30%的“模糊区域”,推断需要谨慎。低于20%时,通常不能仅凭序列相似性做出可靠推断。

需要强调的是,结构相似性并不一定意味着序列相似性或共同起源。进化压力可以导致不同谱系独立演化出相似的结构或形态,这被称为趋同进化。
比对类型:全局、局部与点阵图
根据序列之间的关系,我们需要选择不同的比对策略。
一种常见的可视化工具是点阵图,将一个序列放在X轴,另一个放在Y轴,当一定窗口内的残基相同时进行标记。
- 全局比对:适用于整个序列长度相似,仅存在少数插入/缺失的情况。它试图将两个序列从头到尾进行比对。
- 局部比对:适用于序列仅共享某些保守结构域或存在内部重复的情况。它寻找序列内部相似度高的片段,而不强制比对整个序列。
空位罚分:线性与仿射
在蛋白质或DNA比对中,我们经常需要处理插入或缺失(合称Indel),在比对中用“-”表示空位。
空位罚分有两种常见形式:
-
线性空位罚分:罚分与空位长度成正比。
罚分 = n * a(其中n是空位长度,a是每个空位的罚分,为负值) -
仿射空位罚分:引入空位开启罚分和空位延伸罚分,更符合生物学实际,因为一个插入/缺失事件可能产生不同长度的空位。
罚分 = G + (n * γ)(其中G是空位开启罚分,n是空位长度,γ是空位延伸罚分,均为负值)

通常,空位罚分比平均错配罚分更严厉,因为插入/缺失突变在进化中比替换突变更少见,对蛋白质结构的破坏也往往更大。

全局比对算法:Needleman-Wunsch
那么,如何找到最优的全局比对呢?这可以通过动态规划算法解决,即Needleman-Wunsch算法。
其核心思想是将大问题分解为小问题:计算序列1前 i 个残基与序列2前 j 个残基的最优比对分数 S(i, j)。通过填充一个矩阵,并利用以下递推关系,可以从左上角计算到右下角:
S(i, j) = max{ S(i-1, j-1) + σ(Xi, Yj), S(i-1, j) + a, S(i, j-1) + a }
其中:
σ(Xi, Yj)是残基Xi和Yj的匹配分数(来自评分矩阵)。a是空位罚分(负值)。
算法步骤:
- 初始化矩阵的第一行和第一列(累积空位罚分)。
- 按行或列填充矩阵,每个单元格的值基于其左上、上方、左方三个邻居的值计算得出,并记录来源方向。
- 矩阵右下角的值即为全局最优比对分数。
- 从右下角开始,沿记录的方向反向回溯至左上角,即可得到具体的比对结果(匹配、错配或空位)。
半全局与局部比对算法
- 半全局比对:适用于不惩罚末端空位的情况(例如,蛋白质核心区域保守而末端可变)。实现方法是将动态规划矩阵的边缘初始化为0,并从最后一行或列的最高分开始回溯。
- 局部比对:即Smith-Waterman算法。与Needleman-Wunsch的主要区别在于:
- 矩阵第一行和第一列初始化为0。
- 递推公式中增加一项“0”:
S(i, j) = max{ 0, S(i-1, j-1) + σ(Xi, Yj), S(i-1, j) + a, S(i, j-1) + a }。这允许在分数变负时重置,从新的位置开始。 - 从整个矩阵中的最高分开始回溯,而不是右下角。
- 对评分矩阵有要求:随机残基比对的期望分数必须为负,以确保高分片段具有统计学意义。
氨基酸替换矩阵:PAM
对于蛋白质序列,简单的相同/不同(1/0)评分系统并不理想。我们需要一个能反映氨基酸化学性质相似性和进化替换倾向的评分系统。
Dayhoff等人于1978年提出了PAM矩阵。其构建基于一个明确的进化模型:
- 收集一组高度同源(>85%一致性)的蛋白质序列比对。
- 从中统计出氨基酸相互替换的频率,构建一个反映1%氨基酸差异的模型矩阵(PAM1)。
- 将PAM1矩阵乘以自身N次,即可得到反映N%进化距离的PAMN矩阵(例如PAM250)。这里的250%意味着每个位点平均经历了2.5次替换。
PAM矩阵的特点:
- 对角线元素(相同氨基酸匹配)分值最高,且不同氨基酸的分值不同(如色氨酸W-W为17,丝氨酸S-S为2),反映了其保守程度的差异。
- 非对角线元素中,化学性质相似的氨基酸对(如天冬氨酸D-谷氨酸E)具有正分,而性质迥异的氨基酸对则为负分。
- 矩阵是对称的。
这种评分系统本质上是一种对数几率比,高分意味着该替换在进化中比随机发生更为常见。
马尔可夫链:进化模型的基础
PAM矩阵背后的进化模型可以用马尔可夫链来描述。马尔可夫链是一种随机过程,具有“无记忆性”,即下一状态的概率只取决于当前状态,而与历史状态无关。
在序列进化中,可以看作:子代序列某个位点的状态(碱基或氨基酸)仅由其亲代序列该位点的状态决定,而与更早的祖先状态无关。这种性质使得我们可以用转移概率矩阵(如PAM1)来描述短时间内的进化变化,并通过矩阵乘法模拟长时间的进化。

总结

本节课我们一起学习了蛋白质序列比对的核心内容。我们回顾了局部比对,并深入介绍了全局比对的Needleman-Wunsch算法和局部比对的Smith-Waterman算法,理解了动态规划在序列比对中的应用。我们探讨了线性与仿射空位罚分的生物学意义。最后,我们引入了氨基酸替换矩阵的概念,重点介绍了基于明确进化模型的PAM矩阵的构建原理,并了解了其背后的马尔可夫链思想。这些工具和概念是进行同源性搜索、蛋白质功能与结构预测的基础。
004:基因调控的比较基因组分析



在本节课中,我们将学习比较基因组学,这是一种通过比较不同物种的基因组序列来研究基因功能和调控的强大方法。课程将首先回顾序列比对和分子进化模型,然后通过一系列经典研究案例,展示如何利用简单的比较基因组学方法获得深刻的生物学洞见。
序列比对与进化模型回顾
上一节我们介绍了蛋白质序列的全局比对,包括Needleman-Wunsch和Smith-Waterman算法,以及空位罚分和PAM矩阵。本节中,我们来看看与PAM矩阵相关的马尔可夫进化模型,这不仅是理解序列进化的基础,也为后续课程中的隐马尔可夫模型做了铺垫。
马尔可夫模型与序列进化
马尔可夫模型的一个例子是DNA序列在连续世代中的进化。其核心观察是:特定位置在第n+1代的碱基,仅取决于第n代该位置的碱基。已知第n代的碱基后,再了解第n-1代的碱基不会提供额外信息,这就是马尔可夫性质。
以下是正式定义:
- 设S_n为第n代基因组中某个特定位置的碱基。
- 其进化过程可以用一个马尔可夫链描述。
- 该链可由一个4x4的矩阵P表示,其中元素P_ij代表从碱基i变为碱基j的条件概率。
在描述该位置的碱基状态时,最通用的方式是使用一个概率向量Q = (q_A, q_C, q_G, q_T),其元素之和为1。那么,第n+1代的状态向量Q_{n+1}可以通过第n代的状态向量Q_n右乘转移矩阵P得到:
Q_{n+1} = Q_n * P
若要从第n代推演到第n+K代,则相当于连续乘以矩阵P K次:
Q_{n+K} = Q_n * P^K
一个值得思考的问题是:如果从一个特定的初始向量Q(例如,100%是G)开始,经过长时间演化后,这个向量会趋近于什么?
Dayhoff矩阵与BLOSUM矩阵
Dayhoff通过分析高度相似(约85%一致)的蛋白质序列比对,计算了每个残基的突变率和相互间的突变概率,并将其缩放至平均突变概率为1%,最终通过取对数等处理得到了PAM1矩阵。通过矩阵乘法可以推导出PAM系列的其他矩阵(如PAM2、PAM250)。

然而,PAM矩阵在实际应用中存在一些问题。根本原因在于蛋白质在短期和长期的进化模式可能不同,简单的马尔可夫模型未能完全捕捉真实进化过程(如插入缺失、基因的出生与死亡等)。
大约20年前,Henikoff夫妇开发了新的矩阵。他们识别了称为“块”的区域,这些区域具有合理的相似性(但不如Dayhoff要求的高),利用更多、更丰富的蛋白质序列数据,推导出了新的参数。最终得到的BLOSUM62矩阵在比对中度或高度远缘的蛋白质序列时表现良好。
多序列比对的计算复杂度

我们讨论了成对序列比对,但在实践中,经常需要比对多条序列(如3条、5条或100条),以找出最保守的残基。
以下是关于计算复杂度的分析:
- 成对比对:使用Needleman-Wunsch或Smith-Waterman算法比对两条长度为N的序列,其计算复杂度为**O(N2)**。即使引入线性或仿射空位罚分,也只是增加了常数因子,复杂度仍为O(N2)。
- 三条序列比对:将其推广到三条序列,需要使用一个三维矩阵(立方体),计算复杂度变为O(N^3)。
- K条序列比对:对于K条序列,完全动态规划方法的复杂度将达到O(N^K),这对于大量序列(如20条)是完全不切实际的。
因此,实际中需要使用启发式方法,如ClustalW(及其本地版本ClustalX)。这些方法通常先进行两两比对,然后通过渐进方式组合这些比对。它们通常能给出合理的结果,但不保证是全局最优解。
分子进化与选择类型
现在,我们引入几个新主题。我们将更深入地讨论序列进化的马尔可夫模型,简要提及Jukes-Cantor等经典进化理论,并探讨序列可能经历的不同选择类型(中性、负向、正向),以及如何区分它们。这为今天的主要话题——比较基因组学——做了铺垫。
马尔可夫链的平稳分布
回到之前提出的问题:对于一个DNA序列进化的马尔可夫模型,如果从任何初始向量Q开始,多次应用转移矩阵P,当n趋于无穷时会发生什么?
理论表明,如果矩阵P的所有元素都大于0,且每行之和为1(这是一个定义良好的马尔可夫链),那么存在一个唯一的向量R,满足:
R = R * P
并且,无论初始向量Q是什么,极限 lim (n→∞) Q * P^n = R。向量R被称为平稳分布或极限分布。
让我们通过一些两字母(嘌呤R,嘧啶Y)的矩阵例子来理解:
例1:对称突变矩阵
P = [1-p, p]
[p, 1-p]
其平稳分布是 (0.5, 0.5)。直觉上,因为突变概率对称,最终会达到平衡。
例2:非对称突变矩阵
P = [1-p, p]
[q, 1-q]
其平稳分布是 (q/(p+q), p/(p+q))。平衡时,从R流向Y的流量(x * p)等于从Y流向R的流量((1-x) * q)。
例3:单位矩阵(无突变)
P = [1, 0]
[0, 1]
任何向量都是平稳的,但不一定存在唯一的极限分布。这违反了“所有元素大于0”的条件。


例4:交换矩阵(总是突变)
P = [0, 1]
[1, 0]
向量(0.5, 0.5)是平稳的,但系统不会收敛于它(会在(1,0)和(0,1)间振荡)。同样违反了定理条件。
Jukes-Cantor模型与进化距离校正
Jukes-Cantor模型是一个简单的DNA进化马尔可夫模型,假设每个碱基以相同概率α突变为其他三个碱基。因此,每个世代每个位点的总替换概率是3α。
通过求解,可以得到在时间t后,起始碱基仍保持不变的概率P(t)为:
P(t) = 1/4 + (3/4) * e^{-4αt}
其平稳分布是每个碱基各占1/4。
更有用的是,我们可以将观测到的序列差异比例D(即比对后不同位点的比例)与真实发生的替换数K联系起来:
K = -(3/4) * ln(1 - (4/3)D)
- 当D很小时,K ≈ D,因为几乎没有回复突变。
- 当D增大时,K > D,因为观测到的差异掩盖了一些发生过但又被回复的突变。
- 当D接近3/4时,K趋于无穷大,因为序列已完全随机化。
这个公式允许我们根据观测到的序列差异,估算真实的进化距离(替换数),这对于估算物种分化的时间非常重要。当然,这个模型忽略了选择、不同位点突变率差异等因素。更复杂的模型(如Kimura二参数模型、考虑CpG甲基化效应的模型)已被开发出来以更好地描述真实进化。
通过KA/KS比值推断选择类型
对于蛋白质编码序列(外显子),如果我们知道阅读框,可以区分两种替换:
- 同义替换:不改变所编码氨基酸的核苷酸变化。
- 非同义替换:改变所编码氨基酸的核苷酸变化。
通常计算两个值:
- KS:同义替换率(同义替换数 / 同义位点数)。
- KA:非同义替换率(非同义替换数 / 非同义位点数)。
然后计算比值 KA/KS。这个比值可以揭示基因所受的选择压力:
- KA/KS << 1:表明负向(纯化)选择。氨基酸序列很重要,大多数非同义突变有害,因此被自然选择剔除。绝大多数蛋白质编码基因属于此类。
- KA/KS ≈ 1:表明中性进化。可能原因包括:该序列不是真正的编码序列;该基因是假基因或功能已不再重要;或者同义和非同义位点受到的选择压力偶然平衡。
- KA/KS > 1:表明正向(达尔文)选择。氨基酸序列的改变对生物体有利。这种情况相对罕见,通常发生在宿主-病原体军备竞赛、适应新环境等情形中。
需要注意的是,此方法假设同义替换是中性的。如果同义位点也受到选择(如影响剪接、RNA结构或翻译效率),则解释起来需要更谨慎。
比较基因组学研究案例
比较基因组学不仅仅是一套工具,更是一个活跃的研究领域。通过巧妙的比较和简单的算法,往往能获得有趣的生物学发现。以下是一些经典案例,展示了如何利用比较基因组学来研究基因调控。
案例1:超保守元件的发现与功能
Bejerano等人(2004)试图通过比较人类、小鼠和大鼠的基因组,寻找在进化上受到极端约束的调控元件。他们将“超保守元件”定义为在这三个物种间100%相同的异常长的片段。
通过统计学分析(基于中性重复元件的分歧度估算背景突变率),他们发现基因组中约有数百个这样的超长完全一致区域。这些元件分布在:
- 约100个与已知蛋白质编码基因的外显子重叠。
- 约100个位于基因的内含子中。
- 其余位于基因间区域。
功能关联分析发现:
- 与外显子重叠的超保守元件相关的基因(I型),富集于RNA结合蛋白,特别是剪接因子。
- 与基因间超保守元件相邻的基因(II型),富集于转录因子,尤其是同源框转录因子。
随后,Eddy Rubin实验室测试了167个极端保守序列(包括部分超保守元件)的功能。他们将每个序列与一个报告基因(lacZ)连接,并导入小鼠胚胎。结果发现,45% 的序列能够驱动特定的基因表达模式,起到增强子的作用。这些增强子通常在发育中调控大脑、神经管等器官的形成。有趣的是,100%保守的元件和95%保守的元件在驱动表达模式的能力上没有显著差异。
那么,这些极端保守的序列从何而来?Bejerano在后来的一项研究中发现,一些哺乳动物的超保守增强子与腔棘鱼(一种“活化石”鱼类)基因组中的一种重复元件高度相似。这提出了一个有趣的可能性:一些随机插入基因组的重复元件(转座子),因其在基因组中广泛分布且序列相同,可能被“征用”为协调调控一组基因的“脚手架”。转录因子可以进化出结合这些元件的能力,从而快速建立大规模的基因表达调控网络。这解释了为何许多调控元件可能起源于自私的遗传元件。
至于外显子中的超保守元件,例如在剪接因子基因SFRS10中的一个618bp完全保守区域,它位于一个非编码外显子中。该外显子的包含会引入一个提前终止密码子,导致mRNA被无义介导的降解途径清除。这似乎是该基因通过可变剪接进行自我负反馈调控的一种机制,但为何需要如此长的完美保守序列仍是个谜。
案例2:microRNA靶向规则的揭示
microRNA是小的非编码RNA,通过与其靶标mRNA的3‘UTR区配对来抑制翻译或促进降解。Lewis等人(2005)试图通过比较基因组学找出microRNA靶向的规则。
他们利用当时可用的人类、小鼠、大鼠基因组比对,寻找与已知microRNA序列完全匹配的、在3‘UTR中保守的短片段。通过将真实microRNA的靶标数量与随机重排序列的靶标数量进行比较,他们发现了一个显著高于背景的信号。
关键发现是:信号仅集中在microRNA的5‘端,特别是第2到第8个碱基的位置。而microRNA的其他部分则没有显著信号。这提示,microRNA与靶标mRNA的配对中,其5‘端的“种子区”至关重要。后续对microRNA基因家族(如let-7家族)的比对也显示,microRNA的5‘端序列是最保守的,与此结论一致。
案例3:通过序列互补性揭示互斥剪接机制
果蝇的Dscam基因非常特殊,它有多个可变剪接外显子簇,每个簇中只有一个外显子会被选择性地包含进最终mRNA,这是一种互斥剪接。Graveley(2005)想弄清楚这种互斥选择的机制。
他通过对多种昆虫的Dscam基因座进行测序和比对,发现了一个高度保守的序列,位于外显子5的下游、可变外显子簇的上游。更仔细的观察发现,在每个可变外显子的紧上游,也存在一段彼此相似且跨物种保守的序列。
经过比对,他意识到:外显子5下游的保守序列,与所有可变外显子上游的序列在共识序列上是完全互补的。这立即提示了一个机制:剪接需要通过外显子5下游的这段序列与下游某个可变外显子上游的互补序列进行碱基配对,从而将外显子5直接连接到那个特定的下游外显子,并跳过所有其他选项。这一机制后来得到了实验证实。
这个案例表明,比较基因组学有时能直接提供分子机制的线索,而仅通过遗传学方法可能极难发现。
总结


本节课中,我们一起学习了比较基因组学的核心概念与方法。我们从序列比对和进化模型(马尔可夫链、Jukes-Cantor模型、KA/KS比值)的基础知识出发,理解了如何量化序列差异并推断进化压力。更重要的是,我们通过多个具体的研究案例,看到了比较基因组学这一强大工具的实际应用:从发现功能重要的超保守调控元件和增强子,到揭示microRNA的靶向规则,再到解析复杂的互斥剪接机制。这些案例表明,通过对不同基因组进行巧妙比较,即使使用相对简单的计算方法,也能获得关于基因调控的深刻生物学见解,从而推动整个计算生物学领域的发展。
005:文库复杂度与短读段比对(映射)

在本节课中,我们将要学习现代高通量生物学中的一个核心主题:如何理解并执行短读段比对,有时也称为读段映射。我们将首先探讨什么是测序文库以及文库复杂度的含义,然后深入了解一种被称为全文分钟大小索引(Burrows-Wheeler变换索引)的核心算法,最后学习如何利用这种索引进行高效的读段比对。
文库复杂度
上一节我们介绍了课程概述,本节中我们来看看什么是测序文库及其复杂度。
假设我们有一个DNA样本,其中包含多种不同的DNA分子。在制备文库时,我们会给这些分子的末端加上测序接头,以便进行测序。除了检查DNA浓度和片段大小(插入片段大小)外,评估文库的复杂度也至关重要。复杂度指的是文库中不同种类分子的数量。一个复杂度低的文库可能意味着实验失败。
当我们对文库进行测序时,会得到大量读段。我们是从文库中抽样读取这些分子。如果文库复杂度为 C,那么抽到任一特定分子的概率大致为 1/C。我们可以用二项分布来描述抽样过程,但当读段数量 n 非常大时(例如上亿条),二项分布变得难以处理,因此我们通常使用泊松分布来建模。
泊松分布模型假设每个独特分子被观察到的期望次数 λ = n / C。然而,这个简单模型存在一个问题:它假设所有分子在原始文库中的丰度是均匀的。实际上,由于重复序列、PCR扩增偏好性等原因,不同分子的初始拷贝数可能差异很大,这会导致分布过度分散。
为了更准确地建模,我们引入负二项分布(也称为伽马-泊松分布)。它比泊松分布多一个参数 k,用于描述原始文库分布的离散程度。通过拟合负二项分布,我们可以从观测到的读段数据中更准确地估计出文库的真实复杂度 C。
以下是估计复杂度的核心思路:
- 我们观测到被测序至少一次的独特分子数量
M。 - 通过拟合观测到的读段计数分布(例如使用负二项分布),我们可以估计出参数。
- 利用估计的参数,可以推断出未被观测到的分子(即测序次数为0的分子)数量,从而得到总复杂度
C的估计值。
这种估计方法对于质量控制非常有用。例如,它可以评估额外测序的边际价值:通过分析已有数据的分布,可以预测再测序一定数量读段能发现多少新的独特分子。如果文库分布高度偏斜(k值小),那么额外测序的收益会迅速减少。
Burrows-Wheeler变换索引
上一节我们讨论了如何评估测序数据的质量,本节中我们来看看如何处理这些海量的短读段数据,即如何将它们快速比对到参考基因组上。
核心挑战是:给定一个大型参考基因组(如人类基因组,约30亿碱基对)和数亿条短读段,我们需要高效地找出每条读段在基因组中的位置。传统的Smith-Waterman等动态规划算法因时间复杂度太高而无法应对此规模的数据。
因此,我们需要一种能够快速查找的索引结构。这里介绍Burrows-Wheeler变换及其构建的全文索引。
Burrows-Wheeler变换 是一种对原始字符串(如参考基因组序列)进行的可逆变换,能极大地促进子串搜索。其构建步骤如下:
- 在字符串
T末尾添加一个特殊的结束符$(在排序中优先级最高)。 - 生成字符串
T$的所有可能循环旋转。 - 将这些旋转字符串按字典序排序,形成一个矩阵。
- 取该矩阵的最后一列,即为BWT变换结果
L。
例如,对于字符串 T = “AACG”,添加 $ 后为 “AACG$”。其所有旋转及排序后的BWT矩阵如下所示($ 显示为 # 以清晰表示):
原始字符串及旋转:
0: AACG#
1: ACG#A
2: CG#AA
3: G#AAC
4: #AACG
排序后的BWT矩阵:
0: #AACG
1: AACG#
2: ACG#A
3: CG#AA
4: G#AAC
最后一列(BWT):G, #, A, A, C
这个看似混乱的最后一列 L 实际上包含了完整信息,并具有一个关键性质:最后一列中某个字符的第 i 次出现,与第一列中相同字符的第 i 次出现,对应着原始字符串中的同一个文本位置。这个性质是后续进行高效搜索和重建的基础。
为了利用BWT进行搜索和定位,我们还需要两个辅助数据结构:
- OCC数组:记录在字典序排序中,小于每个字符(A, C, G, T,
$)的字符串数量。这本质上指向了第一列中每个字符的起始行。 - 计数数组:需要快速计算在BWT列
L中,某个位置之前特定字符出现了多少次(即该字符在该位置的秩)。
通过 OCC 和 计数,我们可以定义 Last-to-First映射函数 LF(i):给定BWT列 L 中第 i 行的字符 c,LF(i) 计算出该字符在第一列中对应的行号。公式为:
LF(i) = OCC(c) + rank_c(L, i)
其中 rank_c(L, i) 是字符 c 在 L[0..i) 中出现的次数。
利用 LF 函数,我们可以从BWT列开始,通过“向左走”算法逆向重建出原始字符串。更重要的是,我们可以利用它进行高效的精确匹配搜索。
使用BWT索引进行读段比对
上一节我们构建了强大的BWT索引,本节中我们来看看如何利用它来比对短读段。
搜索算法核心思想是从读段的末端开始,向前(即从右向左)在索引中匹配。算法维护两个指针 top 和 bottom,它们定义了当前匹配的后缀在BWT矩阵中的行范围区间 [top, bottom)。
以下是搜索一个读段 Q 的基本步骤:
- 初始化
top = 0,bottom = len(BWT)(即整个后缀范围)。 - 从
i = len(Q)-1到0遍历读段的每个字符:- 获取当前字符
c = Q[i]。 - 在BWT列
L的[top, bottom)区间内,找到字符c出现的新行范围。这通过计算LF函数实现:new_top = OCC(c) + rank_c(L, top)new_bottom = OCC(c) + rank_c(L, bottom)
- 更新
top = new_top,bottom = new_bottom。 - 如果
top >= bottom,说明没有匹配的后缀,搜索失败。
- 获取当前字符
- 如果循环结束且
top < bottom,则匹配成功。区间[top, bottom)内的每一行都对应一个匹配的后缀。
匹配成功后,我们需要知道该后缀在原始基因组中的位置。我们通过存储一个后缀数组的采样来实现:并非存储每一行在基因组中的起始位置,而是每隔一定行数(如每32行)存储一个。定位时,从匹配到的行开始,反复应用 LF 函数“向左走”,直到遇到一个被采样的行,然后根据走过的步数和采样值计算出在基因组中的精确偏移。
为了高效计算 rank_c(L, i),我们同样使用检查点采样:每隔一定距离存储一次每个字符的累积计数。查询时,找到最近的检查点,再局部计数到目标位置。
这种索引(BWT、OCC、后缀数组采样、rank检查点)合起来称为 FM-index(全文分钟大小索引)。它非常紧凑,大小通常只有原始基因组的2-3倍,却能实现极快的查找速度。
然而,上述算法只支持精确匹配。实际的测序读段可能包含测序错误或真实的遗传变异(错配、小插入缺失)。为了处理错配,常用的方法是回溯搜索。
处理错配与配对读段比对
上一节我们实现了高效的精确匹配,本节中我们探讨如何处理实际数据中必然存在的错配,以及更复杂的配对读段比对。
当精确匹配失败时(top == bottom),回溯搜索算法会尝试在搜索路径的某些位置允许错配。基本策略是:
- 当匹配失败时,回溯到读段中质量值最低的碱基位置(根据Phred质量分数判断,质量分越低,错误概率越高)。
- 在该位置尝试除了原始碱基外的其他三种可能碱基。
- 从新的碱基继续向前(右向左)匹配。
- 通常会对回溯的次数和允许的错配总数设置限制(例如最多回溯125次),以保证效率。
这种策略是启发式的,并不保证找到全局最优比对,但在实践中非常有效。为了改善比对效果,通常还会构建参考基因组的反向BWT索引,从而可以从读段的左端(通常质量更高)向右进行搜索,或者结合正反两个索引的结果。
对于配对读段,测序仪会产出来自同一DNA片段两端的成对读段。比对时:
- 首先尝试独立比对每条读段。
- 如果一条读段能唯一比对上,可以利用预期的插入片段大小(两读段间未测序部分的估计长度)在基因组相应区域附近寻找另一条读段的匹配,这可以辅助解决重复区域或提高比对特异性。
- 配对信息还能帮助检测结构变异或更精确地定位结合事件。
最后,需要注意的是,由于基因组中存在大量重复序列,许多读段可能多重映射到多个位置。不同的比对器有不同的策略来处理这些读段,例如报告所有位置、随机选择一个最佳位置、或者根据配对信息进行抉择。
总结
本节课中我们一起学习了高通量测序数据分析的两个关键基础概念。
首先,我们探讨了文库复杂度,学习了如何利用负二项分布从观测到的读段分布中估计原始DNA文库中独特分子的数量,这是评估测序实验质量的重要工具。
其次,我们深入学习了短读段比对的核心算法。我们介绍了Burrows-Wheeler变换和FM-index的构建,展示了如何利用这种紧凑的索引实现从读段末端开始的超快速精确匹配搜索。我们还讨论了通过回溯搜索来处理测序错误和变异的实用方法,并简要介绍了配对读段比对的策略。


掌握这些原理对于理解和处理现代基因组学数据至关重要。在下节课中,我们将探讨如何利用这些读段数据从头组装出一个参考基因组。
006:基因组组装

在本节课中,我们将要学习基因组组装的基础知识。基因组组装是现代生物学的基石,对于研究基因结构、调控、个体差异和进化都至关重要。我们将探讨两种主要的组装方法:重叠-布局-共识 组装法和 德布鲁因图 组装法。通过学习,你将理解基因组组装的核心挑战,特别是重复序列带来的困难,并了解如何从海量的短序列片段中重建出完整的基因组序列。
基因组组装概述
基因组组装的目标是从测序仪器产生的大量短序列片段(称为“读段”)中,重建出原始的基因组序列。基本流程如下:
- 将读段组装成 重叠群,即由读段完全覆盖、我们认为连续不间断的基因组片段。
- 利用配对读段的信息,将重叠群连接成 支架。支架中的重叠群之间可能存在未知的缺口,但配对读段能跨越这些缺口,将它们连接起来。
- 有时会使用物理图谱技术,将支架定位到染色体的具体物理位置,从而获得完整的基因组图谱。
本节课我们将专注于 从头组装,即在不依赖参考基因组的情况下,仅凭读段数据进行组装。
覆盖度与组装挑战
在开始组装前,我们需要理解 覆盖度 的概念。平均覆盖度是指每个基因组碱基平均被多少测序碱基覆盖。例如,若基因组大小为 G,读段数量为 N,读段长度为 L,则平均覆盖度 λ 的计算公式为:
λ = (N * L) / G
根据 Lander-Waterman 模型,一个碱基未被任何读段覆盖的概率约为 e^(-λ)。因此,未被覆盖的碱基数约为 G * e^(-λ),而组装中产生的缺口数约为 N * e^(-λ)。
然而,实际数据常偏离此模型,部分原因是建库偏差,此时可能需要使用负二项分布等模型进行拟合。
组装中另一个挑战是读段间的不一致。这可能是由测序错误引起,也可能是由于二倍体生物中来自父母染色体的 等位基因差异 造成。常见的参考基因组是单倍体型,只代表一条染色体的序列。
方法一:重叠-布局-共识组装法
上一节我们介绍了基因组组装的基本概念和挑战,本节中我们来看看第一种主流方法:重叠-布局-共识组装法。这类方法在人类基因组计划早期被广泛使用,尤其适用于较长读段。

构建重叠图

组装的第一步是构建 重叠图。其核心思想是:寻找一个读段的后缀与另一个读段的前缀之间的重叠区域。
- 顶点:代表每个读段。
- 有向边:从读段 A 指向读段 B,表示 A 的后缀与 B 的前缀存在重叠。边上可标注重叠的长度。
构建所有读段间的重叠图在理论上是一个计算量巨大的任务(复杂度可达 O(N²))。但利用 FM 索引 和 Burrows-Wheeler 变换 等技术,可以高效地索引所有读段,然后快速查找重叠,将复杂度降至约 O(N log N)。这种方法还能自动消除 传递边(即通过其他边可推导出的冗余重叠),简化图形。
布局:寻找基因组路径
构建好重叠图后,下一步是 布局,即找到一条穿过该图的路径以重建基因组序列。一种思路是将其转化为 最短公共超字符串 问题:寻找一个包含所有读段作为子串的最短字符串。在图论中,这等价于寻找一条总重叠长度最大(即路径总成本最小)的路径。
然而,最短公共超字符串问题是 NP 难 问题(类似于旅行商问题),对于数百万读段的数据不具可操作性。因此,实践中常采用 贪心算法 等启发式方法。
但贪心算法可能出错,尤其是在处理 重复序列 时。如果读段长度不足以跨越重复区域,组装器将无法确定重复单元的正确拷贝数,可能导致组装出的序列比真实基因组更短或结构错误。重复序列是组装的主要难点,约 50% 的人类基因组由重复序列组成。
简化图与生成重叠群
通过移除传递边等简化操作,重叠图可以变得更清晰。简化的目标是识别出图中线性的部分,这些部分对应着确定无疑的连续序列,即 重叠群。无法线性化的区域(如由重复序列导致的环)则成为组装中的断点。
共识序列生成
对于每个重叠群,我们有多条覆盖该区域的读段。在 共识 阶段,我们需要处理读段间因测序错误或等位基因差异造成的不一致。通过比较所有覆盖该位置的碱基和质量分数,投票决定最终的 共识碱基,从而得到该重叠群的单倍型序列。
现代实例:字符串图组装器
SGA 是一个现代的重叠-布局-共识组装器。其流程分为三步:
- 读段纠正:利用 FM 索引寻找罕见序列,并用相似的常见序列进行纠正。
- 重叠图构建与组装:使用 FM 索引高效查找重叠,过滤低质量读段,构建简化重叠图并输出重叠群。
- 支架构建:再次使用 FM 索引,将原始读段映射回重叠群,利用配对读段信息将重叠群连接成支架。
这类组装器精度较高,但计算资源消耗大,组装一个人类基因组可能需要数千 CPU 小时。
方法二:德布鲁因图组装法
上一节我们讨论了基于重叠图的方法,本节中我们来看看另一种更高效但信息有所损失的方法:德布鲁因图组装法。这类方法在短读段时代非常流行。
构建德布鲁因图
德布鲁因图的核心是将读段分解为更短的 K-mer(长度为 K 的序列)。
- 顶点:代表所有 (K-1)-mer(即 K-mer 的前 K-1 个碱基和后 K-1 个碱基)。
- 有向边:代表一个 K-mer。边的方向是从该 K-mer 的 (K-1)-mer 前缀顶点指向其 (K-1)-mer 后缀顶点。
因此,每条边编码了一个 K-mer 序列,而边的连接表示了 K-mer 之间重叠了 K-1 个碱基。构建此图非常高效,只需遍历所有读段的所有 K-mer,通过哈希表存储顶点和边,时间复杂度近似线性 O(N)。
从图中重建序列
重建基因组序列需要在图中找到一条 欧拉路径——一条访问图中每条边恰好一次的路径。如果一条欧拉路径存在,那么按顺序输出路径上每条边代表的 K-mer 的重叠部分,就能拼出基因组序列。
一个连通的有向图存在欧拉路径的条件是:最多有两个顶点是“半平衡”的(入度不等于出度),其余所有顶点必须是“平衡”的(入度等于出度)。在理想的无误差、全覆盖测序下,基因组起止点对应的顶点是半平衡的,内部顶点都是平衡的,因此欧拉路径存在。
德布鲁因图的挑战与纠错
然而,实际情况充满挑战:
- 非唯一路径:即使存在欧拉路径,也可能不唯一,导致组装出错误序列。
- 覆盖度缺口:导致图断裂,形成多个连通分量,即多个独立的重叠群。
- 测序错误:会产生图中的“死胡同”、“气泡”或“嵌合边”。
- 死胡同:低覆盖度的短分支,可被修剪。
- 气泡:由错误导致的并行路径,可通过比较覆盖度来“戳破”。
- 嵌合边:错误的连接,可被移除。
这些纠错操作高度依赖启发式算法,不同组装器的策略各不相同。
德布鲁因图的局限性
德布鲁因图方法的主要局限在于,它将读段拆解为独立的 K-mer,丢失了读段内部的远程连接信息。为了弥补,一些组装器会将原始读段“穿线”映射回图中,利用读段的连续性来约束路径选择。
组装器性能比较
以下是几种主流组装器的简单比较:
- SGA:基于重叠图,精度高,N50(50%的组装序列包含在长度不小于此值的片段中)较大,但运行速度慢。
- Velvet, ABySS, SOAPdenovo:基于德布鲁因图,运行速度快,通过调整 K 值来优化结果。
选择 K 值是一个经验性过程,通常通过测试不同 K 值下组装的 N50 等指标来确定最佳值。不同组装器对最佳 K 值的偏好不同,这反映了它们在图构建后处理步骤(如简化、纠错)上的差异。
总结与展望

本节课中我们一起学习了基因组组装的两种核心方法:重叠-布局-共识组装法和德布鲁因图组装法。关键要点如下:
- 组装是一门艺术:尽管有坚实的图论基础,但如何设计启发式规则来修剪图形、选择路径,高度依赖于经验和具体数据。
- 重复序列是主要敌人:短读段难以解析长重复区域,这限制了组装序列在重复结构上的准确性。因此,对待参考基因组中的重复区域需保持谨慎。
- 权衡取舍:重叠图方法更精确但计算量大;德布鲁因图方法更快但可能丢失信息。选择取决于数据规模、读长和可用计算资源。
- 未来挑战:对于宏基因组等包含多个物种混合样本的组装,问题将更加复杂,当前读长仍是主要限制因素。

随着测序读长的不断增加,基因组组装将变得更容易,但如何处理超大规模数据集和复杂变异,仍然是生物信息学领域激动人心的挑战。
007:ChIP-seq分析与DNA-蛋白质相互作用 🧬

以下内容基于知识共享许可协议提供。您的支持将帮助麻省理工开放课件继续免费提供高质量教育资源。如需捐款或查看数百门麻省理工课程的其他材料,请访问 ocw.mit.edu。
在本节课中,我们将学习如何利用之前掌握的高通量序列比对和基因组组装知识,来深入探究转录调控的奥秘。我们将重点介绍一种关键技术——ChIP-seq,它使我们能够精确地阐明基因是如何被调控的。
转录调控与ChIP-seq概述
转录调控因子是一类能够以序列特异性方式结合到基因组上,并作为分子开关的蛋白质。这些蛋白质通常包含一个与DNA特定序列相互作用的结合域,以及一个与其他蛋白质相互作用的激活或抑制域,从而调控基因表达。



为了理解基因调控网络,我们需要绘制其“接线图”,即确定调控因子在基因组上的结合位置以及它们调控哪些基因。ChIP-seq技术使我们能够一次研究一种蛋白质,精确地定位其在基因组上的结合位点,分辨率可达约10个碱基对。


ChIP-seq实验原理与流程

ChIP-seq代表染色质免疫沉淀测序。其基本思想是捕捉活细胞中蛋白质与DNA相互作用的“快照”。
以下是实验流程的核心步骤:
- 交联:使用交联剂处理细胞,在蛋白质与其结合的DNA之间形成共价键,固定相互作用。
- 染色质提取与片段化:分离染色质,并通过超声等方法将其随机打断成小片段(通常200-300 bp)。
- 免疫沉淀:使用针对目标蛋白质的特异性抗体,富集含有该蛋白质的DNA片段。
- 解交联与测序:逆转交联,释放DNA片段,然后进行高通量测序。
- 对照实验:同时,对未经免疫沉淀的“全细胞提取物”进行测序,作为背景对照。
测序后,我们会得到许多短序列读段。这些读段的5‘端起始位置分布在蛋白质实际结合位点的两侧。我们的计算任务就是根据这些读段在基因组上的分布,推断出蛋白质最初结合的位置。
结合事件的计算发现:生成模型
我们的目标是将测序读段映射回基因组,并找出所有蛋白质结合事件的位置。一个简单的方法是“找峰”,但当一个峰下隐藏着多个相邻的结合事件时,这种方法就会失效。
因此,我们需要一个更精细的模型。我们假设:
- 每个结合事件会产生一个特定的读段空间分布模式(一个经验性的分布直方图)。
- 基因组上每个碱基位置
i都有一个概率π_i,表示该位置发生结合事件的可能性。 - 所有
π_i的和为1,即总的结合事件概率是归一化的。
那么,单个读段 R_n 由整个基因组模型生成的概率为:
P(R_n | π) = Σ_i [ P(R_n | 结合事件在 i) * π_i ]
其中,P(R_n | 结合事件在 i) 可以从我们学习到的空间分布模型中获得。
所有读段的整体似然度就是每个读段概率的乘积。我们的目标是找到一组 π 值,使得观测到所有读段的似然度最大,即最大似然估计。
期望最大化算法与稀疏性约束
直接求解上述最大似然问题很困难。我们引入一个隐变量 G,它表示每个读段具体来源于哪个结合事件。如果我们知道 G,就能轻松计算出 π。
期望最大化算法通过迭代来解决这个问题:
- E步:基于当前的
π估计,计算每个读段来源于每个潜在结合事件的“责任”(期望值γ)。 - M步:基于计算出的责任
γ,更新π的估计,使其最大化似然度。
然而,初始运行时,算法会将概率质量 π 分散到基因组许多位置上,结果不够“稀疏”,即找出的结合位点太多、太模糊。这与生物学事实(结合位点很少)不符。
为了解决这个问题,我们在优化目标中加入一个先验分布,例如负狄利克雷先验,它倾向于让 π_i 趋近于0。这样,在M步更新规则中,对于支持读段数少于某个阈值 α 的位置,其 π_i 会被置零。这迫使模型只保留那些有足够证据支持的位置,从而得到稀疏且清晰的结合事件预测。
加入先验后的算法能够成功地从模拟数据和真实数据中,准确地分辨出单个结合事件,甚至是紧密相邻的“同型”结合事件。
显著性评估与对照分析
上一节我们介绍了如何发现候选结合事件,本节我们来看看如何判断这些事件是否真实可靠。这里,全细胞提取物对照数据至关重要。
我们通过假设检验来评估每个候选事件的显著性。零假设是:观测到的IP通道读段富集纯粹是随机的。具体方法是:
- 在候选事件周围区域,分别统计IP通道和对照通道的读段数。
- 在零假设下,一个读段出现在IP或对照通道是等概率的。我们可以使用二项分布检验来计算,在给定总读段数下,IP通道读段数达到或超过观测值的概率(p值)。
计算出每个事件的p值后,我们面临多重假设检验问题。我们使用本杰明-霍奇伯格方法来控制错误发现率。我们将所有事件的p值从小到大排序,然后选择一个阈值,使得排名第 k 的事件的p值满足 p_k ≤ (k/N) * FDR,其中 N 是事件总数,FDR 是我们设定的目标错误发现率(如0.05)。
实验可重复性分析:不可重复发现率
生物学实验需要重复。当我们有两个ChIP-seq实验重复时,需要评估它们结果的一致性。简单的做法是计算两个重复间结合事件排名的相关性。
更高级的方法是使用不可重复发现率分析。其思想是:
- 将两个重复实验各自发现的事件按显著性排序。
- 计算在排名前
T%的事件中,有多少个事件在两个重复中是匹配的(即位于基因组相近位置)。记这个比例为si_N(T)。 - 对于完美的重复,
si_N(T)应该是一条从原点出发、斜率为1的直线,直到事件耗尽。 - IDR模型会拟合数据,区分出“可重复”和“不可重复”两部分事件混合的分布。我们可以设定一个阈值,只保留那些属于“可重复”部分的事件。
这种方法不仅用于评估实验质量,还可以比较不同数据处理算法哪个能产生更可重复的结果。
总结与展望
本节课中,我们一起学习了ChIP-seq技术的原理和计算分析流程。我们从实验设计开始,了解了如何通过交联、免疫沉淀和测序来捕获DNA-蛋白质相互作用。接着,我们深入探讨了核心的计算挑战:如何从测序读段中精确地定位蛋白质结合位点。
我们建立了一个生成模型,并使用期望最大化算法进行求解。通过引入稀疏性先验,模型能够准确地找出稀疏分布的结合事件。然后,我们利用对照样本进行统计检验,评估每个发现事件的显著性,并控制错误发现率。最后,我们介绍了IDR方法,用于评估实验重复间的可重复性,确保结果的可靠性。


ChIP-seq及其分析方法是解析基因组调控“程序”的基石。它使我们能够以极高的分辨率绘制转录因子和组蛋白修饰在基因组上的分布图谱,为理解复杂的基因调控网络奠定了基础。
008:表达与异构体

在本节课中,我们将学习RNA测序技术。我们将首先介绍RNA测序的基本原理,然后探讨如何利用该技术的数据进行差异基因表达分析和主成分分析。最后,我们将了解单细胞RNA测序这一重要且快速发展的领域。
RNA测序原理
上一节我们概述了课程内容,本节中我们来看看RNA测序的基本概念。RNA测序是一种通过下一代测序技术来表征RNA分子的方法。
我们首先从细胞或特定条件下的细胞群中分离出目标RNA。值得注意的是,我们可以选择分离特定类型的RNA分子。例如,我们可以分离未经剪接的前体mRNA、非编码RNA或经过加工的信使RNA。RNA测序实验的具体方案会根据所使用的纯化方法,决定最终获得哪些类型的RNA分子。
大多数基因都可能产生多种不同的剪接异构体。剪接事件通常由内含子中的顺式调控序列调控,这些序列包含剪接因子的识别位点。因此,不同的外显子组合会被拼接在一起,产生蛋白质的变体形式。
RNA测序的核心思想是:我们提取感兴趣的RNA分子,将其反转录为cDNA,对cDNA片段进行测序,然后将测序结果比对到参考基因组上。如果不对RNA进行多聚腺苷酸尾纯化,测序结果中会包含大量比对到内含子区域的数据,这使得分析变得非常困难。因此,在研究基因表达时,通常需要进行多聚腺苷酸尾纯化。
当我们将测序读段比对到基因组后,会得到类似下图的表达数据。我们的任务就是分析这些数据。
我们可以用多种形式来总结这些数据。一种方法是简单地统计在特定碱基位置观察到的读段数量。此外,我们还会观察到跨越外显子边界的“分裂读段”,这是因为剪接事件发生后,RNA分子是由多个外显子连续拼接而成的。有时一个读段会横跨两个外显子的交界处。
为了有效识别这些跨越外显子的读段,我们通常需要使用长度约为100个碱基的读段,并使用能够将读段两端进行比对的映射工具,以处理这些分裂比对事件。
异构体定量分析
上一节我们了解了RNA测序的数据形式,本节中我们来看看如何确定特定基因的哪些异构体正在表达。
主要有两种方法。第一种是参考我们在基因组组装中讨论过的思想,将读段从头组装成转录本。这种方法的好处是不需要参考基因组,但存在正确性问题。
第二种更常用的方法是将读段比对到参考基因组,并利用约束条件识别正在表达的不同异构体。最终目标是识别并量化这些异构体,以便进行下游分析。
文献中常用两种表达度量指标:
- RPKM:每千碱基转录本每百万读段数。
- FPKM:每千碱基片段每百万片段数(用于双端测序数据)。
核心思想是:获取所有读段,将其比对到基因组(包括外显子和外显子交界处),然后确定特定基因有哪些异构体以及它们的表达水平。
我们假设已经枚举了某个基因所有可能的异构体,并将其编号为1到n。我们的目标是计算每个异构体对该基因所对应读段群体的相对贡献。
我们可以利用读段提供的证据来构建模型。读段分为两类:
- 包含性读段:表明特定外显子被包含在转录本中。
- 排除性读段:表明特定外显子被剪接出去。
我们需要构建一个概率模型,考虑每个读段所提供的信息。本质上,我们需要描述在给定特定异构体表达的情况下,观察到某个读段的概率。
以下是三种可能的情况及其概率描述:
- 读段与异构体不兼容:概率为0。
P(read_i | isoform_j) = 0 - 单端读段映射到异构体:概率为1除以异构体长度。
P(read_i | isoform_j) = 1 / L_j - 双端读段映射到异构体:概率需要考虑读段在转录本上的比对位置以及片段长度的分布。
P(read_i | isoform_j) = (1 / L_j) * F(l_{i,j})
其中,F是片段长度的概率分布函数。
有了这个框架,我们就可以估计异构体的表达比例。我们希望找到一组参数 Ψ(表示每个异构体的表达比例),使得观察到所有读段数据的似然性最大化。这可以通过期望最大化算法或其他机器学习框架来实现。
差异表达分析
上一节我们讨论了如何量化异构体,本节中我们来看看如何分析基因在不同条件下的差异表达。
我们首先需要介绍假设检验的概念。我们经常需要判断两组数据是否存在显著差异。零假设通常表示两组数据来自相同的分布,而备择假设表示它们来自不同的分布。
由于更复杂的模型总是能更好地拟合数据,我们需要一种原则性的方法来比较模型。似然比检验是一种常用方法。我们计算检验统计量:
T = 2 * log( P(data | H1) / P(data | H0) )
然后,在零假设成立的条件下,该统计量服从卡方分布(自由度等于两个模型参数数量之差)。通过计算p值,我们可以判断差异是否显著。
现在,我们将此应用于RNA测序数据。我们使用一种称为DESeq的方法进行差异表达分析。
在分析中,我们用 i 表示基因或异构体,j 表示实验(同一条件下可能有多个重复),k_{i,j} 表示在实验 j 中观测到基因 i 的计数。
首先,我们需要对不同实验进行标准化。标准化因子 s_j 用于调整每个实验的计数,以消除测序深度等因素的影响。
接着,我们计算基因在特定条件下的标准化表达量。一个条件可能包含多个重复,我们对其取平均。
DESeq方法的关键在于它使用负二项分布来建模计数数据,而不是泊松分布。这是因为在RNA测序数据中,方差通常大于均值。DESeq将方差建模为均值的函数:
Var = μ + v(μ)
其中 v(μ) 是一个拟合的函数。这比假设方差等于均值的泊松模型更能反映数据的真实噪声结构。
然后,我们可以构建假设:H0(两组条件表达相同)和H1(两组条件表达不同)。利用负二项分布模型计算似然,并进行似然比检验,从而判断基因是否差异表达。
超几何检验与主成分分析
上一节我们介绍了差异表达分析,本节中我们来看看两种有用的分析工具:超几何检验和主成分分析。
超几何检验常用于评估重叠的显著性。例如,我们有全部基因的集合,一个差异表达基因集A(20个基因),和一个已知的应激反应通路基因集B(30个基因)。假设两者重叠了3个基因。我们想知道这个重叠是偶然发生的还是显著的。
超几何检验计算在随机情况下,观察到重叠基因数大于等于实际观测值(k)的概率。如果这个概率(p值)很小,我们就认为重叠是显著的,表明差异表达基因富集了应激反应通路。
主成分分析是一种用于揭示数据中隐藏结构和降低维度的强大技术。理解它的一个好方法是从多元高斯分布的角度出发。
一个多元高斯分布可以看作是对多个独立的标准正态分布变量进行缩放、旋转和平移的结果。转换矩阵 A 决定了这些变量如何混合。协方差矩阵 Σ 则描述了数据点之间的相互关系。
主成分分析的目标是找到一组正交方向(主成分),使得数据在这些方向上的投影方差最大。这些方向就是协方差矩阵的特征向量,对应的特征值表示该方向上的方差大小。
我们可以通过对协方差矩阵进行奇异值分解来找到这些特征向量和特征值。然后,我们可以将每个数据点投影到前几个主成分上,从而在低维空间中可视化高维数据,并观察其内在结构。
单细胞RNA测序分析
上一节我们讨论了多变量分析工具,本节中我们来看看单细胞RNA测序这一前沿领域。
单细胞分析之所以重要,是因为它能够揭示细胞群体中的异质性。传统的批量RNA测序得到的是成千上万个细胞的平均表达谱,可能会掩盖个体细胞间的差异。
早期的单细胞研究提出了一些基本问题:从同一培养物中取两份一万个细胞的样本,它们的表达谱应该高度相关。但如果从中取出少量单个细胞进行测序,它们的表达谱与一万个细胞的平均表达谱相关性如何?如果相关性很高,说明细胞间差异不大;如果相关性低,则说明细胞群体存在显著的异质性,单个细胞的分析至关重要。
实验结果表明,单个细胞之间的表达谱差异很大,且同一基因的不同异构体可能在不同的细胞中表达。这突显了单细胞分析的价值。
进一步,研究人员对单细胞表达数据进行了主成分分析,并将细胞投影到前两个主成分构成的空间中。结果清晰地显示细胞分成了不同的簇,对应于不同的细胞类型或状态(例如成熟细胞与正在成熟的细胞)。
此外,通过分析单细胞数据中基因对的共表达关系,可以推断基因调控网络。例如,研究发现LRF7、IFI44、STAT2等基因在一个抗病毒调控回路中协同表达,并通过基因敲除实验进行了验证。
最后,单细胞RNA测序数据的质量评估(如图库复杂度)也非常重要。高质量的测序数据是进行可靠分析的基础。
总结


本节课中我们一起学习了RNA测序分析的多个方面。我们首先介绍了RNA测序的基本原理和数据处理流程。接着,我们深入探讨了如何利用概率模型对基因的剪接异构体进行定量分析。然后,我们学习了如何使用DESeq等方法进行差异表达分析,并介绍了超几何检验用于功能富集分析。此外,我们还讲解了主成分分析这一强大的降维和可视化工具。最后,我们探讨了单细胞RNA测序这一新兴领域,它能够揭示细胞群体的异质性和复杂的基因调控网络。这些技术共同构成了现代转录组学研究的核心。
009:序列模体的建模与发现 🧬



以下内容基于知识共享许可协议提供。您的支持将帮助麻省理工开放课件继续免费提供高质量教育资源。如需捐款或查看来自数百门麻省理工课程的更多材料,请访问 MIT OpenCourseware。
在本节课中,我们将要学习DNA和蛋白质序列模体。本质上,它们是调控信息的基本构建模块。我们将以一个特定的模体发现算法——吉布斯采样算法为例进行讲解。它并非唯一的算法,也不一定是最好的算法,但它是一个很好的早期算法示例,能够很好地说明问题。同时,它也是一个随机算法的例子,其行为在一定程度上由随机性决定,但通常仍能收敛到特定答案。我们还将讨论其他类型的模体发现算法,并简要介绍统计熵和信息内容,这是描述模体的便捷方法。最后,我们会涉及参数估计,这在您拥有一个模体并希望建立模型以发现更多该模体实例时至关重要。
什么是序列模体?🔍
序列模体通常是指一组共享某种生物学特性的DNA、RNA或蛋白质序列所共有的模式。例如,某个转录因子M的所有结合位点可能共享一个模式,这个模式就被称为M的模体。
模体可以通过多种方式识别:
- 序列比对:获取一组基因,寻找它们共有的短序列模式。
- 比较基因组学:在不同物种中寻找保守的序列区域。
- 蛋白质结合实验:例如染色质免疫沉淀测序。
- 功能筛选:例如将随机序列克隆到报告基因上游,检测哪些能驱动表达。
模体的表示方法 📊
人们通常使用几种分辨率递增的模型来描述模体:
- 共有序列:例如TATA框的共有序列是TATAAA。但这只是许多实例的共识,真实情况中很少能找到完美的共有序列。
- 正则表达式:例如描述哺乳动物5‘剪接位点的GT$$AG$$AGT,其中R代表嘌呤(A或G)。
- 权重矩阵:矩阵的宽度是模体的碱基数,四行分别代表四个碱基。这通常被称为位置特异性概率矩阵或位置特异性评分矩阵。
- 更复杂的模型:简单的权重矩阵可能无法捕捉模体中的所有信息,因此需要更复杂的模型。
为什么模体很重要?💡
模体之所以重要,是因为它们可以识别具有特定生物学特性的蛋白质或序列。例如,识别可能被特定激酶磷酸化的蛋白质,或可能被特定转录因子调控的启动子。这对于理解基因调控以及建立预测基因表达的系统生物学模型至关重要。
模体发现算法概述 🧮
模体发现问题本质上是一个局部多序列比对问题。主要有三种通用方法:
- 枚举或词典法:枚举所有可能的短序列(如所有六聚体),统计它们在目标序列集和背景序列集中的出现频率,寻找统计上富集的序列。缺点是需要进行多重检验校正,且可能无法发现简并性强的模体。
- 概率优化法:在可能的模体空间中“游走”,直到找到一个看起来很强的模体。吉布斯采样算法就属于此类。
- 确定性算法:如MEME算法,它使用期望最大化方法。
吉布斯采样算法详解 ⚙️
上一节我们介绍了模体发现的几种思路,本节中我们来看看一个具体的概率优化算法——吉布斯采样算法是如何工作的。
该算法步骤如下:
- 输入N条长度为L的序列,并猜测模体宽度W。
- 在每条序列中随机选择一个起始位置作为假定的模体实例。
- 随机选择一条序列(例如序列i)。
- 使用除序列i外所有其他序列中当前假定的模体实例,构建一个权重矩阵模型(θ)。
- 将权重矩阵θ沿着序列i滑动,计算序列i中每一个可能的W-mer子序列在“模体模型(θ)”下生成的概率与在“背景模型”下生成的概率的比值(似然比)。
- 根据上一步计算出的概率分布(归一化后),随机采样一个新的起始位置作为序列i中模体的新位置。
- 更新序列i的模体位置,然后选择另一条序列,重复步骤3-6。
- 迭代此过程直至收敛(例如,模体位置不再变化或权重矩阵稳定)。
算法核心思想:即使初始选择是随机的,算法也倾向于自我强化。如果偶然在几条序列中采样到了真实的模体实例,构建的权重矩阵就会带有轻微偏向性。这个带有偏向性的矩阵更有可能在其他序列中识别出真实的模体实例,从而进一步强化权重矩阵,最终收敛到强模体。信息内容(熵的减少)在此过程中倾向于增加。
熵与信息内容 📉
为了更精确地描述模体的“强弱”,我们引入信息论中的熵和信息内容概念。
熵是衡量不确定性的指标。对于一个概率分布 $ P $(例如,模体中某个位置四个碱基的概率),其香农熵 $ H(P) $ 定义为:
$$ H(P) = -\sum_{k} p_k \log_2 p_k $$
其中 $ p_k $ 是第k个事件(如特定碱基)的概率。熵值越大,不确定性越高。例如:
- 确定性分布(如100%是C)的熵为0。
- 均匀分布(四个碱基各25%)的熵为 $ \log_2 4 = 2 $ 比特。
信息内容定义为背景不确定性(熵)与模体不确定性(熵)的差值:
$$ I = H(background) - H(motif) $$
它衡量了模体所减少的不确定性。对于宽度为W的模体,如果背景均匀且模体各位置独立,其信息内容为 $ 2W - H(motif) $。
信息内容的一个实用意义是:一个具有M比特信息内容的模体,在随机序列中大约每 $ 2^M $ 个碱基出现一次。例如,EcoRI限制性酶切位点(GAATTC)信息内容约12比特,预计每4096个碱基出现一次,这与经验相符。
影响模体发现的因素 ⚖️
以下是影响模体发现算法成功与否的几个关键因素:
- 模体信息内容:信息内容高的强模体更容易发现。
- 序列长度:给定序列越短,搜索空间越小,模体越容易被发现。
- 序列数量:通常序列越多,信号越强,但可能影响收敛速度。
- 模体宽度猜测:猜测的宽度与实际宽度不符会降低发现效率。
- 背景序列组成:有偏的基因组背景组成(如高AT含量)会使发现变得困难,需要使用相对熵(或称Kullback-Leibler散度)来替代简单信息内容进行衡量。相对熵公式为:
$$ D(P \| Q) = \sum_{k} p_k \log_2 \frac{p_k}{q_k} $$
其中 $ P $ 是模体分布,$ Q $ 是背景分布。
实践工具与总结 🛠️
在实践中,吉布斯采样器或其变体(如AlignACE)有时被使用。但更常用的可能是MEME算法,它是一种确定性算法,通常通过多次不同起始点运行并选择最佳结果来避免局部最优。用户可以使用如“WebMotifs”这样的在线平台,它集成了多种模体发现工具。


本节课中我们一起学习了序列模体的概念、表示方法及其重要性。我们重点剖析了吉布斯采样这一随机算法的原理,并介绍了用熵和信息内容来量化模体特征的方法。最后,我们讨论了影响模体发现的各种因素,为在实际研究中应用这些工具打下了基础。
010:基因组与蛋白质特征的马尔可夫及隐马尔可夫模型


以下内容在知识共享许可下提供。您的支持将帮助麻省理工开放式课件继续免费提供高质量教育资源。如需捐款或查看来自数百门麻省理工课程的更多材料,请访问 OCW.MIT.edu。
概述
在本节课中,我们将学习马尔可夫模型和隐马尔可夫模型,它们是用于分析基因组和蛋白质序列特征的重要工具。我们将从回顾相对熵的概念开始,然后探讨如何将简单的权重矩阵模型推广到马尔可夫模型,以处理序列位置间的依赖性。最后,我们将重点介绍隐马尔可夫模型的基本概念、核心算法(维特比算法)及其在生物信息学中的应用,例如CpG岛预测。
相对熵回顾与推导
上一节我们介绍了相对熵的概念。相对熵是衡量两个概率分布之间距离的一种方法,可以写作不同的形式,通常使用D(P||Q)表示。在生物信息学中,当我们用一个前景模型P_k和一个背景模型Q_k来为一个模体打分时,相对熵就是在模体模型下的平均对数优势比得分。
在背景模型Q_k为均匀分布(例如,对于单碱基模体,Q_k = 1/4)的特殊情况下,模体的相对熵简化为2 - H(P),其中H(P)是模体模型的熵。以下是推导过程:
将其重写为两项之差:
第一项是熵的负数:$ -\sum_k P_k \log_2 P_k = -H(P) $。
在均匀背景的特殊情况下,$ Q_k = 1/4 $,因此 $ \log_2 Q_k = \log_2 (1/4) = -2 $。第二项变为:
因为概率之和为1。因此:


这个结果以及其他类似结果,可以通过将相对熵拆分为不同项并求和来证明。
相对熵的用途
相对熵在生物信息学中的主要用途是,它提供了一种考虑非均匀背景的度量方法。标准的“信息量”定义在背景均匀时有效,但在背景非均匀时会失效。
例如,考虑一个基因组背景高度偏向(如75%是A),而模体在某个位置总是C。标准信息量计算会得到2比特,预测该模体每4个碱基出现一次,这显然不正确。而相对熵计算会得到一个更合理的值(例如3比特),因为它考虑了背景分布的非均匀性。
从权重矩阵到马尔可夫模型
我们可以使用权重矩阵或位置特异性概率矩阵来为一个模体(如5‘剪接位点模体)建模,这假设了位置之间是独立的。但如果这种独立性不成立,一个自然的推广就是使用非齐次马尔可夫模型。
在这种模型中,位置k的碱基依赖于位置k-1的碱基,但不依赖于更早的碱基。生成特定序列S1到S9的概率由以下表达式给出:


其中,$ P(S_i|S_{i-1}) $ 是条件概率。同样,为了方便,我们可以取对数。
在实际应用中,我们需要估计这些条件概率参数。条件概率 $ P(A|B) $ 是联合概率 $ P(A, B) $ 除以边缘概率 $ P(B) $。因此,我们可以通过计算观测到的双碱基频率与单碱基频率的比值来估计。
通过实现权重矩阵模型和一阶马尔可夫模型对5‘剪接位点进行评分,可以发现两者都能部分成功地区分真实的剪接位点(黑色)和背景序列(浅色条带),但都不是完美分离。马尔可夫模型的表现略好一些,其分数分布的左尾更紧,意味着它能更好地区分真实位点和假阳性位点。
模型复杂性与数据量
马尔可夫模型可以在存在依赖性且有足够数据估计参数时提高性能。模型不仅可以依赖于前一个碱基,还可以依赖于前两个碱基(二阶马尔可夫模型),或更一般地,依赖于前K个碱基(K阶马尔可夫模型)。
然而,模型的复杂性需要与可用数据量相匹配。以下是不同模型所需的参数数量:
- 独立模型(权重矩阵):每个位置有4个参数(4种碱基的概率),但只有3个是自由参数。
- 一阶马尔可夫模型:第一个位置有4个参数,后续每个位置有16个条件概率参数(4x4)。
- 二阶马尔可夫模型:每个位置(前两个位置除外)有64个参数(4x4x4)。
一般地,对于K阶马尔可夫模型,参数数量约为 \(4^{K+1}\)。如果你只有100条序列,却需要估计每个位置64个参数,数据量是远远不够的。因此,不应使用如此高阶的模型。
伪计数:处理有限数据
当数据量有限时,如何避免给未观测到的事件分配零概率?例如,假设你通过实验鉴定了10条与某个转录因子结合的序列。在第一列,你观察到8个A,1个C,1个G,0个T。你能确信T与结合不相容吗?不能,因为样本量太小。如果T在天然序列中的频率是10%,那么在10个样本中一个T都看不到的概率大约是 \(0.9^{10} \approx 0.35\),这是一个相当高的概率。
因此,我们不应该给T分配0概率。应该分配什么值呢?一个原则性的方法是使用伪计数。在贝叶斯框架下,假设真实的频率来自一个先验分布(如狄利克雷分布),那么给定观测数据(例如0个T)后,参数的后验分布等价于在每个计数箱(bin)中添加一个计数。
例如,将观测计数(8,1,1,0)加上伪计数(1,1,1,1),得到(9,2,2,1),归一化后,T的概率约为0.07。随着数据量增大(例如计数为800,100,100,0),添加伪计数的影响会变小,估计值会收敛到最大似然估计。伪计数提供了一种在数据有限时进行更合理估计的方法。
隐马尔可夫模型简介
现在,我们开始介绍隐马尔可夫模型。我们将讨论其术语、应用以及核心算法——维特比算法,并给出几个例子。
背景与应用
HMM可以被视为解决序列标注问题的一种通用方法。我们拥有序列(如基因组、蛋白质、RNA序列),这些序列具有各种特征(如启动子、结构域、线性模体)。我们的目标是在未知序列中标注这些特征。
一个经典例子是基因查找:给定一段基因组序列,部分区域是外显子,部分是内含子,我们需要标注它们。我们可能有一个已知外显子和内含子的训练集,从中学习每个标签的序列组成特征,然后构建一个模型将它们组合起来。
HMM允许我们在不同状态之间定义转移概率,从而可以建模状态的长度以及状态之间的依赖关系。它们相对容易设计,甚至可以包含循环。HMM最初在几十年前由电气工程领域开发,用于语音识别,至今仍在该领域使用。
基本思想:一个遗传学例子
考虑一个简单的马尔可夫链例子:Simpson家族连续几代在某个基因座的基因型。Bart的基因型依赖于Homer,但在给定Homer的条件下,与祖父Abe的基因型条件独立。
现在,什么是隐马尔可夫模型?假设我们的DNA测序仪那周坏了,无法直接测量基因型。相反,我们只能观察依赖于基因型的某种表型(如胆固醇水平),但这种依赖不是确定性的,因为还受环境影响。例如,纯合子基因型倾向于有更高的LDL胆固醇,但存在一个分布。
如果我们只观察到Bart的胆固醇水平,我们很难判断他的基因型。但如果我们知道他父亲Homer的胆固醇很高,这就使得Homer更可能是纯合子,从而反过来影响了Bart基因型的分布,使他更可能是纯合子。这就是HMM的基本思想:我们有一些可观测的表型,它们以概率方式依赖于某些隐藏的状态,而这些隐藏状态本身具有依赖结构。我们的目标是从观测数据中预测这些隐藏状态。
生成式模型视角
理解HMM的一个便捷方式是将其视为生成式模型。想象HMM用于生成可观测序列:
- 根据初始状态分布,选择一个初始隐藏状态。
- 设置时间变量t=1(通常代表序列中的位置)。
- 根据一个依赖于当前隐藏状态的概率分布,生成一个观测值。
- 根据转移概率,转移到下一个隐藏状态。
- 重复步骤3和4。
细菌基因查找HMM示例
让我们以细菌基因查找为例。细菌的蛋白质编码基因需要有起始密码子、开放阅读框和终止密码子。我们的HMM需要哪些状态?
- 起始状态:发射起始密码子(如ATG,3个核苷酸)。
- 密码子状态:发射一个密码子(3个核苷酸),并可以循环回到自身以生成长ORF。
- 终止状态:发射终止密码子(3个核苷酸)。
- 基因间状态:发射一个核苷酸,并可以循环回到自身以生成任意长度的基因间区。
状态之间的转移需要合理设计,例如:基因间 -> 起始 -> 密码子 -> 终止 -> 基因间。为了处理反向链上的基因,还需要设计互补的状态和转移。这个模型可以生成带有标注的序列字符串。
CpG岛HMM与维特比算法
为了更清晰地说明维特比算法,我们将使用一个更简单的HMM:用于预测脊椎动物基因组中CpG岛的HMM。
CpG岛简介
CpG岛是基因组中具有高C和G含量、并且CpG二核苷酸(即序列中C后面紧跟G)相对富集且未甲基化的区域。在脊椎动物基因组中,CpG二核苷酸通常因为甲基化导致的突变而稀少,但在某些启动子附近未甲基化的区域,CpG可以积累到较高频率。因此,寻找这些区域可以帮助预测启动子位置。人类基因组背景的C+G含量约为40%,而CpG岛区域的C+G含量可达50%-60%。
CpG岛HMM设计
我们的模型只有两个隐藏状态:
- 基因组状态:代表普通的基因组区域。
- 岛状态:代表CpG岛区域。
转移是最简单的:允许任意两个状态之间互相转移(自循环或相互转移),从而可以生成任意长度的岛区域和基因组区域。

每个隐藏状态发射单个核苷酸。为了完全指定模型,我们需要定义三类参数:
- 初始概率:例如,99%的概率从基因组状态开始,1%的概率从岛状态开始。
- 转移概率:
- 假设岛的平均长度为1000个碱基,则岛到岛的转移概率为0.999,岛到基因组的概率为0.001。
- 假设岛之间平均间隔100kb,则基因组到基因组的转移概率为0.99999,基因组到岛的概率为0.00001。
- 发射概率:这是预测能力的来源。假设基因组状态发射A/T/G/C的概率分别为0.3/0.3/0.2/0.2(C+G=40%),岛状态发射的概率分别为0.2/0.2/0.3/0.3(C+G=60%)。
问题反转:从观测推断隐藏
模型是从隐藏状态生成观测序列。但我们实际面临的问题是:我们拥有观测序列,想要推断隐藏状态。我们需要反转模型中的条件关系。
我们感兴趣的是给定观测序列 $ O = (o_1, ..., o_N) $ 时,隐藏状态序列 $ H = (h_1, ..., h_N) $ 的条件概率:
根据贝叶斯定理,这等于:
分母 $ P(O) $ 需要对所有可能的隐藏状态序列求和,这在序列很长时计算量巨大(2^N数量级)。但幸运的是,当我们比较不同隐藏状态序列的概率以寻找最优解时,$ P(O) $ 是一个与H无关的常数,可以忽略。因此,我们只需找到能最大化联合概率 $ P(H, O) $ 的隐藏状态序列 $ H_{opt} $:
这个最优的隐藏状态序列被称为序列的最优解析。

维特比算法
维特比算法是一种动态规划算法,用于高效地找到这个最优解析。其核心思想是定义一系列变量:
令 $ R_i(h) $ 表示从序列开头到位置i的最优子解析的概率,并且该子解析在位置i以隐藏状态h结束。
算法步骤如下:
- 初始化:计算第一个位置(i=1)以每种状态结束的最优解析概率。
- $ R_1(\text{基因组}) = P(\text{初始为基因组}) \times P(\text{发射} o_1 | \text{基因组}) $
- $ R_1(\text{岛}) = P(\text{初始为岛}) \times P(\text{发射} o_1 | \text{岛}) $
- 递归:对于 i = 2 到 N,对于每个可能的状态h,计算:\[R_i(h) = \max_{h'} \left[ R_{i-1}(h') \times P(h | h') \times P(o_i | h) \right] \]即,考虑所有可能的前一个状态h‘,取(前一个位置以h’结束的最优概率 × 从h‘转移到h的概率 × 在状态h发射当前观测o_i的概率)的最大值。记录下是哪个h‘导致了该最大值(通常通过回溯指针)。
- 终止:在序列末尾(i=N),比较 $ R_N(\text{基因组}) $ 和 $ R_N(\text{岛}) $,选择概率更大的那个状态作为最终状态。
- 回溯:根据步骤2中记录的回溯指针,从最终状态反向追踪到起始位置,得到完整的最优隐藏状态序列。
算法复杂度
对于每个位置i,我们需要为每个当前状态h考虑所有可能的前一个状态h‘。如果有K个隐藏状态,那么每个位置的计算量是 $ O(K^2) $。对于长度为L的序列,总时间复杂度为 $ O(K^2 L) $。这对于像CpG岛HMM(K=2)这样的简单模型来说非常快。如果HMM的转移矩阵是稀疏的(很多转移概率为0),实际计算量还可以更小。
课程中期考试信息
期中考试将于下周二(3月18日)举行。考试时间为1小时20分钟,形式为闭卷考试,但允许携带最多两页(可双面)的笔记。考试内容涵盖截至本节课(包括HMM)的所有讲座主题。RNA二级结构将是考试后的新主题。过去的期中考试试卷已发布在课程网站上,可供复习参考。助教将在本周的讨论环节进行复习。
总结
本节课我们一起学习了以下内容:
- 相对熵:作为衡量概率分布距离的指标,在处理非均匀背景的序列模体时特别有用。
- 马尔可夫模型:作为权重矩阵的推广,可以建模序列位置之间的依赖性,但需要更多数据来估计参数。
- 伪计数:一种在数据有限时避免零概率估计、使参数估计更稳健的贝叶斯方法。
- 隐马尔可夫模型:一种强大的序列标注工具,包含隐藏状态(如基因特征)和观测值(如核苷酸),并通过状态间的转移概率和状态内的发射概率来建模。
- 维特比算法:用于在HMM中寻找最有可能产生观测序列的隐藏状态序列(最优解析)的高效动态规划算法,其复杂度为 $ O(K^2 L) $。
- 我们通过CpG岛预测的简单例子,说明了HMM的构建和维特比算法的基本步骤。



理解这些模型和算法对于分析基因组中的复杂模式至关重要。
011:RNA二级结构;生物学功能与预测 🧬



概述
在本节课中,我们将学习RNA二级结构的基本概念、其生物学功能以及两种主要的预测方法。我们将首先回顾RNA在生物学中的重要作用,然后介绍RNA二级结构的表示方法。接着,我们将探讨如何利用进化信息(共变分析)和热力学原理(能量最小化)来预测RNA结构。课程内容旨在让初学者能够理解这些核心概念。
课程回顾:隐马尔可夫模型(HMM)🔍
上一节我们介绍了隐马尔可夫模型(HMM)及其核心算法——维特比算法。HMM是一种生成模型,包含初始概率、转移概率和发射概率等参数。维特比算法用于寻找最可能产生观测序列的隐藏状态路径,其计算复杂度为 O(K²L),其中K是状态数,L是序列长度。
真实世界中的HMM应用 🌍
本节中我们来看看几个真实世界中的HMM应用实例。
基因发现
HMM已广泛应用于原核生物和真核生物的基因发现,相关例子在教材中有详细讨论。
谱HMM
谱HMM是基于具有相关功能或共同结构域的多重蛋白质序列比对构建的。例如,PFAM数据库包含了数百种不同蛋白质结构域的谱HMM。一旦拥有大量样本,就可以学习每个位置的残基频率、插入和删除的概率。挑战在于将查询蛋白质与所有这些谱HMM进行比对,以判断是否存在显著匹配。HMM的优点是允许根据数据调整不同位置的插入概率。
TMHMM:跨膜螺旋预测
TMHMM是一个用于预测蛋白质中跨膜螺旋的HMM。它能够以约97%的准确率预测蛋白质是否含有跨膜螺旋、其方向以及具体位置。
为了准确建模跨膜螺旋的长度分布(通常约为20个残基),TMHMM没有使用单一可自我循环的“螺旋”状态(这会产生几何分布),而是使用了多个(例如25个)不同的螺旋状态,并设置了特定的转移概率,从而能够拟合任意的长度分布。这种方法的代价是增加了计算复杂度和参数估计的难度。
TMHMM程序的输出示例如下:它预测了一个小鼠氯离子通道基因CLC6含有七个跨膜螺旋(图中红色块),并预测蛋白质的N端在细胞外,C端在细胞内。
置信度评估:前向-后向算法 📊
对于预测结果,我们不仅想知道最优预测,还想了解算法对预测各个部分的置信度。这可以通过前向-后向算法实现。


该算法的基本思想是计算观测序列在所有可能隐藏状态路径上的总概率。类似于维特比算法,但在每个状态不是取最大值,而是对输入概率求和。可以分别沿序列向前和向后运行该算法。对于序列中特定位置i处于特定隐藏状态(如螺旋状态)的概率,可以通过将前向算法在i处的值、后向算法在i处的值相乘,再除以观测序列的总概率来获得。这等价于计算所有经过该位置和该隐藏状态的路径的概率之和。


例如,在TMHMM的输出中,可以绘制每个状态的后验概率图。这能显示算法对预测不同部分(如某个跨膜螺旋是否存在或其边界)的置信度,从而指导实验验证的优先级。
RNA二级结构介绍 🧪
现在,我们将转向今天的主要话题:RNA二级结构。
什么是RNA二级结构?
与蛋白质类似,RNA具有决定其功能的三维折叠结构。RNA二级结构是一种更简单的表示,它只描述哪些碱基对通过氢键相互配对。例如,所有tRNA都具有经典的三叶草二级结构,指定了所有碱基对后,就能绘制出结构图,这有助于了解RNA分子的哪些部分是可接近的。
结构表示方法
RNA二级结构有几种常见的表示方法:
- 点括号表示法:例如
(((...)))。点表示未配对碱基,括号表示配对碱基。配对的括号必须正确嵌套。 - 弧线图表示法:在序列上方绘制连接配对碱基的弧线。弧线是否交叉是区分可处理结构和复杂结构(如假结)的关键。
RNA结构的生物学实例
- 核糖体:核糖体大亚基和小亚基主要由RNA构成,蛋白质像装饰品一样分布在边缘,这支持了“RNA世界”假说。核糖体的催化活性位点附近没有蛋白质,证明肽键形成是由RNA催化的,即核糖体是一个核酶。许多抗生素正是通过利用原核与真核核糖体结构的差异来发挥作用的。
- 非编码RNA:包括tRNA、rRNA、UTR、snRNA、snoRNA、转录终止子、信号识别颗粒SRP、tmRNA、microRNA、lncRNA以及核糖开关等。
核糖开关是一种具有多种构象的RNA,其构象会响应某些刺激(如配体结合、温度变化)而改变。通常,一种构象会阻断调控元件(如核糖体结合位点),从而调节基因表达。
利用共变分析预测RNA结构 🔄
如果我们拥有一个RNA的多个同源序列比对,可以利用共变现象来推断其二级结构。其原理是:为了维持碱基配对,当配对中的一个碱基发生突变时,另一个配对的碱基会发生补偿性突变以维持配对能力。
互信息统计量
为了客观地衡量两列之间的共变程度,常用互信息作为统计量。对于比对中的第i列和第j列:
- 计算每列中各个核苷酸的频率 fᵢ(x) 和 fⱼ(y)。
- 计算两列间每个核苷酸对 XY 的联合观测频率 fᵢⱼ(x, y)。
- 互信息 MIᵢⱼ 的计算公式为:
MIᵢⱼ = Σₓ Σᵧ fᵢⱼ(x, y) log₂ [ fᵢⱼ(x, y) / (fᵢ(x) fⱼ(y)) ]
这实质上是观测联合分布与假设两列独立时的期望分布之间的相对熵。如果两列独立,MI为0;如果存在强共变关系(如严格互补),MI值会较高(最大可达2)。
应用步骤与注意事项
- 对多重序列比对,计算所有列对之间的互信息。
- 寻找互信息值高的列对。
- 检查这些高互信息列对所对应的核苷酸是否倾向于互补。
- 寻找连续位置之间的共变模式,形成潜在的茎区。
- 此方法要求:
- 二级结构在进化中保守。
- 序列间有足够的分化以产生变异,但又不能分化太大以致无法获得可靠比对。
- 通常无法有效预测涉及交叉弧线的假结结构。
利用能量最小化预测RNA结构 ⚖️
当没有同源序列或比对不可靠时,可以使用基于热力学的能量最小化方法预测RNA二级结构。其基本思想是:RNA折叠由折叠自由能决定,碱基配对带来焓减(有利),而结构有序化导致熵减(不利)。
Nussinov算法:最大化碱基配对数
早期方法试图最大化碱基配对数量,忽略熵效应。Ruth Nussinov提出了第一个使用动态规划解决此问题的算法。
算法核心思想
- 填充顺序:不同于序列比对从一端开始,该算法从序列内部(短片段)开始,逐步向外(长片段)计算。这对应在一个
n x n的矩阵中,从主对角线开始,向右上角填充。 - 递归关系:计算序列区间
[i, j]的最大配对数S(i, j)时,考虑四种情况:- 情况1:
i与j配对。则S(i, j) = S(i+1, j-1) + 1。 - 情况2:
i不配对。则S(i, j) = S(i+1, j)。 - 情况3:
j不配对。则S(i, j) = S(i, j-1)。 - 情况4:分岔。
i和j分别与区间内部的碱基配对,将区间分成两部分。则S(i, j) = max_{i<k<j} [ S(i, k) + S(k+1, j) ]。
S(i, j)取以上四种情况的最大值。
- 情况1:


算法步骤与复杂度
- 初始化
n x n矩阵,主对角线及次对角线元素为0。 - 按从短到长的顺序(即向右上角方向)递归填充矩阵,并记录回溯指针。
- 矩阵右上角元素
S(1, n)即为最大配对数。 - 通过回溯指针重建最优二级结构。
该算法的时间复杂度为 O(n³),空间复杂度为 O(n²)。因此,对于长序列(>1000 nt)计算较慢,且基础算法无法处理假结。
现代RNA折叠算法
现代算法(如Mfold、Vienna RNAfold)使用了更精细的热力学模型,不仅考虑碱基配对数量,还考虑具体配对类型(GC比AU更稳定)、环区大小等因素。它们能计算最小自由能结构、次优结构以及基于配分函数的碱基配对概率。这些工具的预测准确率通常在70%左右。
应用实例
- U5 snRNA:Mfold预测的结构非常明确,能量点图显示几乎没有其他竞争结构。
- 赖氨酸核糖开关:Mfold预测显示存在多个低能量结构(点图中多种颜色的点),这与其已知的、依赖配体浓度在两种功能构象间切换的特性相符。
总结 🎯
本节课我们一起学习了RNA二级结构的相关知识。我们首先回顾了HMM及其在真实世界中的应用,如TMHMM。然后,我们深入探讨了RNA二级结构的定义、表示方法及其重要的生物学功能,并以核糖体和核糖开关为例。最后,我们重点介绍了两种预测RNA二级结构的方法:
- 共变分析:利用多重序列比对中的补偿性突变来推断结构,适用于有同源序列的情况。
- 能量最小化:基于热力学原理,使用动态规划等算法预测最小自由能结构,适用于任何序列。


理解这些方法有助于我们解读非编码RNA的功能、寻找新的RNA基因,并设计实验验证其结构。
012:蛋白质结构导论;结构比较与分类

以下内容基于知识共享许可协议提供。您的支持将帮助麻省理工学院开放式课件继续免费提供高质量教育资源。如需捐款或查看来自数百门MIT课程的其他材料,请访问 ocw.mit.edu。
我是欧内斯特·弗兰克尔,我将讲授接下来的几节课。我鼓励大家在课外有任何问题时联系我,也欢迎在课堂上提问。尽管有摄像机和阶梯教室,环境可能有些非个人化,但我们希望能克服这一点。
本单元将重点介绍计算生物学中跨尺度的研究,从处理原子水平蛋白质结构基础的计算问题,到蛋白质-蛋白质相互作用、蛋白质-DNA相互作用以及小分子,最终深入到蛋白质网络。我们需要涵盖很多内容,但我相信我们能够完成。
正如你们在课程大纲中看到的,前几节课将深入探讨蛋白质结构在分子水平的分析,然后我们将转向一些更高层次的分析,包括蛋白质-DNA相互作用和基因调控网络。
我认为你们很多人可能都熟悉这句话:“除非从进化的角度,否则生物学中的一切都毫无意义。”我想提供一个修改版:“除非从结构的角度,否则生物学中的许多东西都难以理解。”蛋白质结构、DNA结构。当然,我们在分子生物学早期就看到了这一点,当DNA结构被解析时,它为何是遗传基础的原因立刻变得清晰。
但蛋白质结构的影响更为持久。一次又一次,许多事件真正彻底改变了我们对特定生物学问题的理解。一个当时令人震惊的例子与癌症中最常突变的蛋白质有关,即P53基因。大约一半的癌症中都有该基因的突变。在基因组测序时代之前,识别肿瘤中的突变实际上非常昂贵和困难,因此他们专注于这个特定基因。他们观察到突变是成簇出现的。
这是该蛋白质从N端到C端的结构图,条形图表示突变的频率。可以看到,它们几乎都聚集在这个分子的中心区域。为什么会这样?在MIT的卡尔·帕沃和他的博士后尼洛·帕沃利奇解析其结构之前,这始终是个谜。他们实际上表明,这些簇对应于关键的结构域。在第二篇论文中,他们进一步揭示了突变为何发生在这些特定位置。
如果你看左上角的图,上面是蛋白质序列,下面是突变频率,再下面是二级结构元件。你会发现突变发生在没有规则二级结构的区域,而在有二级结构的区域,突变可能频繁也可能完全没有。因此,二级结构元件的存在本身并不能解释突变的原因。
但当三维结构及其与DNA的复合物结构被解析后(如右图所示,左边是蛋白质结构,右边是DNA结构,黄色标记的是这些高频突变的残基),结果发现,所有高频突变的残基都位于蛋白质与DNA的相互作用界面上。因此,通过一张图,我们现在理解了为什么多年来这个谜团一直存在:突变为何如此特异性地聚集在这个蛋白质中,且方式并不明显。由于这是蛋白质与DNA的界面,这些突变扰乱了P53通过其作用进行的基因调控和转录调控。
因此,为了理解蛋白质功能,我们需要理解蛋白质结构。那么,我们从哪里获取这些结构呢?关于蛋白质如何被解析的统计数据,我在这里展示的是来自PDB(蛋白质数据库)的数据。它的全称是RCSB蛋白质数据库,但通常简称为PDB。这张幻灯片显示,当时大约有80,000个结构是通过X射线晶体学解析的。
第二常用的方法是核磁共振,解析了大约10,000个结构,而所有其他技术产生的结构非常少,只有几百个,而不是几千个。
那么这些技术是如何工作的呢?它们不会神奇地直接给你一个结构。它们提供信息,你需要通过计算来推导结构。
这是通过X射线晶体学解析结构的示意图。首先,你必须培养出蛋白质或你感兴趣研究的蛋白质与其他分子的晶体。这些晶体不像石英那样大,它们甚至比食盐还小,通常肉眼勉强可见,并且非常不稳定,必须保持在溶液中或经常冷冻。然后你用一束高功率的X射线照射它们。
大多数X射线会直接穿过,因为X射线与物质的相互作用很弱。但少数X射线会发生衍射。从这种微弱的衍射图案中,你实际上可以推断出散射X射线的电子在晶体中的位置。
右下角的图片显示了浅蓝色的电子密度云,以及贯穿其中的蛋白质结构。经过大量计算工作后,你可以从这些晶体学衍射图案中计算出电子密度的位置。然后,计算上的挑战是尝试找出能够产生该电子密度的原子位置,这些原子在被X射线照射时会产生X射线衍射图案。因此,这实际上是一个迭代过程,从一个初始结构开始,然后根据该结构计算电子的位置,再根据电子位置计算X射线照射时可能产生的衍射图案,并确定预测的衍射图案与实际衍射图案的吻合程度,然后不断迭代。显然,这是一个高度计算密集型的问题,因为你不仅要找到与观察到的衍射图案最一致的位置,还要找到与物理学最一致的位置。
例如,如果我们这里有一块分子,我们不能随意放置原子。它们需要以明确的键长、键角等位置放置。因此,这是一个高度耦合的问题,我们必须解决。我们将研究支撑这些方法的一些技术,尽管不会专门研究如何解析晶体结构。
你提到,第二常用的技术是核磁共振。这项技术不需要晶体,但需要非常高浓度的可溶性蛋白质,这本身也带来了问题。从核磁共振结构中获取的信息不是电子密度的位置,而是一组距离,告诉你两个原子(通常是质子)之间的相对距离。这在这里用黄色线条表示。同样,我们面临一个困难的计算问题:需要找出一个与所有物理力一致的蛋白质结构,同时使特定的质子彼此处于特定的距离。
因此,我们说“解析”晶体结构、“解析”NMR结构,因为这是解决一个非常复杂的计算挑战的方案。我们将要研究的技术(虽然不是专门用于解析晶体和NMR结构)是这些技术的基础。我们将重点关注一个可能更复杂的问题:蛋白质结构的从头预测。也就是说,如果我有一个序列,我能否告诉你一些关于其结构的重要且准确的信息?
《结构生物信息学》一书中有一个很好的总结,它真正涉及了许多与结构相关的计算生物学问题,并突出了我们在本课程中迄今为止看到的算法类型与我们在理解蛋白质结构时需要采取的方法类型之间的许多差异。
首先,最根本、最明显的是,我们处理的是三维结构。因此,我们正在从简单的线性数据表示转向处理更复杂的三维问题。因此,我们遇到了各种新问题。我们不再拥有离散的搜索空间,而是有一个连续的搜索空间。我们将研究试图将这个连续搜索空间简化回离散空间的算法,以使其成为一个更简单的问题。
但也许最根本的区别是,现在我们必须引入大量物理知识作为算法的基础。仅仅从物理学中完全抽象出来解决这个问题是不够的,我们实际上必须在算法的核心处理物理学问题。我们将在本次讲座的其余部分讨论红色高亮的问题。
另一个即将出现的问题是,如果存在从蛋白质序列到结构的简单映射就好了。如果是这样,你会认为两个序列差异很大的蛋白质会有不同的结构。但事实上,情况并非如此。你可以有两个序列相似性几乎为零的蛋白质,却采用相同的三维结构。因此,这显然是一个极其复杂的问题。更复杂的是,我们并不知道所有的结构。我们并不是从一个已知结构的离散集合中选择我们的新分子是什么,我们需要处理蛋白质链潜在的无限构象。
好的,我希望你们有机会查看我发布在网上的蛋白质结构复习材料。如果没有,请务必查看,这对理解接下来的几节课非常有帮助。我将假设你们熟悉蛋白质结构的基本要素:什么是α螺旋、β折叠、一级结构、二级结构等等。我也鼓励你们熟悉氨基酸。如果不了解氨基酸是什么,就很难理解蛋白质结构中的任何内容。教科书中有很好的图表总结了描述氨基酸特征的多种重叠方式,请熟悉它们。
这些是我们发布在网上的资源。此外,RCSB蛋白质数据库也有极好的在线资源,可以帮助初学者理解蛋白质结构。我鼓励你们查看他们的网站。特别是,他们的网站上有可以下载的可视化蛋白质结构的工具,这将是理解这些算法的关键组成部分,以便真正了解这些结构的样子。我特别推荐两个我觉得特别容易使用的工具:PyMOL和Swiss-PDB Viewer。你不仅可以用这些技术查看结构,还可以修改它们,甚至可以进行同源建模。
在我们深入研究理解蛋白质结构的算法之前,我们需要了解蛋白质结构是如何表示的。我已经提到过这些重复单元,我希望你们已经知道α螺旋和β折叠,这里不再详述。但描述蛋白质结构的两种更定量化的方式与三维坐标(每个原子的X、Y、Z坐标)和内部坐标有关。我们将稍微详细地介绍这些。
再次强调,这个PDB网站有很多很好的资源来理解这些坐标的样子。它们很好地描述了所谓的PDB文件。这些PDB文件开头有现在称为元数据的信息,但当时只是关于蛋白质结构如何解析的信息。它会告诉你蛋白质来自什么生物体,如果不是从该生物体纯化而是重组表达的,它是在哪里合成的,关于晶体结构如何确定的细节等等。
序列,这些大部分我们不会关心,但我们会关心的是这里更详细显示的底部部分。让我们看看这些行各自代表什么。包含原子坐标信息的行以单词“ATOM”开头,然后是一个索引号,只是文件中每一行的参考,告诉你它是什么类型的原子,它在蛋白质的哪条链上,以及残基编号。这里从残基100开始,这里的序列可能是任意的,可能与Swiss-Prot或GenBank中出现的蛋白质序列无关。
接下来的三列对我们最重要。这些是原子的X、Y、Z坐标。要在三维空间中确定任何分子的位置,至少需要三个坐标。这些就是那三个坐标。
它们后面跟着另外两个数字,这两个数字实际上非常有趣,因为它们告诉我们关于分子(原子)在晶体结构中确实处于该位置的确定程度。第一个是占有率。在晶体结构中,我们实际上获取的是晶体重复单元中成千上万个分子的信息。晶体一个单元和下一个单元之间的结构可能存在一些变化。因此,一个侧链在一个晶体中可能在这里,而在晶体的下一个重复单元中可能在那里。如果存在离散的构象,那么信号就会减弱,你实际上会得到所有可能构象的某种叠加。
这里的数字1意味着似乎存在一个主要的构象。但如果存在多个离散的构象,例如,你可能发现占有率为0.5,然后另一行显示另一个位置,占有率也是0.5。这就是当这些原子位于离散位置时的情况。
B因子称为热因子,它告诉你晶体中有多少热运动。这意味着什么?如果我们考虑晶体结构,其中一些部分在中心是坚固的,高度受限,蛋白质的致密核心不会发生太大变化,但在蛋白质表面,可能存在高度灵活的残基。因此,当它们在晶体中被撞击时,它们会以略微不同的方式散射X射线,但它们并不处于离散的构象。所以我们不会看到多个独立的位置,只会看到某个平均位置。这种噪声可以用这些B因子来解释,其中高数值代表结构的高度移动部分,低数值代表非常稳定的部分。
这里非常低的数值,比如20。像80这样的数值通常出现在分子末端,那里有很多结构灵活性。
因此,我们有这种描述蛋白质结构的方式,即指定每个原子的X、Y、Z坐标,并且有这两个参数来表示热运动和静态无序。那么,这些坐标是唯一定义的吗?如果我有一个结构,写下X、Y、Z坐标的方式是否只有一种?有些人说是,有些人说不是。为什么不是?你可以旋转它,可以设置原点,所以没有唯一定义的方式,这将在后面再次提到。



好的,这是一种描述蛋白质三维坐标的非常精确的方式,但并不是一种非常简洁的表示方式。为什么?正如静态模型所示,蛋白质结构的某些部分确实不会发生太大变化。键长在蛋白质结构中变化很小。四面体配位的碳原子不会突然变成平面构型。这些变化非常小。所以,如果我指定了这个碳的X、Y、Z坐标,另一个碳的位置自由度其实并不多,它必须位于某个距离的球面上。因此,与其表示每个原子的X、Y、Z坐标,我可以使用内部坐标。
在这张幻灯片中,我们有一个氨基酸,氨基氮、羰基碳,这是一个单一的氨基酸。这是连接到下一个氨基酸的肽键。如图所示,一个氨基酸的羰基碳与下一个氨基酸的酰胺氮之间的键是平面的。所以那个角度甚至不旋转。这是我们完全移除的一个自由度。主链中旋转的角度称为φ和ψ,φ在这里,ψ在这里。
因此,这是两个决定这个氨基酸构象的自由度。所以,与其指定所有坐标,我可以通过给出每个氨基酸的两个数字(φ角和ψ角)来指定主链,并假设ω角(这个肽键)保持不变。同样,对于侧链,我们稍后会更详细地介绍,我们可以给出侧链中可旋转键的坐标(旋转角度),而不是指定向外延伸的每个原子。
好的,我们有了这两种不同的表示蛋白质结构的方式。我们会看到两者都被使用。对此有任何问题吗?很好。
那么,如果我们观察蛋白质结构,我们想问的一个问题是:如何比较两个蛋白质结构?
我们已经提到,蛋白质可以具有相似的结构,无论它们的序列是否高度相似。例如,如果我有两个高度同源的蛋白质,具有高度的序列相似性,比如这两个来自牛和鼠的同源蛋白,从远处看,它们都有非常相似的结构,并且有74%的序列相似性。这并不奇怪。但你也可以得到序列相似性非常低的蛋白质,它们仍然是进化相关的,比如这些来自不同物种的同源蛋白(具有相同蛋白质),或者同一物种中具有两个相似但非完全相同的拷贝的蛋白质,它们保持相同的结构,即使只有大约20%到30%的序列相似性。
你甚至可以发现更远的关系。例如,这里有两个都在人类中的蛋白质,进化相关,但只有4%的序列同一性。然而,从远处看,它们看起来几乎一模一样。这些是进化相关的蛋白质。
但我们也可以有被称为类似物的东西,它们没有进化关系,没有明显的序列相似性,却采用几乎相同的蛋白质结构。这增加了我们试图解决的生物学问题的复杂性。
那么,如何定量比较两个蛋白质结构呢?常用的度量是称为RMSD(均方根偏差)的东西。这里我有一组通过NMR解析的结构。你可以看到有一个定义良好的结构核心,然后有一些部分定义不佳,没有足够的约束来定义它们。这些蛋白质都已经对齐,因此X、Y、Z坐标已经经过旋转和平移以达到最大程度的一致。一致性的度量就是这个均方根偏差。
我需要定义两个结构中成对的原子。如果像这里一样是同一个结构,那很容易,每个原子在这个用相同分子解析的结构中都有一个匹配项。但如果我们处理两个同源蛋白质,这就变得有点棘手,我们需要定义哪些氨基酸将匹配起来。我们还可以定义我们是否关心侧链的变化,或者只关心主链的变化,是否关心质子是否在正确的位置。你会看到,这些比对可以只使用重原子(不包括氢),或者只使用主链原子(完全不包括侧链)。
但一旦我们定义了对应的原子对,我们将取对应原子在X、Y、Z坐标上距离的平方和,然后取该和的平方根,这就得到了均方根偏差。当然,我们必须通过刚体旋转来最小化这个均方根偏差,以考虑到我可能将PDB文件的原点设在这个原子,或者设在那一个原子等等。对此有任何问题吗?是的。
问题:我们考虑单个原子吗?我们有一个选择。问题是我们是否考虑分子中的每一个原子?我们不一定需要。这实际上取决于我们试图解决的问题。例如,如果我们想看看两个蛋白质是否具有相同的折叠,我们可能不关心侧链,因此可能只限于主链原子。但如果我们试图判断两个晶体结构是否彼此吻合,或者像我们稍后会看到的,我们试图预测蛋白质的结构,并且我们有相同蛋白质的实验确定结构,我们想判断两者是否一致。在这种情况下,我们可能实际上希望确保每个原子都在正确的位置。所以这将取决于我们试图回答的问题。好问题。还有其他问题吗?好的。
到目前为止,我展示了很多分子的静态图片。我想强调的是,分子实际上移动很多,所以我在这里播放一小段视频。
好的,那部分是为了在课堂上播放一点新世纪音乐的借口。更根本的是,它提醒你,尽管我们会向你展示很多蛋白质的静态图片,但它们实际上是高度动态的,并且它们有明确的结构,但可能不止一个明确的结构,特别是那些执行工作的分子,它们实际上在移动东西,具有多种结构。因此,当我们考虑蛋白质结构时,这是一种近似,我们通常指的是蛋白质结构,而不是单一的某个结构。
那么,是什么决定了蛋白质结构?我告诉过你,是物理学,从根本上说,这是一个物理问题。因此,最佳的蛋白质结构必须是能量最小值。作用在蛋白质上的净力必须为零。力是势能的负导数,所以该导数必须为0。因此,我们必须有一个蛋白质结构的最小值。这并不意味着恰好只有一个最小值,那些在视频中有多种构象的蛋白质显然有多个最小值,取决于其他情况,但至少必须有一个局部最小值。所以,如果我们知道这个U(势能函数),并且可以对其求导,我们就可以通过简单地识别该势能函数中的最小值来确定蛋白质结构或蛋白质结构。
现在,如果生活如此简单就好了。但我们将看到,有一些方法可以参数化U,并用它来优化结构,从而至少找到局部最小值。我们将主要研究两种描述势能函数的不同方式。一种方式,我们将像物理学家那样看待问题;另一种方式,我们将像统计学家那样看待它。
因此,物理学家希望描述支撑蛋白质结构的物理力。因此,我们将尽可能尝试写出代表这些力的方程。我们并不总是能够做到这一点,因为涉及的许多力是量子力学的。两个固体物体不会相互穿过,正是因为涉及量子力学的排斥原理。我们不会为蛋白质结构中的每个原子写下量子力学方程,但我们会写下近似这些力的方程。并且,只要可能,我们将尝试将方程中的项与物理学中可识别的东西联系起来。这种方法的一个很好的例子是CHARMM程序。实际上,这些方法正是去年获得诺贝尔化学奖的方法。
在光谱的另一端是统计方法。在这里,我们并不真正关心潜在的物理特性,我们想要的是捕捉我们在自然界中观察到的现象的方程。通常,这两种方法会很好地吻合。物理学家为了捕捉基本物理力而做出的某些近似,可能正是描述自然界现象的最佳方式。因此,这些项在CHARMM版本和我最喜欢的统计方法(即Rosetta)中可能看起来没有区别。但我们会看到,在某些地方,这两种方法在如何描述分子势能函数方面存在根本分歧,因为一种试图描述物理力,而另一种试图描述统计力。
观众中有德语母语者吗?你想为我们读一下这个笑话吗?物理学。它说你可以在这里或这里找到自己。对于视频来说,这是量子力学研究所。你去MIT的地图,它会说你在这里,但在量子力学研究所,它说你在这里或那里。所以这是物理学家的方法。我们确实必须考虑这些量子力学特征,而右边是统计学家的方法。它说数据没有任何意义,我们必须求助于统计学。好的,所以统计学家可以在不理解潜在物理力的情况下走得很远。
那么,让我们先看看物理学家的方法。我们将势能函数分解为键合项和非键合项。键合项,顾名思义,将是结构中彼此接近的原子。当然,这两个原子因为通过单键连接而成为键合项。但我们也会看到,三个或四个彼此靠近的原子组也会成为键合项。非键合项则是当我有另一个分子靠近,但不是直接连接时。这两者之间的物理力是什么?
这些键合项首先分解为许多子项。我在这里展示函数形式。我们将只详细看其中几个,然后让你了解其他项是什么。第一个是描述两个键合原子之间距离的键合项。同样,这本质上是量子力学特性,但描述量子力学的计算成本太高,而且并非真正必要,因为通过将其描述为刚性弹簧就可以做得很好。
因此,方程中的这个二次形式就代表了这一点。我们简单地定义这里的b0是这两种特定类型原子之间的平衡位置(这里可能是两个四面体配位的碳)。这个参数是通过观察许多非常高分辨率的小分子晶体结构来确定的。我们知道这种键的典型距离,我们将其作为一个参数。CHARMM程序中会有一个大文件列出所有这些键合项的参数。然后,如果在你的优化过程中分子被拉伸了一点,导致有小的偏差,就会有一个惩罚项将其拉回,就像弹簧将其拉回一样。
事实证明,当你这样做时,你实际上必须提出很多方程来保持几何形状。因为,我们不仅需要担心这些距离键,还需要担心角度。所以我们需要考虑这个键和这个键之间的角度。是什么保持它在适当的位置?因此,我们需要添加另一个项,这是这里的第二项,以使这些之间的角度固定。
然后我们必须处理所谓的二面角,以确保这四个原子处于允许的几何形状中。因此,这些项中的每一项都解释了类似的事情。这里的最后一项确保φ和ψ角与我们看到的量子力学一致,并根据我们在这些小分子中观察到的任何偏差进行校正。因此,有很多项和很多参数,试图捕捉我们所观察到的最佳描述。但每一项的动机都是基于其下有一些量子力学原理。
那么,这些非键合项呢?非键合项是指那些在蛋白质结构中彼此相距较远,但在三维空间中靠近的分子。这里有两种基本力。第一种称为Lennard-Jones势,第二种是静电势。Lennard-Jones势本身由这两项组成:一项是R的负六次方依赖项,另一项是正的R的十二次方依赖项。负的R的六次方是一个吸引势,这就是为什么它是负的。这是由于每个原子电子云中产生的小诱导偶极子将分子拉在一起。R的负六次方依赖性与两个偶极子相互作用的物理学有关。
R的十二次方项是对量子力学力的近似。正如我们已经说过的,两个分子不会相互穿过,是因为量子力学力,而计算这些力非常昂贵。所以我们想出一个容易计算的项。当然,R的十二次方项就是R的六次方项的平方。所以如果你计算了两个原子之间的一个R的负六次方,你只需将其平方,就得到了R的负十二次方。这在计算上非常高效。然后你调整这些参数(如R_min),使其与晶体结构合理地吻合。这些是我们非常了解的小分子的晶体结构。
然后是静电势,正如你可能预期的那样,它有一个随距离变化(1/R)的势,并且是电荷的乘积。这些可以是全电荷,也可以是部分电荷。这里有一个项,这个ε,是介电常数。它代表了在真空中,两个带相反电荷的分子之间的拉力比在水中大得多,因为水会屏蔽。因此,这些静电项,这个介电势项,可以从1(真空)变化到大约80(水)。设置这个值有点艺术性。
那么,这些势能看起来像什么?这里展示了。深色线是范德华势的总和,它由具有R的负六次方依赖性的吸引项和具有R的负十二次方依赖性的排斥项组成。为什么在短距离时它上升得如此之高?因为分子不能重叠。你会看到有一个最小值。因此,在没有其他力的情况下,两个原子之间存在一个最佳距离。这大致就是比例模型中这些硬球距离所代表的。
静电势显然也有一个吸引项,但随着距离变小,它会急剧增加(变得更有利)。因此,这两者的总和如图所示,即范德华力和静电力的组合。它再次有一个强最小值,但随着距离变近,变得高度正(排斥)。关于这些力有任何问题吗?是的,范德华势和Lennard-Jones势是同一个吗?通常,这两个术语可以互换使用。还有其他问题吗?好的。
这就是物理学家描述势能函数的方式。正如我告诉你的,Rosetta是统计方法的一个例子。它拒绝了所有这些试图通过原子间刚性弹簧来计算精确距离的严格定义,而是说,让我们固定很多这些角度。所以我们要固定两个原子之间的距离,让它变化微小的键长分数是没有意义的。我们要固定四面体碳的四面体配位,不让它们变形,因为这在现实中永远不会发生。因此,我们将搜索空间完全集中在可旋转键上。还记得主链中有多少个可旋转键吗?有两个,即φ角和ψ角。在侧链中,我们会有侧链上的可旋转键。
在这个例子中,这是一个半胱氨酸。这是主链,这是硫原子。我们恰好有一个感兴趣的可旋转键,因为我们并不真正关心氢的位置。所以,如果我们有这个χ1角,如果这里有更多原子,这将被称作χ2和χ3。这些可以旋转,但它们不是自由旋转的。我们在晶体结构中并没有观察到这些角度的每一种可能旋转。这正是左边图表所代表的:对于这个侧链,有χ1、χ2和χ3,深色区域代表在许多晶体结构中观察到的构象。你可以看到它是高度非均匀的。为什么会这样?
我看到后面有人开始用手比划。那么,为什么会这样?如果你们不是在比划,那也是非常有趣的手语。如果我们沿着其中一个四面体碳-碳键看下去,我们显然有一个自由旋转。但实际上,在某些构象中,一个碳上的原子和另一个碳上的原子之间会有很多空间位阻冲突。因此,这不是一个有利的构象。有利的构象是交错的,这种效应在整个蛋白质链中传播。因此,某些角度是高度偏好的,而其他角度则不是。这些高度偏好的角度被称为旋转异构体。因此,我们现在将找出这个χ1旋转的最佳角度的连续问题,转变为一个离散问题,其中可能只有两到三个可能的旋转选项。所以现在我们可以决定,是这个比那个好,还是那个比这个好。
关于旋转异构体或任何这些有问题吗?很好。
那么,我们如何确定呢?我们已经决定,我们将完全用这些内部坐标来描述蛋白质:主链的φ和ψ角,侧链的χ角。我们仍然需要一个势能函数。这还没有告诉我们如何找到最佳设置。我们可以尝试避免CHARMM的方法,即通过观察量子力学来决定这些项是什么。那么他们实际上是如何做到的呢?他们获取大量高分辨率晶体结构,并表征这些晶体结构中的某些特性。例如,他们可能表征一个脂肪族碳靠近酰胺氮的频率,他们确实测量了所有晶体结构中酰胺氮和脂肪族碳之间的距离,并确定这些距离出现的频率。
然后,你可以通过简单地使用玻尔兹曼方程,将这些观察结果转化为势能函数。因此,我们可以找出在X轴(距离)和Y轴(频率,即晶体结构中的条目数)上,我们得到某些距离的频率。然后,根据玻尔兹曼定律,我们可以计算相对于某个参考的状态密度,这个参考实际上很难定义。你可以查看幻灯片中引用的参考文献,了解目前是如何定义的。但我们必须找到某个任意的参考状态,以确定处于这些状态中任何一个的概率将是这些状态频率的对数函数。
因此,我们得到了一个完全由距离观察决定的能量项,它并不说“我知道这个带电,那个不带电”,它只是说这里有一个带双键的碳氧原子,这里有一个不带电的碳,它们在任意特定距离的频率是多少。我们对许多其他特性也进行同样的处理。我们现在将详细研究这些其他项是什么,查看高分辨率晶体结构,看看某些特性是什么,然后将它们转化为势能函数,我们可以用来确定侧链和主链的最佳旋转。
我还应该指出,当我们这样做时,我们会有不同的项或不同的东西。我们会有描述不同种类原子之间距离的项,我们会有描述范德华力等势能部分的项,我们将在后续幻灯片中描述。我们需要决定如何权衡所有这些独立的项,以便最终得到合理的蛋白质结构。这又是一个曲线拟合练习,找到最适合数据的数字,而没有任何指导性的物理原理。
你将会使用PyRosetta。在PyRosetta中,你会看到势能函数各项的列表。我将带你了解其中几项,以便你知道你在使用什么。在PyRosetta安装文件中,也会给出每项的相对权重。
好的,前两项是范德华力。这里,曲线的形状看起来就像我们之前看到的那样,在某种意义上必须如此,因为它们试图解决相同的物理问题。但动机非常不同。这里没有试图决定是否应该因为偶极-偶极相互作用而采用1/R^6,而仅仅是:我如何找到一个能准确代表数据库中观察到的现象的函数。
因此,再次强调,这是计算的,FAA吸引和FAA排斥,这些是基于晶体结构中观察到的统计数据确定的。
这一项,氢键,分解为骨架和侧链、长程和短程。氢键是蛋白质结构的主要决定因素之一。你会在发布的阅读材料中看到这一点。关于氢键的一个关键点是它需要近乎平面。因此,连接这个带有氢的原子和这个带有自由电子对的原子之间的角度必须尽可能接近线性。偏离线性越多,氢键就越弱。
因此,这个氢键势能包含描述供体和受体原子之间距离的项,以及它们之间的角度。它已被参数化,以分别代表彼此相距较远和较近的事物、侧链或主链的事物。这里确实是统计学家与物理学家的分歧所在。为什么要区分侧链和主链?没有任何物理原理驱使你这样做。仅仅是因为这样能使模型最好地拟合数据。因此,统计学家不害怕添加能使模型更好地拟合现实的项,即使它们不揭示任何基本的物理原理。
我们会看到,对于其他一些项,这种差异甚至更加显著。这是拉氏图,你也会在阅读中看到。它代表了观察到的φ和ψ角的频率。正如你所知,在这个φ-ψ图上只有几个位置是经常观察到的,代表了不同的规则二级结构,主要是α螺旋和β折叠。与其试图通过让周围都有很好的力来捕捉蛋白质应该形成α螺旋的事实,他们只是简单地偏好拉氏图中观察到的角度。因此,我们将给出一个势能函数,如果你的φ-ψ角最终落在这里,就会惩罚你;如果你的φ-ψ角最终落在这些位置之一,就会奖励你。对于物理学家来说,这是作弊;对于统计学家来说,这完全合理。
你应该对此一笑。好的,对于旋转异构体也是如此。所以对于侧链,我们说过,有些角度比其他角度更受偏好,因为这是我们在数据库中观察到的。同样,我们不会试图通过确保当这两个原子重叠时它们之间有排斥力来得到它们,我们将简单地通过说当你处于这些交错构象之一时势能较低,而当你处于重叠构象时势能较高来得到它们。
现在,统计学家和物理学家之间差异最显著的地方出现在我们观察溶剂化项时。决定蛋白质结构的很多因素(我应该说)是蛋白质与水的相互作用。蛋白质沐浴在55摩尔浓度的高度极性的水分子浴中,它们通常彼此形成氢键。当蛋白质位于其中时,蛋白质必须开始与它们形成氢键。
我们在蛋白质结构的哪里发现疏水残基?在外面还是里面?里面。因此,疏水残基都将被埋在里面。为什么会这样?实际上,用基本的物理原理来描述这一点真的非常困难。事实上,用基本的物理原理来描述水的结构真的非常困难。几年前,试图让水结冰的模拟才取得成功。因此,如果你试图使用基本物理原理模拟水,当你降低温度时,很难让它形成冰。因此,要表示一个浸在水中的复杂蛋白质结构如何实际与那些水分子相互作用,就更难了。
你有所有这些水分子与极性残基或非极性残基相互作用。物理学家真的很难表示这些。为了说明原因,让我再播放一小段视频,遗憾的是,这次没有新世纪音乐。
这里显示的是一个浸在一堆水分子中的球体。棕色是氧原子,白色小部分是氢原子。你可以看到它们四处摆动。你观察到的基本特征是什么?它们几乎在这个疏水分子周围形成了一个笼子。为什么会这样?它们很难与之相互作用。因此,它们很难与非极性残基相互作用。所以水分子想要最小化它们的势能。它们将通过与大块溶剂中的某物形成氢键来实现这一点。它们与其他水分子形成氢键。在这里,它们无法与球体形成任何氢键。因此,它们必须跳复杂的舞蹈,试图在中间有这个物体的情况下彼此形成氢键。
好的,这本质上是疏水效应的基本驱动力,它导致疏水残基被埋在蛋白质内部。正如我所说,使用基本物理力来模拟这一点非常非常困难。
那么统计学家怎么做呢?统计学家拥有实验观察和统计数据的优势。我们可以测量任何分子的疏水性。我们可以将碳原子放入非极性溶剂和极性溶剂中,确定分子在极性环境与非极性环境中花费的时间比例,并由此得到任何原子从疏水环境转移到亲水环境的自由能。这可以给我们这里的ΔG_ref。
现在,在蛋白质中,即使是在表面上,那个分子也不是完全溶剂暴露的。因为水分子试图从这个方向接近它,无法到达;从那个方向接近它,也无法到达。因此,这个碳从完全溶剂暴露状态转移到埋藏状态的转移能量,与孤立碳的不同。
因此,统计学家说,好吧,我想出一个函数来描述这一点。我将描述蛋白质结构中这个原子附近还有什么。这就是右边的项所做的:对所有其他相邻原子求和,并将相邻基团的体积描述为旁边的东西真的很大还是很小。通常不一定在原子水平上描述,可能是侧链,取决于哪个程序在做,但我有邻居体积的某种度量。如果那个体积非常大,并且这个东西已经处于疏水环境中,即使它伸入水中,因为它被庞大的东西包围。如果邻居很小,那么当它伸入水中时,环境就更亲水。这将调节这个自由能。这个函数清楚吗?
好的,因此,通过结合来自小分子转移实验的观察和基于蛋白质结构的这些观察,我们可以得到疏水效应的近似值。让蛋白质的这一部分处于溶剂中与处于疏水核心中,代价有多大?再次强调,我们从未进行任何量子力学计算,从未实际显式计算这个分子与溶剂的相互作用,在这个结构中我们不需要任何水。这仅仅是蛋白质的几何形状,它将为我们提供一个良好的势能函数近似。
好的,所以。你可以在我们提供的Rosetta文档中在线查看所有这些细节,以更好地了解所有这些函数是什么。但你可以看到有很多项。它是逐渐增加的。你发现你的模型有问题,就添加一项来尝试解释它。再次强调,不一定由物理力驱动。
那么,到目前为止我们看到了什么?我们看到了本单元的动机,从蛋白质结构开始,蛋白质结构确实帮助我们理解我们正在研究的生物分子。这些结构将影响我们对生物学的理解。因此,我们需要擅长预测这些蛋白质结构,或者在拥有实验数据时解析它们。
我们将使用的计算方法,我们将专注于从头解析蛋白质结构,预测它们。但这些相同的技术将是用于解析X射线晶体学和NMR的方法的基础。从根本上说,我们有两种描述势能的方法:统计学家的方法和物理学家的方法。记住统计学家的关键简化:A) 我们使用固定的几何形状,我们不试图找出每个原子的X、Y、Z坐标,我们只是试图找出键角。B) 我们将使用旋转异构体,因此我们将把连续的选择转变为离散的选择。C) 我们将使用统计势能来表示势能,这些势能可能有也可能没有清晰的物理基础。
好的,让我们从一个小思想实验开始,尝试进入一些预测算法。我有一个序列,大约100个氨基酸长。这里有两个蛋白质结构。一个主要是α螺旋,一个主要是β折叠。我如何判断这个序列更喜欢顶部的结构还是底部的结构?
实际上,我们已经掌握了很多工具。是的,在后面。答案:我们可以查看先前已知的序列,寻找同源性。这实际上将是一个非常强大的工具。因此,如果数据库中有一个同源物与该蛋白质密切相关并且具有已知结构,那么问题就解决了。如果没有呢?那是我的下一步。是的。如果你从二级结构的描述开始呢?比如螺旋和折叠。你计算每种氨基酸在这些结构中出现的频率。然后你也许可以计算一个可能性。很好,所以答案是:如果我观察这些α螺旋和β折叠,并计算某些氨基酸在α螺旋与β折叠中出现的频率,然后查看我的蛋白质序列,检查我是否有更多有利于α螺旋或β折叠的氨基酸。我们将看到这是一种已成功使用的方法,即二级结构预测。其他想法?是的。
所以我有结构的位置。很好,另一件我可以做的事情是:如果我有这两个结构,我有它们精确的三维结构,我可以尝试将我的序列放到那个结构上,实际上将我的序列的正确侧链放到那个主链构象上。然后我会做什么?我会实际测量蛋白质在顶部结构中的势能和蛋白质在底部结构中的势能。如果势能更高,那是有利结构还是不利结构?有利结构势能更低,所以我想要自由能更低的结构。
好的,让我们想想,这是正确的。这正是我们要讨论的方向。但这种方法的复杂性是什么?首先,关于这些侧链,我现在必须取一个具有其他氨基酸序列的主链结构,并把这些新的侧链放上去。如果我以错误的方式放置它们。假设,其中一个结构是真实结构。让我们从一个简化开始。假设你那个恶作剧的实验室伙伴实际上已经解析了你的蛋白质结构,但拒绝告诉你答案。她实际上解析了两个结构,其中一个她会给你序列,但她会给你两个结构的坐标。它们长度相同。所以她问你,你上了7.91,你能解决这个问题。告诉我你的序列实际上是在这个结构还是那个结构中。所以其中一个是完全正确的,你只是不知道是哪一个。
所以她给你主链坐标。你使用Swiss-PDB,将你的氨基酸序列A添加到主链上,添加所有正确的侧链。但现在你必须为这些侧链构象做出一系列决定。如果你做出错误的决定,会发生什么?好吧,你把这个原子放在靠近另一个原子的地方。现在你有了一个优化问题。你相信其中一个主链坐标是正确的,但你有一个高度耦合的优化问题。你需要找出这个蛋白质上每个侧链的正确旋转,你不能一个一个地做,不能采用贪婪的方法,因为如果我在这里放这个侧链,在那里放那个侧链,它们会碰撞。但如果这个是错的,它应该在那里,那么也许这个是正确的构象。所以我有一个耦合问题。事实证明,计算起来在计算上是昂贵的。
因此,我们将研究如果我们知道主链构象,但不知道侧链构象时该怎么做,我们可以尝试解决那个优化问题。你实际上会在问题集中做到这一点。
那么,如果主链构象不完全正确呢?假设你做了第一个建议,搜索序列数据库,你取这个序列,发现它实际上有两个同源物,两个具有相似序列相似性的东西。有两个蛋白质具有20%的序列同一性,但结构完全不同。这个有20%序列同一性,那个有20%序列同一性。你无法决定哪个是哪个。而且没有一个会是正确的蛋白质结构。

因此,你知道,通过将侧链放在这些蛋白质结构上,你必须解决侧链优化问题。但显然,你还必须解决主链优化问题。这变得更加耦合,因为当我移动这个主链时,侧链随之移动。所以现在我有一个非常非常复杂的优化问题需要处理。搜索空间是巨大的。即使我将其离散化,它仍然非常非常大。事实上,有一个著名的“莱文索尔悖论”,S. 莱文索尔曾是这里的教授,后来去了哥伦比亚大学。他对极其简单的蛋白质结构模型做了一个粗略的计算。如果你想象蛋白质在所有可能的构象中随机搜索,并在可能的构象之间非常快速地切换,那么一个蛋白质基本上需要宇宙的寿命才能折叠。因此,蛋白质不会对所有可能的构象进行随机搜索,它们可以极其快速地检查构象。所以我们当然不能那样做。因此,我们将不得不研究优化技术。

好的,我们讨论了如何使用能量优化函数来尝试决定哪个是正确的。即使结构是正确的,我们也有侧链优化问题。如果结构不正确,我们有两个
013:蛋白质结构预测

以下内容基于知识共享许可协议提供。您的支持将帮助麻省理工开放课件继续免费提供高质量教育资源。如需捐款或查看来自数百门麻省理工课程的其他材料,请访问 MIT OpenCourseware 网站 OCw.MIT.edu。

欢迎回来。希望你们休息得很好,也还记得我们上次课的内容。上次我们介绍了蛋白质结构,并讨论了蛋白质结构预测中的一些问题。现在,我们将更深入地探讨这个问题。上次我们将结构预测问题分解为几个子问题,包括二级结构预测(我们上次已稍作讨论)。早期的算法在70年代能达到约60%的准确率,而数十年的研究仅略有提升。但我们将看到,在结构域识别和预测新型三维结构方面的工作,在过去几年取得了非常显著的进展。
此外,我希望你们还记得,在蛋白质结构能量学方面,我们有两种不同的方法:物理学家的方法和统计学家的方法。这两种方法的关键区别是什么?有人愿意说说这两种方法在参数化结构能量方程时的区别吗?我们试图建立一个将坐标转换为能量的方程。物理学方法和统计方法的主要区别是什么?
是的,统计方法不改变键长和键角,它保持蛋白质的许多部分为刚性,而物理学方法允许所有原子独立移动。因此,一个关键区别是:在物理学方法中,两个相互键合的原子仍然可以根据弹簧函数(一个非常硬的弹簧)相互移动,原子是独立运动的;而在统计方法中,我们固定了原子间的距离。同样,对于一个四面体配位的原子,在物理学方法中,这些角度可以变形;在统计方法中,它们是固定的。所以,在统计方法中,我们具有大致固定的几何结构;在物理学方法中,每个原子独立运动。
还有人记得另一个关键区别吗?能量函数从何而来?在物理学方法中,它们尽可能地从物理原理推导而来;而在统计方法中,我们试图重现我们在自然界中观察到的现象,即使我们没有很好的物理基础。这在预测溶剂化自由能时最为明显:将一个疏水原子放入极性环境需要多少能量?在物理学方法中,你必须有水分子,它们必须与物质相互作用,这非常困难。而在统计方法中,我们提出一个近似:当极性原子在蛋白质结构中时,其溶剂可及表面积是多少?然后我们按此比例缩放转移能量。
所以,这些是主要区别。总结一下:统计方法采用固定几何结构,我们常使用离散的旋转异构体。记住,主链的 psi 和 phi 角原则上可以自由旋转,但通常只观察到少数几种构象,因此我们常将 chi 角限制在最常见的组合上。然后,我们使用依赖于数据库中观察频率的统计势能,这可以是观察到特定原子在精确距离上的频率,也可以是某物处于溶剂可及状态的时间比例。
我们上次还讨论了一个思考题:如果我有一个蛋白质序列和两个可能的结构,如何使用这些势能(无论是来自物理学方法还是统计方法)来决定哪个结构是正确的?一种可能性是,我有一个正确的结构和一个错误的结构。在这种情况下,我该怎么做?我知道其中一个结构是正确的,但不知道是哪一个。如何使用势能函数来决定?
正确的结构会有什么特点?它的能量会更低。但这足够吗?不,这里有一个微妙之处。如果我只是将我的蛋白质序列放到这两个结构中的一个上并计算自由能,并不能保证正确的那个自由能更低。为什么?我需要做出什么决定?当我将蛋白质序列放到一个主链结构上时,是的,侧链。我需要决定如何定向侧链。如果我定向错误,侧链可能会相互重叠,产生极高的能量。因此,在正确放置所有侧链之前,仅仅拥有正确的结构并不能保证得到最小的自由能。
这是简单情况。但在一般的结构域识别问题中,我们不知道正确的结构。我们有同源物。我们有一个序列,并认为它要么与蛋白质A同源,要么与蛋白质B同源。我想决定哪个是正确的。在这两种情况下,结构都是“错误”的,问题在于它有多“错误”。现在问题实际上变得更难了,因为我不仅需要得到正确的侧链构象,还需要得到正确的主链构象。它可能接近这些结构之一,但永远不会完全相同。
因此,在这两种情况下,我们都需要对初始结构进行某种精修。接下来我们将讨论用于精修部分正确结构的三种策略。我们将看三种策略:最简单的一种称为能量最小化,然后是分子动力学和模拟退火。
能量最小化基于我们上次讨论的原理:一个稳定的结构必须是自由能的极小值点,因为如果不是,就会有作用在原子上的力,从而将其推离该结构。然而,它是自由能极小值点这一事实,并不能保证它是全局自由能最小值点。蛋白质结构如果是稳定的,至少是一个局部自由能极小值点。它也可能是全局自由能最小值点,我们只是不知道答案。在蛋白质结构领域的早期,这是一个很大的争论点:蛋白质是否能自发折叠?如果能,那至少意味着它们显然是全局自由能最小值点。克里斯·安芬森因证明某些蛋白质可以在细胞外独立折叠而获得诺贝尔奖,这表明至少有些蛋白质的所有结构信息都隐含在其序列中,这似乎意味着它们是全局自由能最小值点。但我们现在知道,其他一些蛋白质最常见的结构只是局部自由能极小值点,并且存在很高的能量壁垒阻止其达到全局自由能最小值点。
但无论如何,如果我们有一个初始结构,我们可以尝试找到最近的局部自由能极小值点,也许那就是稳定结构。在我们的情境中,我们讨论的是在我们认为可能是正确结构的蛋白质表面堆积侧链。想象这是真实结构,我们有一个侧链,虚线绿线代表氢键,它从氮和氧与蛋白质其他部分形成一系列氢键。现在我们得到一个粗糙的主链结构,我们放入侧链。实际上,我们几乎永远不会随机选择正确的构象来获得所有这些氢键。因此,我们会从一个看起来像这样的结构开始,它被旋转了,以至于只能看到轮廓,而不是氮和氧。问题是,我们能否通过遵循能量极小值从一个结构到达另一个结构?
这就是问题。我们如何做到这一点?我们有一个函数,可以告诉我们每个原子 X、Y、Z 坐标的势能。那么我们如何最小化这个自由能?这与其他我们想要最小化的函数没什么不同:我们取一阶导数,寻找一阶导数为零的点。一个区别是我们无法解析地写出这个函数的样子,并解析地选择空间中的方向作为极小值点。因此,我们必须采用一种对结构进行微扰的方法,系统地尝试改进自由能。最容易理解的方法是梯度下降法,即我选择一些初始坐标,然后沿着函数一阶导数的方向迈出一步。
那看起来像什么?这里有两种可能性。我有一个函数。如果我起始于 x=2,减去某个小值 ε 乘以一阶导数,会指向左边。我将向左迈步,直到函数的一阶导数为零,然后停止移动。同样,如果我起始于右边,我将每次向右移动一点,直到一阶导数为零。这看起来不错,但可能需要很多步,并且由于步数可能很多,不能保证有很好的收敛性,可能需要很长时间。这是在简单一维情况下的导数。我们处理的是多维向量,所以我们使用梯度,即一组偏一阶导数。



这里需要指出的一点是,力是势能梯度的负值。因此,当我们进行梯度下降时,可以从物理角度理解为总是沿着力的方向移动。我有一个结构,它不是真正的天然结构,但我沿着力的方向逐步移动,朝着某个局部极小值移动。
我们在连续能量的情况下这样做了,但实际上你也可以对离散情况这样做。然而,关键点是,不能保证到达正确的能量结构。在我之前展示的例子中,如果我们进行最小化,实际上最终会得到侧链旋转180度的情况,它消除了所有空间冲突,但没有获得所有氢键。所以这是一个局部能量极小值点,而不是全局极小值点的例子。
有问题吗?是的。多维方程从何而来?这些是根据蛋白质中每个原子(如果你允许原子移动)或每个可旋转键(如果你只允许键旋转)表示能量的方程。问题在于,多维方程从何而来?还有其他问题吗?
好的,这是最简单的方法,即直接最小化能量。但我们说过,它不能保证找到全局自由能最小值点。另一种方法是分子动力学。这实际上试图通过模拟每个原子上的力和速度来模拟蛋白质结构在体外的行为。之前没有速度的概念,所有原子都是静态的。我们观察能量的梯度,沿着力的方向移动一个任意的步长。现在,我们实际上将赋予所有原子速度,它们将在空间中移动。
在任何时间 T 的坐标将由前一时间 T-1 的坐标加上速度乘以时间步长决定,而速度将由力决定,力又由势能的梯度决定。我们总是从势能函数开始,无论是来自物理学方法还是统计方法,最终得到速度,进而得到坐标。我们从蛋白质开始。关于如何平衡原子有一些严肃的问题。你从一个完全静态的结构开始,想对其施加力。如何做到这一点有一些微妙的技巧。但最终你实际上模拟了所有原子的运动。
为了让你感受一下那是什么样子,这里有一个快速视频。

这是蛋白质结构折叠的模拟。主链大部分被高亮显示,大多数侧链实际上没有以粗体显示。但你可以看到棍棒模型,慢慢地,它在积累其三维结构。

好的,我想你明白了。我就不继续播放了。好的,这些是支配类似运动方程的例子。
这种方法的优点是,我们实际上在模拟蛋白质折叠。所以如果我们做得正确,应该总是得到正确答案。当然,现实中并非如此。可能最大的问题只是计算速度。这些模拟,即使是非常短的,比如我展示的那个,也需要很长时间。一个蛋白质在体外折叠需要多长时间?一个长折叠可能需要毫秒级。对于像那样的小蛋白质,可能快几个数量级。但实际计算可能需要很多天。这需要大量的计算资源。此外,如果我们想准确表示溶剂化(蛋白质与水的相互作用,这导致了疏水塌陷),那么实际上必须在模拟中加入水,每个水分子都增加了许多自由度,这也增加了计算成本。所有这些决定了收敛半径:你距离真实结构多远仍然能到达那里?对于像这样的小蛋白质,使用大量计算资源,在大多数情况下,你可以从展开的蛋白质到达折叠状态,但我们将看到一些重要的进展可以让我们绕过这个问题。在大多数情况下,我们只能进行相对局部的改变。
好的,这引出了我们精修蛋白质结构的第三种方法,称为模拟退火。这个名字的灵感来自冶金学以及如何获得金属中最佳的原子结构。我不知道你们中是否有人做过金属加工。哦,好的,有一个人,这比大多数年份好。我没有做过。但我了解到,在冶金学中,通过反复升高和降低温度,可以获得更好的金属结构。这个说法准确吗?好的,如果你有兴趣,可以和同学讨论更多细节。
类似的想法将用于这种计算方法中,我们将尝试通过提高系统能量然后改变温度来找到原子最可能的构象,即最稳定的构象。这回到了我们从局部极小值开始的想法。如果我们只进行能量最小化,我们将无法从这个极小值到达那个极小值,因为有能量壁垒在中间。因此,我们需要提高系统能量以跳过这些能量壁垒,然后才能到达全局自由能最小值点。
但是,如果我们一直以非常高的温度移动,我们将采样整个能量空间,但这需要很长时间。我们也将采样许多低概率的构象。因此,这种方法允许我们平衡速度需求和高温需求(在高温下我们可以克服一些壁垒)。
这里我想强调一点:我们做了一个与冶金过程的物理类比,我们谈论提高系统温度并让原子在力的作用下演化,但这绝不意味着模拟蛋白质折叠过程中发生的事情。因此,虽然分子动力学试图说这是蛋白质在水中折叠时实际发生的情况,但模拟退火是使用高温来搜索空间,然后低温。但这些温度远高于蛋白质可能遇到的温度。所以它不是模拟,而是一种搜索策略。
关键点在于,在算法的各个步骤中,我们将尝试决定如何从当前的坐标集移动到某个替代的坐标集。我们将这个新的坐标集称为测试状态,并决定新状态是否比当前状态更可能或更不可能。如果它的能量低于当前状态,那么它更可能,对吧?所以在这个算法中,我们总是接受那些自由能低于当前状态的状态。当状态自由能高于当前状态时会发生什么?事实证明,我们将以概率方式接受它。有时我们会向上移动能量,有时不会。这将允许我们越过一些能量壁垒,尝试到达那些纯最小化无法到达的新能量状态。
其形式是玻尔兹曼方程,对吧?某个测试状态相对于参考状态的概率将是这两个玻尔兹曼方程的比值:测试状态的能量除以当前状态的能量。所以它是 e 的负能量差除以 kT 次方。我们稍后会回到这个温度项从何而来。
以下是完整算法。我们将迭代固定步数或直到收敛(我们会看到并不总是收敛)。我们有一个初始构象,当前构象为状态 N,我们可以根据上次会议讨论的势能函数计算其能量。我们将随机选择一个相邻状态。“相邻”是什么意思?如果我根据每个原子的 X、Y、Z 坐标来定义,我有一组 X、Y、Z 坐标,我将少量改变其中的一些。如果我大量改变所有坐标,就会得到一个完全不同的结构。所以我将进行小的扰动。如果我使用固定的主链角度并仅旋转侧链,相邻状态会是什么?改变一些侧链角度。所以我们不想全局改变结构,我们希望当前状态和下一个状态之间有一定的连续性。
因此,我们将选择状态空间中相邻的状态,然后遵循以下规则:如果新状态的能量低于当前状态,我们直接接受新状态。如果不是,这里就变得有趣了:我们以与能量差相关的概率接受那个更高能量的状态。如果差异非常大,接受的概率很低;如果差异稍高,则接受的概率较高。如果我们拒绝它,我们就回到当前状态,并寻找一个新的测试状态。
关于我们如何做到这一点有什么问题吗?问题:我们搜索邻居的距离有多远?搜索多远是这门技术的艺术,所以我不能给你一个直接的答案。不同的方法会使用不同的阈值。还有其他问题吗?
好的,那么我想让你们认识到关键点是,最小化方法和模拟退火方法之间存在区别。最小化只能从状态一到达局部自由能极小值点,而模拟退火有可能走得更远,并可能到达全局自由能最小值点,但不能保证找到它。
假设我们从状态一开始,相邻状态是状态二。我们会以100%的概率接受它,因为它能量更低。然后假设相邻状态是状态三。那能量更高,所以根据状态二和状态三之间的能量差,有一个概率我们会接受它。类似地从状态三到状态四。我们可能会回到状态二,也可能会向上,然后最终以某种概率越过这个坎。这是每一步概率的总和。
好的,如果这是我们决定是否接受新状态的函数,温度如何影响我们的决定?当温度非常高时会发生什么?看那个方程:是 e 的负能量差除以 kT 次方。如果 T 非常大,那么指数会怎样?趋近于零,所以 e 的负零次方大约等于 1。所以在非常高的温度下,我们几乎总是接受高能量状态。这使我们能够爬过那些能量山。如果我在模拟退火中设置非常高的温度,那么我总是越过那些壁垒。相反,当我把温度设得非常低时会发生什么?那么接受这些改变的概率非常非常低。所以如果温度接近零,我几乎永远不会向上移动。
因此,通过如何设置温度,我们可以控制该算法探索多少空间。这又是模拟退火的一点艺术:决定使用什么样的退火时间表,使用什么样的温度程序。你是从高温开始然后逐渐降低,还是使用其他更复杂的函数来决定温度?我们不会深入讨论如何选择这些细节,尽管你可以在笔记的参考文献中找到相关内容。基本思想是,我们将从较高的温度开始,探索大部分空间。然后随着我们降低温度,我们将自己冻结在最可能的构象中。
模拟退火并不局限于蛋白质结构。这种方法实际上非常通用,称为 Metropolis-Hastings 算法。它经常用于根本没有能量的情况,纯粹从概率角度考虑。所以如果我有一个概率函数,处于某个状态 S 的概率,我可以随机选择一个相邻状态,然后计算一个接受比,即处于测试状态 S 的概率除以处于当前状态的概率。这就是我们根据玻尔兹曼方程所做的。但如果我有其他概率公式,我就用它。然后就像在我们的蛋白质折叠例子中一样,如果这个接受比大于一,我们接受新状态;如果小于一,那么我们根据概率陈述接受它。这是一种非常通用的方法,我想你们可能会在习题集中看到,我们过去也曾在考试中要求你们将此算法应用于其他概率设置。这是一种非常通用的在概率景观中采样的方法。
好的,你们已经看到了这三种从近似结构开始并尝试到达正确结构的独立方法。我们有能量最小化,它将移向局部构象,因此与其他两种方法相比非常快,但仅限于局部改变。我们有分子动力学,它实际上试图模拟生物过程,计算量非常大。然后我们有模拟退火,通过提高温度,假装在非常高的温度下采样空间,然后冷却,从而让我们陷入高概率构象,以此作为到达某些全局自由能最小值点的捷径。
对这三种方法有什么问题吗?好的。
现在我将介绍一些已经用于尝试解决蛋白质结构问题的方法。我们从序列开始,想弄清楚结构是什么。这个领域取得了巨大的进步,因为在1995年,一个小组聚在一起,提出了一种客观的方法来评估这些方法是否有效。许多人提出了预测蛋白质结构的方法。1995年,CASP小组表示,他们将收集来自晶体学家和核磁共振光谱学家的尚未发表但预计能在项目时间范围内获得的结构。他们会将这些序列发送给建模者。建模者将尝试预测结构。然后在比赛结束时,他们会回到晶体学家和光谱学家那里说,好的,给我们结构,现在我们将比较预测答案和真实答案。在提交所有结果之前,没有人知道答案是什么。然后你可以客观地看到哪种方法最好。
一种一直表现非常好的方法,我们将详细研究,就是名为 Rosetta 的方法。你可以在线查看细节。他们将这个建模问题分为两种类型:一种是你可以提出一个合理的同源模型的情况(这可能是非常低的序列同源性,但已知结构数据库中有与查询序列相似的东西),另一种是完全从头预测的情况。
他们如何预测这些结构?如果有同源性,你可以想象,首先要做的是将你的序列与具有已知结构的蛋白质序列进行比对。如果是高度同源,这不是一个难题,我们只需要做一些调整。但当我们进入所谓的“模糊区”时,事情就变得有趣了,在那里你的序列比对很可能完全错误。他们有大于50%序列相似性的高相似性问题(被认为是相对容易的问题),20%到50%序列相似性的中等问题,以及小于20%序列相似性的非常低相似性问题。
你们已经在本课程中看到了进行序列比对的方法,所以我们不需要详细讨论。但有许多不同的具体方法来进行这些比对,你可以从 BLAST 到高度复杂的马尔可夫模型,以决定什么与你的蛋白质结构最相似。Rosetta 发现的一个重要点是不要依赖任何单一方法,而是尝试一堆不同的比对方法,然后跟进许多不同的比对。
然后我们进入如何精修模型的问题,这我们已经开始讨论。在一般的精修过程中,当蛋白质形状相对较好时,他们对主链扭转角施加随机扰动。这是统计方法的前提,他们不允许每个原子移动,只旋转一定数量的可旋转侧链。我们有主链的 phi 和 psi 角以及一些侧链角。
他们进行所谓的侧链旋转异构体优化。这意味着什么?记住,我们可以允许侧链自由旋转,但只有极少数旋转是经常观察到的。因此,我们将从最佳可能的旋转异构体中选择。一旦我们从那些高度可能的旋转异构体中找到了近乎最优的侧链构象,我们就允许对侧链进行更连续的优化。
因此,当你有一个非常高的序列同源性模板时,你不需要在大部分结构上做很多工作,大部分都将是正确的。所以你将专注于比对差的那些地方。这似乎很直观。当你拥有这些中等序列相似性的模板时,事情变得更有趣。在这里,甚至你的基本比对也可能不正确。所以他们实际上进行多重比对,并将它们带入精修过程。
然后你如何决定哪个最好?使用势能函数。你已经获得了一堆起始构象,你让它们通过这个精修过程,现在你相信这些能量代表了结构正确的概率。因此,你将根据能量选择使用哪种构象。
在这些中等序列相似性的模板中,他们的精修并不针对整个蛋白质结构,而是专注于特定区域:比对中存在空位、插入和缺失的地方(所以你的比对不确定,因此需要在那里精修结构);起始模型中是环的区域(所以它们没有高度约束,因此很可能在起始结构和最终结构中不同);以及序列保守性低的区域(所以即使有相当好的比对,在进化过程中发生变化的可能性也存在)。
当他们进行精修时,在我们刚刚概述的这些地方,他们如何做?他们不只是简单地随机扰动所有角度。实际上,他们取蛋白质的一个片段(这些片段的确切长度已经改变,当然,他们的 Rosetta 算法也在改进),比如大约3到9个氨基酸。然后你在数据库中寻找具有已知结构且包含相同氨基酸序列的蛋白质(可能是完全无关的蛋白质结构)。但你为所有这些短序列的所有可能采用的不同结构建立一个肽段库。你知道这些至少是与该局部序列一致的结构,尽管对于这个特定蛋白质来说可能完全错误。所以你放入所有这些可能的结构。我们替换扭转角为来自已知结构肽段的扭转角。然后我们使用我们刚刚讨论过的那种最小化算法进行局部优化,看看是否存在与从数据库中取出的那个小肽段大致兼容,同时也与结构的其余部分一致的结构。完成之后,再进行全局精修。
这种方法有效吗?他们是这个 CASP 比赛中最优秀的竞争者之一。这里有一些例子,其中天然结构是蓝色的,他们产生的最佳模型是红色的,最佳模板(同源蛋白质)是绿色的。你可以看到它们非常吻合。这非常令人印象深刻,特别是与其他一些算法相比。但同样,它专注于至少有一些像样同源性的蛋白质。
如果你看这些蛋白质的中心,你可以看到原始结构(我相信是蓝色的)和他们的模型(红色的)。你还可以看到他们或多或少得到了正确的侧链构象,这非常了不起。
真正有趣的是当他们处理这些具有非常低序列同源性的蛋白质时。我们谈论的是20%或更低的序列相似性。通常,你实际上会有全局错误的折叠。他们在这里做什么?他们首先说,好吧,我们不能保证我们的模板甚至大致正确。所以他们将从许多模板开始,并并行精修所有这些,希望其中一些最终能得出正确结果。
他们使用一种他们称之为更积极的精修策略。之前,我们把精修能量集中在哪里?集中在那些进化约束差或结构中没有很好约束的区域,或者比对好的地方。在这里,他们实际上也针对相对明确的二级结构元件。因此,他们现在将通过从数据库中取出具有其他结构的肽段,来改变在所有模板中都是清晰α螺旋的结构,从而采取非常积极的精修方法,重建二级结构元件以及这些空位、插入、环和低序列保守性区域。
我认为真正了不起的是这种方法也有效。虽然效果不是那么好,但这里有一个天然结构和最佳模型的侧面比较。这是只有参与这个 CASP 比赛的晶体学家或光谱学家才知道的隐藏结构,这是他们在不知道答案的情况下盲目提交的模型。你可以一次又一次地看到,他们提出的结构与实际结构之间存在相当好的全局相似性。并不总是如此。这里有一个例子,好的部分被高亮显示,不好的部分显示为白色,所以你可以公平地看到它们。但即便如此,给予他们信任,这种一致性还是非常令人印象深刻。
现在,我们已经看了有高序列相似性、中等序列相似性和低序列相似性的情况。但最难的类别是那些在结构数据库中实际上没有可检测的同源物的情况。那就是从头预测的情况。在这种情况下,他们采取以下策略:他们对主链角度进行蒙特卡洛搜索。具体来说,他们取短区域(同样,确切的长度在算法的不同版本中有所变化),这里是3到9个氨基酸的主链。他们在数据库和已知结构中找到相似的肽段,从数据库中获取主链构象,将角度设置为匹配那些构象。然后他们使用我们在模拟退火中看到的 Metropolis 准则(由玻尔兹曼能量决定的状态相对概率)来决定是否接受。所以如果能量更低,会发生什么?你接受。如果能量更高,你如何决定?根据概率。好的。
他们进行固定次数的蒙特卡洛步骤(36,000次),然后重复整个过程以获得2000个最终结构,因为他们对其中任何一个结构的置信度都非常低。现在你有了2000个结构,但你只会提交一个。所以你做什么?他们对它们进行聚类,试图查看是否出现了常见的模式,然后精修聚类,并将每个聚类作为这个问题的潜在解决方案提交。
关于 Rosetta 方法有什么问题吗?是的。再提一下为什么是3到9个氨基酸的自由区域?问题是什么?这个问题的动机是什么?最终,这是他们做出的一个经验选择,似乎效果很好。但你可能问,是什么可能促使他们这样做?长期以来,这个领域一直有一种想法(我认为尚未证实),即某些序列对某些结构有某种倾向性。我们在二级结构预测算法中看到,某些氨基酸在α螺旋中出现得更频繁。所以可能某些结构对于短肽段非常可能出现,而其他结构几乎从不出现。因此,如果你有一个足够大的蛋白质结构数据库,那么这将是一种合理的采样方法。实际上,是否可以通过其他方法得到好的答案,我们不知道。这就是实际效果好的方法。所以除了粗略的观察(即存在一些局部信息内容和大量全局信息内容)之外,没有真正的理论依据。
是的。问题:在从头预测中,通常会有许多单独的结构或结构聚类,而在同源性建模中则不然,对吗?是的,正确。所以在从头预测中,经常会有多个看起来同样合理的解决方案,而同源性往往会将你引向某些类别。好问题。还有其他问题吗?
好的,那是 CASP1,在1995年,那似乎是很久以前了。那么在过去的十年或二十年里,事情是如何改进的呢?最近有一篇有趣的论文,刚刚比较了 CASP10(最近的一次)和 CASP5(十年前)之间的差异。在这个图表中,Y轴是建模的残基百分比,这些残基不在模板中。好的,所以我有一个模板,一些氨基酸在模板中没有匹配。其中有多少我能正确预测?作为目标难度的函数,他们有自己的目标难度定义。你可以查看实际论文,了解在 CASP 比赛中是什么,但它是结构和序列数据的组合。
我们暂且相信他们在这里做出了合理的选择。他们实际上投入了大量精力来制定评估标准。图中的每个点代表某个提交的结构。十年前的 CASP5 是三角形,两年前的 CASP9 是正方形,CASP10 是圆形。然后他们有趋势线。CASP9 和 CASP10 的趋势线显示在这里。你可以看到,对于较容易的结构,它们表现更好,对于最难的结构,表现更差,这是你所期望的。CASP5 几乎在所有结构上都表现平平,即使在容易的结构上,也只和这些新方法在困难结构上的表现差不多。因此,就他们没有模板的蛋白质部分而言,他们能正确预测的比例,在后面的 CASP 中比十年前要好得多。这有点令人鼓舞。不幸的是,故事并不总是那么直接。
这个图表再次以目标难度为 X 轴。Y 轴是他们所谓的全局距离测试,这是准确性的衡量标准,是预测中接近真实结构的碳α原子的百分比(他们对“接近”有精确定义,你可以查一下)。对于一个完美模型,它会在90%到100%的范围内,随机模型会在这里。但这里更重要的是趋势线。CASP10(本报告中最新的)的趋势线是黑色的,CASP5 是这个黄色的,与黑色没有太大不同。这表明,在十年间,总体预测准确性并没有提高多少。这有点令人震惊。
所以他们在这篇论文中试图弄清楚,嗯,为什么?为什么是这样?正确预测的氨基酸百分比在上升,但总体准确性却没有。因此,他们提出了一些说法:可能是因为目标难度并不是一个公平的衡量标准,因为许多提交的蛋白质现在实际上在另一种意义上更难了,它们不是单结构域蛋白质。在 CASP5 上,很多是独立结构的蛋白质;到了 CASP10,许多提交的蛋白质是更有趣的结构问题,它们的折叠取决于相互作用和其他许多因素。所以也许你需要的所有信息并不完全包含在给你测试的肽段序列中,而是更多地取决于它与伙伴的相互作用。
然后他们看了,那些是同源模型的结果,这些是自由建模的结果。在自由建模中,没有同源性可参考,所以他们除了长度之外没有难度衡量标准。他们再次使用那个全局距离测试。这里上面是完美模型,下面是近乎随机的模型。CASP10 是红色的,十年前的 CASP5 是绿色的。你可以看到趋势线非常相似。CASP9(这里的虚线)看起来几乎和 CASP5 一样。所以再次,这并不令人鼓舞。它表明模型的准确性在过去十年中没有提高多少。然后他们指出,如果你专注于短结构,那么事情就有点意思了。在 CASP5(三角形)中,只有一个高于60%。在 CASP9 中,11个中有5个相当好,但到了 CASP10,只有3个大于60%。所以波动很大。因此,从头建模仍然是一个非常非常困难的问题。
他们有很多理论来解释为什么会这样,正如我已经说过的,他们提出,也许他们试图解决的模型在难以评估的方面变得更难了,许多以前没有同源物的蛋白质现在因为十年的结构工作试图填补缺失的结构域而有了同源物,并且这些目标往往具有更多不规则性,往往是更大蛋白质的一部分。所以再次,你得到的序列中没有足够的信息来进行完整的预测。
有问题吗?到目前为止,我们看到的是 Rosetta 解决蛋白质结构的方法。它真的是把所有东西都扔进去。任何你有的技巧。让我们查看数据库,让我们取同源蛋白质。所以我们有这些高、中、低水平的同源物。即使我们在做同源建模,我们也不局限于那个蛋白质结构。但对于某些部分,我们会进入数据库,找到长度为3到9个氨基酸的肽段结构,插入。我们的势能函数是各种信息的混合体,其中一些有很强的物理原理,一些只是曲线拟合,以确保疏水基团在内,亲水基团在外。所以我们把任何我们有的信息都扔给问题。
而我们的物理学家则鄙视这种方法,并说,不,不,我们要严格按照书本来做。我们所有的方程都将有物理基础。我们不会从同源模型开始。我们将尝试为每个我们想知道结构的蛋白质做我给你们看的小电影中的模拟。
为什么这个问题很难?因为这些折叠,这些势能景观非常复杂,非常崎岖。试图从任何当前位置到达任何其他位置都需要越过许多极小值。所以难做的原因主要是计算能力问题。没有足够的计算能力来解决所有这些问题。所以一个小组 D. Shaw 说,好吧,我们可以通过花很多钱来解决这个问题。幸运的是他们有钱。所以他们设计了硬件,实际上在硬件中而不是软件中解决势能函数的各个组成部分。所以他们有一个名为 Anton 的芯片,实际上有部分专门解决静电函数和范德华函数。因此,在这些芯片中,你尽可能快地解决能量项,而不是通过软件。这允许你采样更多空间,在实时方面运行模拟更长时间。他们做得非常出色。
这里有一些他们几年前论文中的图片,预测结构和实际结构。我甚至不记得哪种颜色是哪种,但你可以看到这并不重要,他们达到了非常高的分辨率。现在,你注意到所有这些结构的共同点是什么?它们很小,对吧?显然,这是有原因的。这是你在合理的计算时间内(即使是高端计算、专用计算)可以做到的。所以我们仍然不能折叠任意结构。你还注意到它们什么?是的,在后面。它们有非常明确的二级结构。具体来说,主要是α螺旋,对吧?事实证明,在α螺旋中编码的局部信息比在β折叠中多得多,β折叠取决于蛋白质片段遇到什么。所以对于这些物理学方法,当处理主要是α螺旋的小蛋白质时,我们会做得最好。但在后来的论文中,他们实际上也处理了一些β折叠的例子,并且结构会随着时间的推移变得更大。所以这不是一个固有的问题,只是硬件今天与明天的速度问题。
第三种方法。我们有统计方法,有物理学方法。第三种方法我不会详细讨论,但你们可以自己尝试,这是一个游戏,人类试图识别正确的结构。正如你们所知,人类在其他类型的模式识别问题上做得很好。所以你可以试试这个视频游戏,给你结构去尝试解决,你说,哦,我应该让那个变成螺旋吗?我应该旋转那个侧链吗?试试看,只需谷歌“Foldit”,你就可以看看是否能击败最好的游戏玩家和硬件。


好的。到目前为止,我们一直在讨论解决单个蛋白质的结构。我们已经看到这个领域取得了一些成功,从 CASP1 到 CASP5 在某些方面有了巨大改进,我认为从 CASP5 到 CASP10 可能问题变得更难了,也许没有改进。我们让别人来决定。在本讲座的最后和下节课的开始,我们想看看蛋白质相互作用的问
014:预测蛋白质相互作用

在本节课中,我们将要学习如何预测蛋白质之间的相互作用。我们将从计算挑战开始,探讨两种不同的预测策略,并了解如何整合高通量实验数据,最终利用贝叶斯网络等统计方法来评估相互作用的可靠性。
概述:预测蛋白质相互作用的挑战
上一节我们介绍了预测蛋白质结构的方法,本节中我们来看看预测蛋白质相互作用所面临的挑战。我们识别了几种不同的预测任务:对已知蛋白质复合物进行特定突变后的定量预测、预测一对蛋白质的结构,以及在全局范围内预测所有已知蛋白质的相互作用。
我们最初认为,如果已知复合物的结构,预测特定突变引起的亲和力变化应该很简单。理论上,我们可以通过势能函数计算局部结构变化带来的能量差异。然而,事实证明,这非常困难。与简单的替换矩阵(如BLOSUM)相比,许多预测算法的表现并不理想,甚至更差。
因此,我们转向一个或许更简单的问题:预测哪些蛋白质会发生相互作用。这就是本节课的重点。
蛋白质对接的计算难题
即使知道两个蛋白质的结构,我们也不清楚它们的哪些表面会相互作用。因此,我们首先需要解决对接问题:确定蛋白质A的哪个部分与蛋白质B的哪个部分结合。
以下是预测相互作用所需的关键步骤:
- 确定蛋白质的相对位置和方向。
- 估计两个蛋白质相互作用时可能发生的局部甚至全局构象变化。
- 在获得最佳结构重排估计后,计算相互作用的能量,并判断其是否超过某个阈值。
这种方法在原理上很严谨,但存在两个主要问题:计算速度极慢,并且容易产生假阳性结果。
假阳性问题源于我们孤立地考虑两个蛋白质,而忽略了它们在细胞环境中可能存在的其他竞争性相互作用。即使两个蛋白质之间存在有利的相互作用,如果存在浓度更高或亲和力更强的其他分子,这种相互作用也可能不会发生。
提高计算效率的策略
让我们先关注计算效率问题。我们希望限制搜索空间,在进行任何结构比较之前,高效地筛选出潜在的相互作用伙伴。
我们将研究两篇论文中描述的算法来解决这个问题。第一篇论文介绍的方法称为PRISM,它使用了结构计算。第二篇论文介绍的方法称为PrePPI,它完全不进行显式的结构计算。
PRISM:基于结构模体和热点残基
PRISM算法的核心思想是:蛋白质相互作用的构架数量有限,并且并非所有氨基酸对相互作用的贡献都相同。
该算法包含两个部分:
- 刚性结构比对:假设两个蛋白质自身构象不变,仅改变它们相对靠近的构型。
- 柔性优化:对于通过初步筛选的蛋白质对,使用之前课程中提到的能量最小化等方法进行精细优化,以确定复合物的最佳结构和自由能。
关键之处在于,早期的筛选决策基于结构相似性、进化保守性,特别是关注被称为热点的区域。热点是指蛋白质界面中贡献了大部分相互作用自由能的位点。
研究表明,大约10%的界面氨基酸贡献了主要的结合能。这些热点区域往往富含色氨酸、精氨酸和酪氨酸。PRISM算法首先存储已知相互作用的蛋白质模板,仅定义界面残基(即两条链中彼此接近的氨基酸),而忽略蛋白质的其余部分。然后,它搜索数据库,寻找与这些界面残基在结构上匹配的蛋白质,即使它们的整体结构并不相似。接着,算法会检查热点区域的匹配度、序列保守性等。只有通过这些快速检查后,才会进行耗时的柔性优化计算。
这种方法的优势在于最终进行了结构优化,可以找到两个潜在相互作用蛋白质之间的最佳匹配。但其弱点也是计算量巨大。
PrePPI:基于序列和统计的快速预测
PrePPI方法则完全不进行上一节课讨论的那种结构优化。那么,它如何判断两个蛋白质是否可能相互作用呢?
以下是PrePPI的工作流程:
- 从两个待查询的蛋白质开始,通过序列相似性在已知结构数据库中寻找它们的同源物(称为同源模型MA和MB)。
- 寻找这些同源模型(MA和MB)的所有结构同源物(称为邻居NA和NB)。
- 查询这些邻居蛋白(NA和NB)中是否有已知的相互作用对。如果存在,那么这个已知的相互作用对就可以作为查询蛋白质相互作用的模型。
- 接着,对查询蛋白的同源模型(MA和MB)与已知相互作用的两个蛋白质进行序列比对。
- 算法会计算多个指标,例如界面残基在序列比对中能对齐的比例,以及这些残基是否具有界面残基的统计特征。
- 最后,使用贝叶斯分类器整合所有这些分数,来判断两个查询蛋白质是否可能相互作用。
这种方法的优势是速度极快,所有计算都是快速的序列比对和统计评估。但其劣势也很明显:它无法预测全新的相互作用(即没有已知结构邻居模板的情况),并且由于放弃了结构优化,会丢失很多构象变化带来的特异性信息。
高通量实验测量与数据可靠性
现在,我们将从纯粹的计算方法转向实验测量。过去十年的一大变化是,我们从测量成对的相互作用进入了高通量批量测量的时代。
亲和纯化-质谱联用与酵母双杂交
目前主要有两种高通量技术:
- 亲和纯化-质谱联用:给目标蛋白加上标签,使其附着在固相支持物上,然后纯化与它结合的所有蛋白质,最后通过质谱鉴定这些蛋白质的身份。为了提高特异性,发展出了串联亲和纯化技术,使用两个不同的标签和特异的蛋白酶切割,以减少非特异性结合。
- 酵母双杂交:将“诱饵”蛋白与DNA结合域融合,“猎物”蛋白与转录激活域融合。如果两个蛋白质相互作用,激活域会被招募到报告基因的启动子处,从而激活报告基因的表达。
这两种技术各有偏倚。AP-MS可能漏掉低丰度或瞬时相互作用的蛋白,而酵母双杂交可能无法很好表达膜蛋白或某些异源蛋白。
评估实验数据的可靠性:假阳性问题
我们面临一个严重问题:如何信任这些高通量实验发现的相互作用?已知其中有很大一部分是假阳性。
如果我们有两个独立的实验(例如,一个AP-MS和一个酵母双杂交),并且有一个已知相互作用的“金标准”数据集,我们可以通过重叠分析来估计可靠性。
假设两个实验是独立的,那么同时被两个实验检测到且在金标准中存在的相互作用(共识真阳性)具有很高的可信度。我们可以计算共识真阳性中被金标准覆盖的比例。然后,假设这个比例对于只被一个实验检测到的潜在阳性也同样适用,我们就可以估算出单个实验数据中真阳性和假阳性的数量。
分析结果显示,假阳性的比例非常高,在某些实验中甚至超过90%。因此,我们需要一种方法来整合所有数据,并估算蛋白质相互作用的概率,而不是简单地依赖共识或设定硬性阈值。
贝叶斯统计与相互作用概率估算
我们希望估算在给定所有可用数据的情况下,一个相互作用为真的概率。这可以用贝叶斯公式来表达。
如果我们只想对所有相互作用进行排序,我们可以计算似然比的对数。这只需要我们能够估计:对于一个真阳性相互作用,观察到当前数据的概率;以及对于一个假阳性相互作用,观察到当前数据的概率。
为了计算这些概率,我们需要金标准数据集,包括已知的真阳性(相互作用的蛋白质对)和真阴性(确定不相互作用的蛋白质对)。构建真阴性集可能通过以下方式:蛋白质位于不同的细胞区室、参与不同的复合物,或者它们的基因表达呈负相关等。
通过这种方法,我们可以根据似然比对所有检测到的相互作用进行排序,并绘制受试者工作特征曲线,从而在保持较高覆盖率的同时,获得比简单要求多个实验一致更好的预测性能。
贝叶斯网络:整合多元数据
贝叶斯网络是一种用图形结构表示变量间因果或依赖关系的概率模型。它由图结构和条件概率表组成。
在预测蛋白质相互作用的背景下,我们可以将“蛋白质是否相互作用”作为隐藏的原因,将各种实验数据(如AP-MS结果、酵母双杂交结果)作为观察到的效应。如果我们假设这些实验观测在给定真实相互作用状态的情况下是条件独立的,那么联合概率就可以简化为各个条件概率的乘积。
贝叶斯网络的优势在于,它通过图结构编码了独立性假设,从而避免了需要估计所有变量联合分布的庞大参数数量。它既可以用于预测(从原因到效应),也可以用于推断(从效应反推原因)。
学习一个贝叶斯网络包括两个任务:学习图结构和学习参数(条件概率表)。由于可能的结构数量随变量增加呈指数增长,通常需要利用先验知识(例如,只有转录因子能调控基因表达)来约束搜索空间。
其他可用于预测的数据类型
除了直接的物理相互作用实验数据,我们还可以整合其他类型的证据来提高预测的可靠性:
- 基因表达相关性:相互作用的蛋白质需要在同一时间存在于细胞中,因此它们的mRNA表达谱可能相关。但这只是一个趋势,并非绝对规则。
- 系统发育共进化:在进化过程中,功能相关的蛋白质倾向于在物种中共存或共缺失。独立的多重共现事件比单一分支上的共现更能支持相互作用的假设。
- 基因融合事件:在某些物种中,两个独立的基因在另一个物种中可能融合成一个单一的基因(罗塞塔石碑方法),这暗示它们的功能密切相关,可能物理相互作用。
在下一节课中,我们将看到如何利用贝叶斯网络,整合这些进化、表达以及直接的实验证据,来综合预测蛋白质相互作用的概率。
总结


本节课中我们一起学习了预测蛋白质相互作用的多种策略。我们首先探讨了基于结构的对接方法(如PRISM)和基于序列/统计的快速方法(如PrePPI)各自的优缺点。然后,我们了解了高通量实验技术(亲和纯化-质谱和酵母双杂交)及其固有的高假阳性率问题。为了解决这个问题,我们引入了贝叶斯统计方法来评估相互作用的可靠性,并最终介绍了贝叶斯网络作为整合多元证据(包括实验数据、表达相关性和进化信息)的强大框架,以计算蛋白质相互作用的概率。这些方法使我们能够更明智地利用海量但嘈杂的数据,来推断细胞中复杂的蛋白质相互作用网络。
015:基因调控网络

概述
在本节课中,我们将要学习如何从基因表达数据中推断基因调控网络。我们将首先回顾如何利用贝叶斯网络预测蛋白质-蛋白质相互作用,并以此作为过渡。接着,我们将深入探讨基因表达数据的分析,包括如何比较基因表达谱、如何对数据进行聚类、如何识别与特定生物学特性(如疾病易感性)相关的基因特征。最后,我们将重点介绍几种从表达数据中推断基因调控网络(常被称为“模块”)的主流方法,并了解它们在合成和真实数据上的性能比较。
从蛋白质-蛋白质相互作用到基因调控网络
上一节我们介绍了利用贝叶斯网络整合多种数据来预测蛋白质-蛋白质相互作用。本节中,我们将看看如何将类似的概率推理框架应用于基因调控网络的发现。
贝叶斯网络回顾
贝叶斯网络是一种用于概率推理的工具,其基本组成部分包括一个图结构(网络) 和代表每条边关系的条件概率表。我们可以从数据中学习这些网络,既可以完全客观地学习结构和概率,也可以先设定结构再学习概率表。
在预测蛋白质-蛋白质相互作用的场景中,节点代表变量。隐藏节点代表我们不知道真实答案的变量(例如,蛋白质A和B是否真正相互作用),而观察节点代表我们已知的数据(例如,在实验1、2、3或4中是否检测到该相互作用)。我们的目标是从观察结果反向推理出隐藏的原因。
利用其他数据增强预测
除了高通量实验(如酵母双杂交、亲和捕获质谱)直接测量相互作用外,我们还可以利用其他类型的数据来提供独立信息。例如,我们可以考察两个可能相互作用的基因的表达是否相似。如果两个相互作用的蛋白质在多种条件下表达模式相似,那么它们的表达相关性就可能较高。然而,如下图所示,虽然相互作用的蛋白质(蓝色)的表达相似性分布整体比不相互作用的蛋白质(红色)更偏向左侧(即更相似),但无法设定一个明确的阈值来保证相互作用。因此,表达相关性在概率框架下有用,但单独使用预测能力有限。

进化模式(共进化)也被用作预测特征。在早期的一项开创性工作中,研究者使用贝叶斯网络整合了多种数据来预测相互作用。
贝叶斯网络的具体应用
该研究构建了“金标准”数据集:正例来自手工整理的MIPS数据库,负例来自定位于细胞不同部位的蛋白质。用于预测的数据包括:
- 直接实验数据:亲和捕获质谱、两种酵母双杂交实验。
- 间接数据:表达相关性、功能注释相似性、必需性(基因敲除是否致死)。
他们将其分解为两个预测问题,并使用了两种贝叶斯网络:
- 朴素贝叶斯网络:用于整合间接数据(表达、注释、必需性)。其核心假设是所有数据源彼此独立。似然比计算主要关注
P(数据|相互作用) / P(数据|不相互作用)。 - 全连接贝叶斯网络:用于整合直接实验数据。由于不同实验的结果可能相关,因此不假设独立性,需要显式计算所有实验结果的联合概率。
以下是间接数据的似然比示例表,展示了不同特征的预测能力:
| 特征 | 似然比 |
|---|---|
| 两个基因均为必需基因 | ~4 |
| 表达高度相关 | >100 |
| 具有相同功能注释 | 较低 |
结果表明,单独使用任何一项间接数据,其正确预测数都可能低于错误预测数。但通过贝叶斯网络整合所有数据后,可以选择一个似然比阈值,使得正确预测数超过错误预测数。直接实验数据的整合也显示出类似的优势。这证明了整合数据并进行概率推理的有效性。
基因表达数据分析基础
由于基因表达数据量巨大,分析这些数据的技术将长期发挥重要作用。我们的基本目标是:从表达数据中推断生物学知识。我们假设在特定条件下共表达的基因可能具有相似的功能或受共同的调控机制控制。
比较基因表达谱:距离度量
要比较基因,我们首先需要量化两个基因表达谱的相似性。每个基因的表达数据可以看作一个多维向量。最直观的距离度量是欧几里得距离:
distance(A, B) = sqrt( Σ (expression_A[k] - expression_B[k])^2 )
然而,在生物学背景下,基因表达的绝对水平可能意义不大,我们更关心表达模式的变化趋势。因此,皮尔逊相关系数更为常用。它比较的是基因表达相对于其均值的偏差(Z分数):
Z_score[i] = (expression[i] - mean(expression)) / std(expression)
correlation(A, B) = Σ (Z_A[k] * Z_B[k]) / (n-1)
distance = 1 - correlation
相关系数范围从+1(完全正相关)到-1(完全负相关)。距离则为1减去相关系数,因此完全相关的基因距离为0。
选择哪种度量取决于具体问题。有时数据点会缺失,常见的处理方法是插补,即用相似基因的表达值来估计缺失值。
聚类分析:发现共表达基因组
聚类是一种无监督学习方法,旨在发现数据中内在的组别。在基因表达分析中,我们通过聚类行(基因)来发现行为相似的基因组,通过聚类列(实验/样本)来发现反应相似的实验条件。
以下是常用的聚类方法:
层次聚类
层次聚类有两种方式:聚合式(自底向上,从每个点作为一个簇开始,逐步合并最相似的簇)和分裂式(自顶向下)。聚合式聚类更常见。
关键问题在于:合并两个簇后,如何计算一个新簇与第三个簇之间的距离?有以下几种连接标准:
- 单连接:取两个簇中任意两点间的最小距离。容易导致“链式”效应。
- 全连接:取两个簇中任意两点间的最大距离。对异常值稳健,倾向于产生紧凑的簇。
- UPGMC(质心法):取两个簇质心间的距离。
- UPGMA(类平均法):取两个簇所有点对之间的平均距离。
层次聚类的结果通常用树状图表示。树状图的垂直高度代表了合并时的距离。我们可以在任意高度切割树状图来获得不同数量的簇。但需要注意的是,树状图总是呈现层次结构,这更多反映了聚类方法本身,而不一定是数据的本质结构。
K均值聚类
K均值聚类需要预先指定簇的数量K。其目标是找到簇的划分,使得每个点到其所属簇质心的距离平方和最小。
算法步骤如下:
- 随机选择K个点作为初始质心。
- 重复直到收敛:
a. 分配步骤:将每个数据点分配给距离最近的质心。
b. 更新步骤:重新计算每个簇的质心(该簇所有点的均值)。
K均值聚类对初始质心的选择敏感,可能收敛到局部最优解。通常需要多次随机初始化。如何选择正确的K值?可以绘制肘部图:横轴为K值,纵轴为簇内距离平方和。当K值增加到真实簇数时,距离和会显著下降;超过真实簇数后,下降幅度变缓,曲线出现“肘部”。
其他聚类方法
- 模糊K均值:允许数据点以一定概率(隶属度)属于多个簇,适用于边界模糊的数据。
- K中心点:与K均值类似,但使用实际存在的样本点(中心点)作为簇的代表,而不是计算均值,适用于无法定义均值的数据(如序列模体)。
从特征到机制:基因特征签名的挑战与陷阱
聚类得到的基因组(特征签名)可用于预测,例如预测患者的疾病结局。早期研究显示,基于基因表达的分类可以复现甚至超越病理学家的诊断,并能从临床低风险患者中进一步区分出高风险亚群。
然而,相关性不等于因果性。一个令人警醒的研究表明:许多随机选择的基因集,甚至与疾病机制无关的基因集(如与“笑声后”或小鼠“社交挫败”相关的基因),也能在乳腺癌数据集中显著预测患者生存结局。
这是为什么呢?研究发现,基因组中很大一部分基因与一个已知的肿瘤侵袭性标志物PCNA的表达共变。因此,任何随机基因集的高表达都可能只是反映了PCNA的高表达,从而与不良预后相关,但这并无因果联系。
这一发现意味着:
- 基于纯表达相关性的特征签名可能包含大量虚假关联。
- 这些签名在未见过的患者群体中可能失效。
- 要获得具有机制洞察力和稳健预测能力的签名,需要整合其他类型的生物学信息进行约束。
推断基因调控网络的方法
我们的目标是从基因表达数据向上游追溯,发现驱动基因表达的转录因子及其上游信号通路。这超越了简单的聚类,旨在发现功能上而不仅仅是统计上相关的模块。
DREAM5挑战赛提供了一个客观比较不同网络推断方法的平台。组织者提供了已知答案的数据集(三个真实生物数据集和一个合成数据集),让参赛者进行预测和评估。主要方法可归纳为以下几类:回归方法、贝叶斯网络、互信息/相关性方法等。
1. 贝叶斯网络方法
在调控网络背景下,我们想计算给定表达数据下,某个通路(如p53)被激活的概率。我们假设转录因子只有在其表达升高时才会激活靶基因。
与蛋白质相互作用预测类似,我们构建贝叶斯网络,节点包括上游调控因子、转录因子和下游靶基因。我们可以从数据中学习网络结构和条件概率表。
优势与局限:
- 优势:可以整合多层信息,并利用“解释远离”效应区分竞争性调控因子。
- 局限:
- 仅凭观测数据无法确定因果方向,需要扰动实验(如基因敲除)。
- 网络不能有环(循环)。
- 如果真实的中间调控因子未被测量或纳入模型,推断关系会变得嘈杂。
2. 回归方法
核心思想:一个基因的表达水平是其调控因子表达水平的函数。最简单的模型是线性回归:
Y_predicted_g = β0 + Σ β_t * X_t
其中,Y_predicted_g 是基因g的预测表达,X_t 是调控因子t的表达,β_t 是权重系数(反映调控强度)。
目标是找到一组β参数,使预测表达与实际观测表达之间的残差平方和最小。为了避免得到大量不稳定的小权重,常使用正则化方法(如Lasso)来限制非零权重的数量,从而获得更稀疏、更稳健的模型。
3. 互信息方法
互信息衡量的是知道一个变量的值能减少另一个变量多少不确定性。与只能捕捉线性关系的相关系数不同,互信息能捕捉任何类型的依赖关系。
ARACNE算法是代表:
- 计算所有基因对之间的互信息。
- 通过与随机化数据比较,确定显著性的互信息阈值。
- 应用数据处理不等式:在三个基因的三角关系中,间接关联(两个共同靶基因之间)的互信息应小于它们与共同调控因子之间的互信息。据此移除间接连接。
MINDy算法进行了扩展,旨在发现调控因子:即能改变转录因子与其靶基因之间关系的蛋白质。它通过分析在调控因子高表达和低表达两种条件下,转录因子-靶基因互信息的变化,来识别激活剂或抑制剂。
互信息方法的优势与局限:
- 优势:能发现非线性关系,计算速度快,适合大规模数据分析。
- 局限:
- 要求信号必须体现在表达变化中(如磷酸化调控可能无法捕捉)。
- 当调控因子与其靶基因因其他原因总是共变时,无法区分。
- 生成的网络可能非常庞大且难以解释。
总结
本节课中,我们一起学习了从基因表达数据中分析生物学并推断基因调控网络的完整流程。我们首先回顾了贝叶斯网络在蛋白质相互作用预测中的应用,并将其思想迁移到调控网络推断。接着,我们探讨了基因表达分析的基础:如何通过距离度量和聚类来发现共表达模式。我们了解到,虽然基因特征签名具有预测潜力,但必须警惕其可能存在的虚假相关性。最后,我们深入介绍了三种主流的基因调控网络推断方法:贝叶斯网络、回归方法和互信息方法,并初步了解了它们各自的原理和特点。下节课我们将看到这些方法在DREAM5挑战赛中的直接比较结果。




016:蛋白质相互作用网络

概述
在本节课中,我们将学习如何利用大规模蛋白质相互作用网络数据来推断细胞内的功能模块和信号通路。我们将从回顾基因调控网络推断的挑战开始,探讨为何仅凭基因表达数据不足以准确重建调控网络。接着,我们将介绍因子图模型,这是一种能够整合多种数据类型(如拷贝数变异、转录组数据)并明确建模调控步骤的方法。最后,我们将深入探讨蛋白质相互作用网络的分析方法,包括如何计算网络距离、进行聚类分析,以及如何利用“奖励收集斯坦纳树”等算法从大规模网络中提取与特定实验条件相关的、可解释的子网络。
从基因调控网络到蛋白质相互作用网络
上一节我们介绍了利用基因表达数据推断基因调控网络的各种方法及其在DREAM挑战赛中的表现。本节中,我们来看看这些方法的局限性,并探讨为何需要引入其他类型的数据。
DREAM挑战赛的结果显示,在合成数据上,各种算法(如贝叶斯网络、回归、互信息)表现尚可。然而,在真实生物数据(如大肠杆菌和酵母)上,所有算法的表现都大幅下降,尤其是在酵母数据上,预测准确率极低。
核心问题在于,算法假设转录调控因子自身的表达水平与其靶基因的表达水平高度相关。然而,在真实数据(尤其是酵母)中,这种相关性非常微弱。无论是无关系的基因对、受同一调控因子共调控的基因对,还是直接的调控关系对,它们之间的表达相关性分布几乎重叠。这意味着仅凭mRNA表达水平,很难区分出真实的调控关系。
这引出了一个根本性问题:mRNA水平是否能准确预测蛋白质水平? 多项研究表明,两者相关性较弱(R²约0.2-0.4)。这是因为从mRNA到活性蛋白涉及多个受调控的步骤:
- 翻译速率
- mRNA降解速率
- 蛋白质降解速率
- 蛋白质翻译后修饰(如磷酸化)激活
这些过程的速率在不同分子间差异巨大(可达数个数量级),且彼此独立。因此,要准确推断调控网络,必须整合这些多层次的数据,而不是仅仅依赖mRNA表达。
因子图模型:整合多层次数据
为了解决上述问题,我们需要能够明确建模调控链中各个步骤的模型。Joshua Stuart等人开发的PARADIGM模型使用了因子图来实现这一目标。
因子图是概率图模型的一种,属于二分图,包含两类节点:
- 变量节点:代表我们关心的生物实体(如基因拷贝数、mRNA水平、蛋白质水平、蛋白质活性),其取值可以是“激活”、“抑制”或“不变”。
- 因子节点:代表变量之间的关系(如转录调控、翻译调控、蛋白质激活、复合物形成)。它们编码了我们对这些生物过程的认知。
核心思想是将全局联合概率分布分解为多个局部因子的乘积,每个因子只涉及与其直接相连的变量。这使得我们可以高效地计算边际概率,例如在给定拷贝数变异和mRNA表达数据的情况下,推断某个信号通路被激活的概率。
计算过程基于置信传播算法,信息以“消息”的形式在图中传递。变量节点将其所有子节点的消息相乘后传递给父节点;因子节点则对其子节点的状态进行汇总(求和)后传递给父节点。通过这种消息传递,可以高效计算出网络中所有节点的边际概率。
在PARADIGM中,先验知识(如已知的信号通路结构)被手动编码为因子图的结构和因子函数。模型参数则通过期望最大化算法从数据中学习。这种方法允许我们将拷贝数变异、DNA甲基化、mRNA表达等多种数据整合到一个统一的框架中,并推断出蛋白质活性等无法直接测量的隐藏状态。
蛋白质相互作用网络的分析方法
当我们的目标不仅是分析已知通路,而是要从大规模数据中发现新的功能模块时,就需要转向相互作用组网络分析。这些网络通常基于高通量蛋白质-蛋白质相互作用数据(如酵母双杂交、亲和纯化质谱)构建,节点是蛋白质,边代表相互作用。
以下是分析此类大型网络的几种核心方法:
1. 基于网络距离的推断
一个简单的应用是推断激酶与其底物的关系。如果我们知道一个蛋白质被磷酸化的位点序列,可以通过匹配激酶特异性基序来筛选候选激酶。然而,同一个家族的激酶可能具有相似的基序。此时,可以利用蛋白质相互作用网络来进一步筛选:在序列匹配良好的候选激酶中,那些在相互作用网络中与靶蛋白距离更近的激酶更可能是真正的调控者。
为了高效计算网络中所有节点对之间的最短路径,我们将网络表示为邻接矩阵。如果边带有权重(例如,权重 = -log(该相互作用为真的概率)),那么最短路径就对应于最大概率路径。标准的图算法(如Dijkstra算法)可以快速解决这个问题。
2. 网络聚类:发现功能模块
我们常常希望发现网络中内部连接紧密、与外部连接相对稀疏的子图(即模块)。以下是两种常用方法:
边介数聚类
- 核心思想:识别网络中连接不同模块的“桥梁”边。
- 算法步骤:
- 计算网络中所有边的边介数,即所有节点对的最短路径中经过该边的比例。
- 移除边介数最高的边。
- 重复步骤1和2,直到将网络分解为若干个模块。
- 直观理解:连接两个稠密模块的边会有很高的介数,因为两个模块间的大量通信必须经过它。移除这些边就自然分离出了模块。
马尔可夫聚类
- 核心思想:模拟随机游走过程,游走者更倾向于在模块内部停留,而不易跨越模块边界。
- 算法步骤:
- 根据邻接矩阵构建随机游走转移概率矩阵(列归一化的邻接矩阵)。
- 对矩阵进行膨胀操作:将每个元素求指数(如平方),然后重新按列归一化。这个操作会放大强连接,弱化弱连接。
- 重复膨胀和归一化步骤,直到矩阵收敛。最终矩阵会呈现出明显的块状结构,每个块对应一个聚类。
- 优势:可以处理重叠聚类,且对噪声相对稳健。
模块功能注释
找到聚类后,需要为其赋予生物学功能。常用方法是超几何分布检验:检验该聚类中富集了哪些已知的功能注释(如GO术语),其富集显著性即代表了该模块可能执行的功能。
3. 识别条件特异性活跃子网络
在特定实验条件(如疾病样本)下,我们不仅有关注网络拓扑结构,还拥有节点层面的实验数据(如差异表达基因、磷酸化蛋白质)。目标是找到一个连贯的子网络,它既包含许多实验上调或下调的节点,又符合相互作用网络的连接约束。
简单连接所有实验命中节点会导致巨大的、难以解释的“毛球”网络。奖励收集斯坦纳树方法可以解决这个问题:
- 问题定义:将实验命中节点设为“终端”,并为每个终端赋予一个奖励(奖励大小与置信度成正比)。网络中的每条边有一个成本(成本与相互作用置信度成反比)。
- 优化目标:寻找一个连接终端节点的子树,使得 (收集的终端奖励总和 - 使用的边成本总和) 最大化。
- 效果:算法会自动权衡。连接一个置信度低(奖励小)但距离远(成本高)的终端可能不划算,从而将其排除在最终子网络外。这样就能得到一个紧凑、高置信度且与实验数据相关的子网络。
这种方法能将包含数千条边的杂乱网络浓缩成几十个节点、功能清晰(如“DNA损伤”、“细胞周期”)的子网络,并提示出新的候选基因(斯坦纳节点),便于后续实验验证。
整合多组学数据
蛋白质相互作用网络的一个关键优势是提供了整合不同组学数据的框架。例如,转录组数据与蛋白质组数据相关性弱,遗传筛选命中基因与差异表达基因也大相径庭。
- 遗传筛选倾向于发现主调控因子(如DNA损伤传感器),它们本身表达量变化不大,但功能缺失影响巨大。
- 差异表达倾向于发现效应分子(如DNA修复酶),它们表达变化显著,但由于功能冗余,单个基因敲除可能表型不明显。
尽管不同数据层面给出的信号不同,但它们都源于相同的底层生物学过程。通过相互作用网络,我们可以将转录因子(从表观基因组数据推断)、信号蛋白(从磷酸化数据获得)、差异表达基因和遗传筛选命中基因连接起来,重建出完整的信号传导与调控通路。
总结
本节课中我们一起学习了:
- 基因表达数据的局限性:仅凭mRNA水平难以准确推断基因调控网络,因为mRNA与蛋白质水平相关性弱,且涉及多步受调控的过程。
- 因子图模型:通过明确建模调控链中的各个步骤(转录、翻译、激活),并整合拷贝数、甲基化、表达等多类数据,可以更可靠地推断信号通路活性。
- 蛋白质相互作用网络分析:
- 利用网络距离可以辅助推断具体的调控关系(如激酶-底物对)。
- 边介数聚类和马尔可夫聚类能发现网络中固有的拓扑模块。
- 奖励收集斯坦纳树算法能从全局相互作用网络中,提取出与特定实验条件相关的、紧凑且功能可解释的活跃子网络。
- 多组学数据整合:蛋白质相互作用网络是整合转录组、蛋白质组、遗传学等多维度数据的理想框架,有助于还原完整的生物学过程,并发现新的调控关系和候选靶点。


这些从大规模、无偏数据中构建可解释网络模型的方法,为我们理解复杂生物系统、识别疾病机制和发现潜在治疗靶点提供了强大的工具。
017:细胞信号网络的逻辑建模 🧬

以下内容基于知识共享许可协议提供。您的支持将帮助麻省理工开放课件继续免费提供高质量教育资源。如需捐款或查看来自数百门麻省理工课程的更多材料,请访问 MIT OpenCourseWare。
在本节课中,我们将学习如何将细胞信号网络转化为可计算、可预测的逻辑模型。我们将从概念背景入手,然后深入一个具体的研究案例,展示如何将先验知识图谱与实验数据结合,构建出能够解释和预测细胞行为的逻辑模型。
概述:从隐喻到可计算模型
在哺乳动物细胞生物学中,细胞的行为(表型响应)由其感知的环境信号(如生长因子、激素、细胞外基质)所控制。这些信号通过细胞表面受体激活复杂的生化信号通路,最终调控基因表达、代谢、细胞骨架等执行过程,从而决定细胞表型。
随着基因组测序的普及,我们发现即使是同一种癌症,不同患者的肿瘤也拥有大量不同的基因突变。然而,这些看似不同的突变往往汇聚在相同的信号通路或功能模块上。这表明,在蛋白质水平的信号通路层面理解细胞功能,是整合和理解基因组数据的关键。
人们常将信号网络比作“电路板”,这是一个吸引人的隐喻,但它本身无法进行计算或预测。本节课的目标,就是介绍如何将这种隐喻转化为可操作的、可计算的逻辑模型。
建模方法:理论驱动与数据驱动
在计算建模领域,主要有两类方法:
- 理论驱动建模:基于先验知识(如已知的生化反应机制)建立微分方程等数学模型。这需要详细的机制知识和速率常数,对于复杂的信号网络通常难以实现。
- 数据驱动建模:从大规模数据集中通过统计、聚类、回归等方法寻找关联和模式,无需详细的先验理论。
逻辑建模的吸引力在于,它可以灵活地应用于这两种模式。我们可以从先验知识图谱出发构建逻辑模型(理论驱动),也可以直接从实验数据中推断逻辑关系(数据驱动),并能在两者之间迭代优化。
先验知识:信号通路数据库的挑战
构建模型的起点通常是已有的知识。目前存在许多信号通路和蛋白质相互作用数据库(如 KEGG、Reactome、Ingenuity)。这些数据库基于文献整理,描述了分子间的上下游关系或物理相互作用。
然而,这些数据库存在挑战:
- 不一致性:不同数据库包含的节点和相互作用重叠度很低,缺乏共识。
- 缺乏上下文:数据库信息通常来自不同细胞类型、物种或实验条件,可能不适用于特定研究背景。
- 无法计算:仅凭图谱无法进行计算或预测。虽然有人尝试用图论特征(如节点连接度)预测重要性,但其生物学有效性证据尚不充分。
因此,我们的策略是:将这些数据库信息作为初始“脚手架”,然后通过映射到特定背景下的实验数据,将其转化为可计算的逻辑模型。
核心方法:构建布尔逻辑模型 🧮
我们的目标是将描述性的信号网络图(例如,“A和B激活E,B抑制F”)转化为形式化的、可计算的逻辑语句。
布尔逻辑模型 是常用的框架。在这个框架中,每个信号分子被视为一个节点,其状态被简化为 “开”(1,激活) 或 “关”(0,非激活)。分子间的相互作用被转化为逻辑门,例如:
- 与门(AND):
E = A AND B(A和B同时激活,E才激活) - 或门(OR):
F = C OR D(C或D任一激活,F即激活) - 非门(NOT):
G = NOT H(H激活会抑制G)
通过为网络中的每个节点定义其输入节点的逻辑规则,我们就得到了一个可以计算的布尔网络模型。
案例研究:肝癌细胞信号逻辑建模
接下来,我们通过一个具体研究案例来演示整个过程。该研究旨在比较正常肝细胞和几种肝癌细胞系的信号网络逻辑差异。
实验数据
研究测量了5种细胞类型(4种肝癌细胞系和1种原代正常肝细胞)在以下处理下的响应:
- 7种细胞外刺激:包括生长因子、细胞因子等。
- 7种小分子抑制剂:针对特定的激酶或通路。
- 多个时间点:如0、30分钟、3小时。
测量指标是17种关键信号蛋白的磷酸化水平,这反映了它们的活性状态。数据被归一化并可视化为热图,可以直观看出不同细胞类型对相同处理的响应模式存在显著差异。
建模流程
以下是构建逻辑模型的具体步骤:
- 获取先验图谱:从Ingenuity等数据库获取信号网络的初始图谱,包含约82个节点和100多个相互作用边。这构成了模型的“脚手架”。
- 定义模型空间:基于脚手架,考虑所有可能的逻辑门(AND, OR, NOT)组合,这会生成海量的潜在模型。
- 拟合与优化:使用遗传算法搜索能最好拟合实验数据的模型。
- 初始化:从脚手架衍生出一组随机变异的模型(种群)。
- 评估:用目标函数评估每个模型的质量。目标函数权衡两个因素:
- 拟合误差:模型预测的0/1状态与实验测量值(0到1之间的连续值)之间的差异。
- 模型复杂度:模型包含的节点和边的数量,通过一个惩罚参数
α来约束,防止模型过度复杂。
公式可以简化为:θ = 拟合误差 + α * 模型大小
- 进化:选择表现最好的模型(“精英”),通过“突变”(随机增减边/修改逻辑)和“交叉”(组合不同模型的边)产生新一代模型种群。
- 迭代:重复评估和进化过程,直到获得一组拟合良好且稳定的模型。
- 生成共识模型:由于数据噪声和模型等效性,通常不存在单一的“最佳”模型。我们会得到一个模型家族,然后从中提取共识模型。共识模型中边的粗细代表该边在模型家族中出现的频率,即共识强度。
结果与验证
- 模型性能提升:仅使用原始数据库图谱拟合的模型误差很高(~45%)。经过上述流程优化后,得到的共识模型能将误差降低到10%以下。
- 模型预测:使用训练好的模型去预测一个全新的数据集(包含新的刺激组合和抑制剂组合),预测误差约为11%,与训练误差接近,验证了模型的预测能力。
- 生物学发现:比较正常肝细胞和肝癌细胞的共识模型,可以识别出信号逻辑存在差异的边。这些差异通常对应着文献中已报道的癌症相关通路改变,例如胰岛素信号从代谢向增殖转变、NF-κB通路调控变宽松等。模型还意外地帮助发现了一个小分子抑制剂的脱靶效应。
从布尔模型到模糊逻辑模型
布尔模型的优点是简洁,但缺点是将连续的生物学数据强行二分。一个改进方向是使用模糊逻辑模型。
在模糊逻辑中,我们将布尔模型中的阶跃函数替换为更平滑的S型转移函数。这为每个逻辑门引入了额外的参数(如阈值和斜率),使模型能够处理更定量的输入和输出,做出“激活程度强弱”的预测。当然,这需要更多的数据来拟合增加的参数。
总结
本节课我们一起学习了细胞信号网络逻辑建模的核心方法。我们了解到:
- 可以将基于数据库的先验知识作为起点,通过整合特定背景下的实验数据,构建出可计算的布尔逻辑模型。
- 使用遗传算法等优化方法,可以从大量可能模型中筛选出能很好拟合和预测数据的一个模型家族。
- 通过比较不同生理状态(如正常 vs 癌变)下的共识模型,可以识别出关键的信号逻辑差异,这些差异可能与基因突变相关联,并为药物靶点发现提供线索。
- 逻辑建模框架可以进一步扩展为模糊逻辑,以更好地捕捉生物信号的定量特性。


这种方法将信号网络的“电路”隐喻转化为了一个强大的、可计算、可预测的分析工具,帮助我们在系统层面理解细胞如何解读环境信号并做出命运决策。
018:染色质结构分析

在本节课中,我们将学习如何分析染色质结构。我们将首先探讨如何通过计算方法“解码”描述表观基因组的“密码”。接着,我们将研究如何利用表观遗传信息来理解基因组的整体调控状态,并解答一个关键谜题:为何在众多潜在结合位点中,只有少数被调控因子占据。最后,我们将学习如何绘制基因组中调控区域与目标基因之间的相互作用图谱。
建立词汇表:染色质的组织层次
在深入分析之前,我们需要了解染色质的基本组织层次。染色质可以看作是在不同层次上组织的结构。
- DNA一级序列:这包括DNA本身的序列,以及甲基化的CpG位点。CpG甲基化是对称的,因此在DNA复制过程中,甲基转移酶可以复制这个甲基标记,使其成为可遗传的标记。
- 组蛋白修饰:组蛋白(如H3和H4)的氨基末端尾部可以进行多种化学修饰。这些修饰作为“路标”,为我们提供基因组特定位置功能的线索。
- 染色质压缩状态:这指的是染色质是处于开放还是封闭的紧凑状态。这直接关系到DNA结合蛋白能否实际结合到基因组上。
- 核纤层关联域:基因组的某些区域可以与核纤层相关联。
我们将探讨所有这些层次的组织结构。
解码组蛋白密码:动态贝叶斯网络的应用
上一节我们介绍了染色质的基本结构,本节中我们来看看如何解读其中的关键信息——组蛋白修饰。组蛋白修饰的模式被称为“组蛋白密码”,它揭示了基因组功能元件的状态。
通过多年的生化分析,不同的组蛋白修饰已被分析与表征。例如,活跃基因的启动子区域通常富含CpG,并带有H3K4三甲基化标记;而增强子区域可能同时具有H3K4单甲基化和H3K27乙酰化标记。
我们的目标是利用全基因组范围的组蛋白修饰谱数据,自动地、无需先验知识地注释基因组功能元件。一种方法是使用动态贝叶斯网络,例如Segway工具。
Segway使用的动态贝叶斯网络模型如下:模型底部从左到右的观察变量代表基因组上每个碱基位置的各种组蛋白修饰水平。上方的Q变量代表隐藏的状态,每个状态描述了一组特定的组蛋白修饰输出模式。模型通过训练自动学习这些状态及其转换规律。顶部的计数器变量用于控制特定状态的最大持续时间。
在训练阶段,模型学习每个状态输出的组蛋白修饰特征。训练完成后,我们可以使用维特比解码器读取新的组蛋白修饰序列,推断基因组每个位置最可能的状态,从而实现对基因组功能的自动注释,例如发现活跃的增强子区域。
理解染色质可及性与因子结合
理解了如何解读染色质状态后,我们接下来探讨这种状态是如何建立的,以及调控因子如何找到特定的基因组位置进行结合。这里存在一个谜题:基因组中存在数十万个潜在的转录因子结合基序,但实际被占据的位点只有数万个。序列相同的位点在不同细胞状态下可能表现出不同的结合情况,这表明结合特异性并非完全由DNA序列决定。
我们引入一种称为PIQ的计算方法,它能够仅利用DNAse-seq数据来预测转录因子在全基因组的结合位点。DNAse-seq是一种检测基因组开放区域的技术:DNA酶I会在染色质开放的区域切割DNA,通过测序这些切割片段,我们可以获得基因组可及性的图谱。
PIQ算法的输入包括:参考基因组序列、我们感兴趣的转录因子基序、以及比对到基因组的DNAse-seq数据。其输出是每个基序位点被相应因子结合的概率预测。
该算法的核心是建立两个模型:
- 背景模型:使用泊松分布建模基因组上每个碱基在无蛋白结合时的预期读数,其对数速率来自一个多元正态分布,该分布能利用相邻碱基的信息进行平滑处理。
- 保护谱模型:为每个转录因子基序学习一个典型的DNA酶I切割保护模式(即“阴影”图谱)。
对于每个基序位点,我们计算一个对数似然比:
LLR = log( P(观测数据 | 蛋白结合) / P(观测数据 | 蛋白未结合) )
这个比值,结合其他先验信息,构成了判断蛋白是否结合的核心统计量。通过比较该统计量在真实基序位点与已知非结合位点(零假设集)的分布,我们可以在给定的P值阈值下做出结合与否的判断。
该方法在重现大量ChIP-seq实验结果方面表现优异(平均AUC > 0.93),能够从单次DNAse-seq实验中可靠地检测约75种具有强基序和结合亲和力的因子。
发现染色质“先锋因子”
基于DNAse-seq数据分析染色质可及性的动态变化,我们可以识别那些能够结合封闭染色质并使其开放的“先锋因子”。我们设计了计算指标来筛选这类因子,包括动态开放指数、静态开放指数和社交指数。
计算预测需要通过实验验证。我们构建了报告基因系统进行测试:将预测的先锋因子与一个激活因子(视黄酸受体)结合,只有当先锋因子成功打开染色质,且激活因子存在时,报告基因(GFP)才会表达。实验证实了大多数计算预测的先锋因子确实具有染色质开放活性。
有趣的是,分析发现某些先锋因子(如NRF1)的DNA酶I保护谱具有方向性,即切割模式在基序的一侧比另一侧更强。实验进一步证实,当这些因子的结合基序以正确方向插入报告载体时,才能有效激活GFP表达,反之则不能。这表明它们以方向性的方式打开染色质。
总结来说,调控因子在基因组可及性中的作用可分为三类:
- 先锋因子:能够结合并打开封闭染色质。
- 定居因子:倾向于结合在已被先锋因子打开的染色质区域。
- 双向因子:同时具备上述两种特性。
绘制远程相互作用图谱:连接增强子与基因
最后,我们探讨如何确定基因组中哪个调控区域在调控哪个基因。传统方法是假设调控元件影响其最近的基因,但研究表明,约三分之一的调控位点会跳过最近的基因去调控更远的基因。
为了直接捕获增强子与启动子之间的物理相互作用,我们使用诸如ChIA-PET等技术。该技术的核心思想是:通过交联固定细胞内的蛋白质-DNA复合物,免疫沉淀特定蛋白(如RNA聚合酶II),然后在稀释条件下进行DNA连接。这样,与同一蛋白复合物相连的、空间上接近的DNA片段(如增强子和启动子)就会被连接在一起。对这些连接产物进行成对末端测序,即可绘制出由特定蛋白介导的全基因组相互作用图谱。
分析此类数据时,我们面临技术噪音和生物学动态性的挑战。为了评估一对基因组位点(A和B)之间观察到的相互作用读段数是否显著,我们可以使用超几何分布进行检验。零假设是这些连接是随机发生的。给定总读段数N、定位到位点A的读段数C_A、定位到位点B的读段数C_B,观察到至少I_AB条连接读段的概率可由超几何分布计算。如果该概率极低,我们则拒绝零假设,认为A和B之间存在显著的相互作用。
此外,当我们进行两次生物学重复实验,并观察到部分重叠的相互作用集合时,可以利用超几何分布的最大似然估计来近似推断基因组中可能存在的相互作用总数,公式为:N_total ≈ (M * N) / K,其中M和N是两次实验各自发现的相互作用数,K是重叠数。
总结


本节课中,我们一起学习了染色质结构分析的多方面内容。我们首先介绍了如何利用动态贝叶斯网络解码组蛋白修饰所蕴含的“组蛋白密码”,从而注释基因组功能元件。接着,我们探讨了如何通过DNAse-seq数据预测转录因子结合位点,并识别出能够主动打开染色质的“先锋因子”,其中一些因子还具有方向性功能。最后,我们学习了如何利用ChIA-PET等捕获染色质构象的技术来绘制增强子-启动子远程相互作用图谱,并使用超几何分布来评估这些相互作用的统计学显著性。这些方法共同帮助我们更深入地理解基因组的三维结构与功能调控之间的复杂联系。
019:发现数量性状基因座 (QTLs)

在本节课中,我们将学习如何通过计算模型从基因型预测表型,特别是如何发现和利用数量性状基因座 (QTLs)。我们将探讨遗传率的概念,并尝试寻找“缺失的遗传率”。
回顾与引言
上一节我们讨论了染色质结构和调控,现在我们将转向遗传分析。在开始之前,我们先简要回顾上节课的两个要点。


首先是5C分析。这是一种类似于ChIA-PET的技术,用于分析基因组折叠和增强子与启动子相互作用。其流程包括交联、限制性内切酶消化、邻近连接,然后使用特异性引物检测连接事件,并通过测序或微阵列分析结果。5C与ChIA-PET的关键区别在于,你需要预先设计引物来查询特定的基因组位置。
其次,我们讨论了CpG二核苷酸。由于其对称性,胞嘧啶上的甲基化标记可以在DNA复制过程中通过DNA甲基转移酶从一条链转移到另一条链,形成更稳定的表观遗传标记。通常,DNA甲基化发生在低表达基因区域,这些区域通常缺少组蛋白修饰,基因处于关闭状态。
现在,我们将开始探索“缺失的遗传率”这一重大开放性问题。今天的课程主线是:你通常比陌生人更像你的亲属。这是因为你继承了父母基因组的组成部分,这些组成部分影响了你的性状。一个性状的遗传率定义为可由遗传因素解释的表型变异比例。
今天我们将讨论能够从基因型预测表型的计算模型。这对于理解各种性状的来源以及像药物基因组学这样的领域至关重要,后者旨在根据你的遗传构成预测最佳疗法。
影响数量性状的基因组位点被称为数量性状基因座 (QTLs)。我们将讨论如何发现它们,以及如何利用QTLs建立数量性状模型。最后,正如开头所说,我们当前的模型并不完善,无法找到所有的遗传率。因此,我们将去寻找这些缺失的遗传率。
在计算上,我们将应用多种技术来解决这些问题。预览一下,我们将:
- 建立表型的线性模型。
- 使用逐步回归和前向特征选择来学习这些模型。
- 推导用于发现哪些QTLs显著的检验统计量。
- 讨论如何测量狭义遗传率、广义遗传率和环境方差。
从基因型到表型的概述
今天我们将主要使用完整的基因组序列,这会揭示基因组中存在的所有变异。当然,你也可以通过微阵列等技术只观察特定的变异标记。
个体的表型测定由一个或多个性状定义。非数量性状可能是简单的二元结果,例如存活与否或在特定条件下的生存能力。数量性状则是连续变量,例如个体的身高、生长速率或特定基因的表达水平。
我们将重点放在估计数量性状上。如前所述,数量性状基因座 (QTL) 是与数量性状相关并可用于预测它的标记。有时你还会听到eQTLs,即表达数量性状基因座,它们是影响基因表达的位点。
一个简单的遗传模型
让我们从一个非常简单的遗传模型开始。这是一个单倍体模型,意味着每条染色体只有一个拷贝。我们将以酵母作为模型生物。
假设有父母双方(母本和父本),他们有N个不同的基因贡献给子代(F1代)。每个基因的等位基因来自母本或父本的概率是独立的(像抛硬币一样),我们假设它们相距足够远,在减数分裂中发生交叉的概率为0.5,因此我们从父母那里随机获得等位基因组合。
假设你进行了一个实验,产生了32个个体,并测试它们对某种物质的抗性。如果母本具有抗性而父本没有,并且有2个个体表现出抗性,那么有多少个基因参与了这种抗性呢?
我们可以这样思考:如果母本具有抗性,那么子代需要从母本获得正确的基因组合才能具有抗性。假设需要从母本获得k个基因,那么获得所有这k个基因的概率是 (1/2)^k。如果2/32(即1/16)的个体具有抗性,那么 (1/2)^k ≈ 1/16,所以k ≈ 4。因此,粗略估计有4个基因参与。
更一般地,对于非数量性状,假设基因不连锁,你可以通过以下公式粗略估计涉及的基因数量:
涉及基因数 ≈ log₂(测试的F1个体总数 / 具有该表型的F1个体数)
数量性状模型
现在让我们讨论数量性状。回到我们的模型,假设有另一组N个基因。每个基因,子代从父本或母本继承的概率各为0.5(抛硬币)。
假设母本的每个基因对表型的贡献为0,父本的每个基因贡献为 1/N。那么父本的总效应值为1(因为 N * (1/N) = 1)。因此,母本对该数量性状(例如乙醇产量)的贡献可能是0,而父本的贡献是1。
那么,子代表型可能有多少个不同的水平?子代可以从父本继承0个、1个、2个,直到N个基因,因此有 N+1 个不同的水平。
子代表型的期望值是多少?由于你平均会从父本继承一半的基因,所以期望值是 0.5(即父母表型的中间值)。
继承父本x个基因的概率服从二项分布:
P(X=x) = C(N, x) * (0.5)^x * (0.5)^(N-x) = C(N, x) * (0.5)^N
因此,子代的表型分布将围绕均值0.5呈二项分布。X的方差为 Var(X) = N * 0.5 * 0.5 = 0.25。但请注意,我们这里定义的X是继承自父本的基因数量。如果我们考虑的是表型值(贡献总和),每个父本基因贡献 1/N,那么表型值 Y = X/N,其方差为 Var(Y) = Var(X/N) = Var(X)/N² = 0.25/N。
这个简单模型告诉我们几点:
- 当N非常大时,每个基因的效应会变得非常小。
- 完全可遗传的性状,如果分散在成千上万个基因上,将非常难以检测,因为每个基因的效应很小。
- 子代中观察到的表型方差会随着贡献基因数量N的增加而线性减小。
- 如果基因连锁(在基因组中位置靠近),它们将作为一个单位共同遗传,这会导致标记相关性,并且有效效应大小会更大。
- 在更复杂的模型中,不同基因的效应大小可能差异很大。
遗传率:广义与狭义
我们将通过以下方式对问题进行建模。一个个体i的表型 P_i 可以表示为:
P_i = F(基因型_i) + E_i
其中,F 是将个体基因型映射到其表型的函数,E 是环境成分。
如果我们考虑一个群体,表型方差 Var(P) 可以分解为:
Var(P) = Var(G) + Var(E) + 2*Cov(G, E)
我们通常假设基因型与环境无关,即协方差项 Cov(G, E) = 0。因此:
Var(P) = Var(G) + Var(E)
我们的目标是找到一个函数 F,它能最好地预测这个方程中的基因型成分 Var(G)。我们无法控制环境方差 Var(E),但可以测量它。
如何测量环境方差?在受控环境中研究群体是一种方法。更直接的是研究基因型完全相同的克隆个体或同卵双胞胎,此时观察到的所有表型方差都来自环境差异。
遗传率衡量的是遗传因素对表型变异的贡献比例。有两种重要的类型:
-
广义遗传率 (H²):描述了在任意模型下,表型预测的上限。它是遗传原因对表型变异的总贡献。
H² = Var(G) / Var(P) = [Var(P) - Var(E)] / Var(P)
我们可以通过比较克隆个体(或同卵双胞胎)的方差与总体方差来估计它。 -
狭义遗传率 (h²):当我们将函数
F限制为加性线性模型时,所能描述的遗传率。它表示线性模型能解释的表型方差比例。
h² = Var(加性遗传成分) / Var(P)
狭义遗传率之所以有用,是因为我们可以从实验中计算广义和狭义遗传率。它们之间的差异正是我们探索“缺失的遗传率”的核心:为什么我们不能建立一个完美的函数 F 来从基因型预测表型?
一些注意事项:
- 遗传率总是针对特定群体而言的。
- 在讨论时,需明确是广义还是狭义遗传率。
- 在实验室外(如人类研究中),准确估计环境成分并消除基因型-环境混杂可能很困难。
发现QTLs:计算模型
现在,我们转向如何通过计算模型发现QTLs并建立预测函数 F。我们将以Bloom等人(2014)的酵母研究为例。
实验设置很简单:
- 取两种酵母菌株(RM和BY)进行杂交,产生约1000个F1代个体。
- 亲本基因型已知(通过50X测序),每个F1个体的基因型通过微阵列确定,可以清楚看到每条染色体片段来自哪个亲本。
- 在每个F1个体的46种不同生长条件(不同糖类、压力环境等)下测量其生长速率(表型)。
- 因此,对于每种条件,我们都有每个个体的精确基因型和对应的生长表型。
目标是:对于每种生长条件,找到基因组中与生长速率显著相关的位点(QTLs)。
核心思想如下:
你拥有遍布基因组的遗传标记(SNPs)。对于某个特定性状(如一种条件下的生长速率),你测试一个特定标记。根据该标记的等位基因(例如0或1)将个体分组,然后比较两组个体的表型均值。
我们需要区分两种情况:
- 该标记与生长速率无关:两组个体的表型分布均值相同。
- 该标记能预测生长速率:两组个体的表型分布均值显著不同。
我们可以使用似然比检验来计算一个LOD分数(对数优势比),以判断该标记是否与性状显著相关。
但这里存在一个多重假设检验问题:我们正在测试超过11,000个标记。如何校正?
解决方案是使用置换检验来建立零分布:
- 随机打乱表型与个体之间的关联(即破坏基因型-表型关系)。
- 对打乱后的数据,计算所有标记的LOD分数分布。这代表了在零假设(无关联)下我们预期看到的“噪声”分布。
- 重复此过程多次(如1000次),得到一个稳健的零分布。
- 从零分布中确定一个阈值(例如,取95%分位数),使得LOD分数超过该阈值的概率小于0.05(即随机出现的假阳性率)。
- 将实际数据中计算出的LOD分数与此阈值比较,超过阈值的标记被认为是显著的QTL。
由于置换检验已经考虑了所有标记,因此无需再进行额外的多重检验校正。
逐步回归与模型构建
仅通过一次扫描发现所有显著QTL可能不够。有些QTL的效应可能被其他强效QTL掩盖。因此,我们使用逐步回归和前向特征选择来迭代构建模型。
以下是步骤:
- 第一轮:使用上述置换检验方法,从所有标记中找出与原始表型显著相关的QTLs(集合1)。用这些QTLs建立一个线性模型来预测表型。
- 计算残差:对于每个个体,计算其观测表型与模型预测表型之间的差值。这些残差代表了模型尚未解释的部分。
- 第二轮:将残差作为新的“表型”,再次进行全基因组扫描,寻找与残差显著相关的新QTLs(集合2)。注意,每次扫描都需要重新进行置换检验以确定新的显著性阈值。
- 更新模型:使用集合1和集合2中的所有QTLs建立一个新的线性模型。
- 迭代:重复计算残差、扫描、添加新QTLs的过程(通常进行2-3轮),直到没有新的显著QTLs出现。
这种方法可以逐步揭示那些在初始扫描中因效应较小或被掩盖而未达到显著水平的QTLs。
当应用此方法后,沿着基因组查看LOD分数,你会看到一些峰值区域。峰值附近呈现平缓的上升和下降,而不是尖锐的脉冲,这是因为附近的SNP标记与因果位点存在连锁不平衡,距离因果位点越近,相关性越高。
研究结果表明:
- 使用1000个个体时,对于一个性状,他们发现了15个QTLs,解释了78%的表型变异。
- 当仅使用100个个体时,只发现了2个QTLs,仅解释了21%的变异。这说明了样本量(统计功效)的重要性:如果个体数量不足,你将无法检测到效应较小的QTLs。
缺失的遗传率来源
尽管模型表现良好,但研究者发现,他们通过加性模型实现的狭义遗传率 (h²) 与理论上估计的广义遗传率 (H²) 之间仍然存在差距。这就是“缺失的遗传率”。
那么,是什么导致了这些缺失的遗传率?为什么加性模型不能完全预测生长速率?以下是一些可能的原因:
- 上位性效应:即基因间的非线性相互作用。例如,两个基因单独存在时可能没有效应,但同时存在时会产生效应。这种相互作用无法在只考虑单个标记的加性模型中捕捉到。当研究者考虑已发现QTL与其他所有标记的成对相互作用时,他们在46个性状中的24个里发现了这种效应,有时能解释很大一部分缺失遗传率。
- 表观遗传因素:例如组蛋白修饰等可遗传的染色质标记,这些在标准的基因型模型中未被考虑。酵母虽然没有DNA甲基化,但存在组蛋白修饰。
- 罕见变异:效应可能很小且频率低,在有限的样本量中难以检测。
- 结构变异:如拷贝数变异等,在标准的SNP芯片或测序分析中可能未被完全捕获。
- 测量误差与环境方差估计不准确:如果环境条件未能完全重复,可能导致环境方差估计有误,从而影响遗传率计算。
- 其他遗传因素:
- 线粒体DNA:它独立于核基因组遗传,且不同菌株可能具有不同的线粒体类型,影响表型。
- 细胞内寄生因子(如病毒):一个生动的例子是酵母中的“杀手病毒”。某些野生型酵母携带这种病毒。当与实验室菌株杂交时,病毒也会遗传。许多先前研究中发现的与乙醇耐受性或耐热性相关的QTL,实际上与一个名为“MKT1”(维持杀手毒素1)的基因有关,该基因与病毒活性相互作用。如果不考虑病毒的存在以及病毒与染色体基因型的非线性相互作用,就会丢失大量的遗传信息。考虑这些因素后,几乎可以恢复所有缺失的遗传率。
这个例子深刻地提醒我们:遗传学是复杂的。QTL分析是强大的工具,但切勿忘记,除了核染色体上的基因外,还有许多其他遗传元素和相互作用影响着表型。
总结
在本节课中,我们一起学习了:
- 如何从简单的遗传模型理解数量性状的遗传。
- 广义遗传率 (H²) 和狭义遗传率 (h²) 的定义、区别及估算方法。
- 如何通过置换检验和逐步回归等计算方法来发现数量性状基因座 (QTLs),并建立从基因型预测表型的线性模型。
- 当前模型存在的局限性,即“缺失的遗传率”问题。
- 缺失遗传率的多种可能来源,包括上位性效应、表观遗传、罕见变异、结构变异以及线粒体、病毒等非核遗传因素。


这些概念和方法是连接基因型与表型、理解复杂性状遗传基础的核心。下次课,我们将讨论人类遗传学中的相关应用。
020:人类遗传学、SNP与全基因组关联研究 👨🔬🧬

在本节课中,我们将要学习人类遗传学的基础知识,特别是如何发现和解读人类基因组中的变异。我们将从使用微阵列发现变异的历史方法开始,探讨如何通过病例-对照研究检验变异与疾病的关联性。接着,我们将深入探讨如何利用全基因组测序数据来检测变异,并了解其中的挑战。最后,我们将学习如何整合不同的基因组信号(如组蛋白标记)来识别与疾病相关的关键调控元件变异。
概述
本节课的核心是理解人类遗传变异与疾病关联的研究方法。我们将首先介绍单核苷酸多态性(SNP)和微阵列技术,然后学习如何通过统计检验(如卡方检验和费希尔精确检验)分析病例-对照数据。之后,我们将转向更复杂的全基因组测序数据分析,学习如何从原始测序数据中可靠地鉴定基因型。我们还将探讨连锁不平衡、单倍型分块和单倍型定相等重要概念。最后,我们将通过一个具体研究案例,展示如何将基因组功能注释与遗传关联分析结合,以发现致病性变异。
微阵列与SNP发现
上一节我们概述了课程内容,本节中我们来看看如何利用微阵列技术发现人类基因组中的常见变异。
人类个体之间大约每1000个碱基对中就存在一个差异。历史上,研究人员主要使用两种广泛的方法来发现这些变异。微阵列是其中一种方法,它基于已知的常见变异进行设计。
研究人员通过对不同人群进行测序研究,识别出常见的单核苷酸多态性(SNP),然后基于这些发现来设计微阵列。因此,微阵列可以直接读出这些常见变异的信息。
以下是设计和使用SNP芯片的关键步骤:
- 人群测序:对不同人群进行测序,以发现常见的遗传变异。
- 芯片设计:基于发现的常见SNP设计微阵列探针。
- 基因分型:使用芯片对个体样本进行基因分型,直接获取变异信息。
这种方法假设所研究的变异在人群中较为常见(等位基因频率通常大于5%)。然而,变异对表型的影响往往与其频率成反比:罕见的变异可能产生严重的效应,而常见的变异效应通常较小。
关联分析:病例-对照研究
在了解了如何发现SNP后,本节我们来看看如何检验一个特定的SNP是否与某种疾病相关联。这是通过病例-对照研究来实现的。
以年龄相关性黄斑变性(AMD)的研究为例。研究人员收集了934名未患病的对照个体和1238名AMD病例(均为欧洲裔,年龄≥60岁),并使用微阵列对他们进行了基因分型。核心问题是:阵列上检测到的SNP中,是否有任何一个与AMD显著相关?
以一个特定SNP(rs1061170)为例。数据显示了病例组和对照组中C和T等位基因的计数。每个个体有两个等位基因,因此总等位基因数是个体数的两倍。
为了检验等位基因在病例和对照组中的分布是否显著不同,我们可以使用列联表并进行卡方检验。列联表的边际概率源于表格边缘的总计。例如,不考虑病例或对照,携带C等位基因的边际概率是2192除以4344。
计算卡方统计量的公式如下:
χ² = (总样本数 * (|ad - bc| - 总样本数/2)²) / ((a+b)(c+d)(a+c)(b+d))
其中,a, b, c, d 是列联表中四个单元格的观测值。自由度是(行数-1)乘以(列数-1)。对于2x2表格,自由度为1。计算得到的p值非常小(10⁻⁶²),即使在进行了多重假设检验校正(假设测试了100万个SNP)后,随机发生这种情况的概率也极低。因此,该SNP与疾病显著相关。
另一种思考数据随机排列概率的方法是费希尔精确检验,它与我们之前讨论过的超几何检验密切相关。其概率计算公式为:
P = (C(a+b, a) * C(c+d, c)) / C(a+b+c+d, a+c)
这是观察到当前表格配置的精确概率。为了得到零假设(无关联)的概率,需要将此概率与所有更极端情况的概率相加。
实验设计与混杂因素
在进行关联分析时,严谨的实验设计至关重要。一个糟糕的设计示例是:病例全部来自麻省总医院,而对照组全部来自中国。这样做的问题是,中国人群可能拥有不同的SNP谱,这是群体分层的结果。你可能会发现许多与疾病“相关”的SNP,但实际上它们只是群体差异的反映。
控制群体分层的方法包括:选择一批你认为与疾病无关的SNP作为对照进行卡方检验,以确保它们不显著;或者使用更复杂的方法对个体进行重新分类和混合。这是一个当前的研究课题。
关于AMD的好消息是,研究人员发现了三个基因中的五个常见变异,可以解释50%的患病风险。这被视为利用该方法成功剖析多基因遗传病的一个范例。
连锁不平衡与单倍型
上一节我们讨论了如何发现关联,本节中我们来看看一个影响关联分析的重要现象:连锁不平衡。
在减数分裂形成配子时,如果两个遗传标记在物理位置上非常接近,发生交换的可能性就很小,因此它们倾向于一起遗传。在人类基因组中,每次减数分裂平均发生50-100次交换,跨越整个基因组。如果两个标记靠得很近,它们就会处于高度的连锁不平衡中。
我们可以用以下公式来量化两个等位基因之间的连锁不平衡程度:
D = P(AB) - P(A)P(B)
其中,P(AB)是等位基因A和B同时出现的观测频率,P(A)和P(B)是它们各自的频率。如果完全独立,则D=0。
更常用的是其标准化形式 r²:
r² = D² / (P(A)Q(A)P(B)Q(B))
其中Q(A) = 1 - P(A)。r²值越高,表明两个位点的关联性越强。
由于重组热点等因素的存在,基因组中的连锁不平衡模式并不均匀。这导致了单倍型块的形成——即倾向于一起遗传的基因组区域。单倍型块是经验观察的结果,通过研究人群中等位基因的共现模式来定义和分类。共享片段的长短与亲缘关系远近有关:直系亲属(如父母与孩子)共享的片段很长,而远亲或人群随机样本中共享的片段则很短。
需要注意的是,一个与疾病关联的SNP可能并非致病变异本身,而只是与致病变异紧密连锁。这类SNP被称为代理SNP。
从微阵列到测序:数据处理的挑战
现在,我们将离开由微阵列定义的、清晰整洁的SNP世界,进入原始、复杂的测序数据世界。测序数据不做任何预先假设,但分析起来也困难得多。
处理测序数据的标准流程涉及多个步骤,例如基因组分析工具包(GATK)提供的流程。首先将测序读段映射到参考基因组,然后重新校准碱基质量分数,压缩数据,接着对多个个体的数据进行联合变异检测,最后进行评估和优化。
测序数据分析面临诸多挑战:
- 插入缺失校正:个体中的缺失可能导致读段末端比对错误,从而产生虚假的SNP呼叫。通过检查同聚物区域和调整比对,可以纠正这些问题。
- 质量分数重新校准:测序仪提供的原始碱基质量分数可能过于乐观。GATK等工具会根据实际错误率、读段位置和双核苷酸上下文等因素对质量分数进行重新校准,这对于准确评估变异真实性至关重要。
- 数据压缩:对于全外显子组或全基因组测序,可以通过只保留变异区域周围的读段来大幅压缩BAM文件,提高下游处理效率。
基于似然的基因型判定与群体频率估计
在获得高质量数据后,核心问题是如何从测序读段中判定个体的基因型。我们将使用基于似然的方法。
对于一个给定的基因组位置,我们观察到的读段集合为 D。我们假设基因型 G(例如,来自父母的两个等位基因组合)。在不知道每个读段来自哪条亲本染色体的情况下,给定基因型时观察到读段数据的似然为:
P(D | G) = Π_j [ (1/2)*P(d_j | base_mom) + (1/2)*P(d_j | base_dad) ]
其中,乘积遍历所有读段j。P(d_j | base) 表示在假设某条染色体上碱基为 base 的情况下,观察到读段 d_j 的概率。如果读段碱基与假设碱基匹配,则该概率为 1 - ε(ε是测序错误率);如果不匹配,则为 ε。
利用贝叶斯定理,我们可以计算给定读段数据后基因型的后验概率:
P(G | D) = [P(D | G) * P(G)] / P(D)
其中 P(G) 是基因型的先验概率。
对于一个群体(如所有病例),我们希望估计在某个位点上各种基因型的频率。这可以通过期望最大化算法迭代完成。我们假设基因型可以用0、1、2表示(即参考等位基因的拷贝数),并估计群体中每种基因型的概率。
一个重要的群体遗传学概念是哈迪-温伯格平衡。它假设在一个随机交配的大群体中,若无选择、突变、迁移等因素,基因型频率将保持稳定。对于二倍体生物,如果参考等位基因频率为 ψ,则纯合参考基因型(AA)的频率应为 ψ²,杂合子(Aa)为 2ψ(1-ψ),纯合变异(aa)为 (1-ψ)²。
我们可以通过似然比检验来检查一个群体是否处于哈迪-温伯格平衡。这对于选择正确的关联检验统计量很重要:
- 如果群体处于平衡,那么基因型频率可以由等位基因频率推导,因此检验等位基因频率差异(1个额外自由度)可能更有效。
- 如果不在平衡中,则需要直接检验基因型频率的差异(2个额外自由度)。
单倍型定相与结构变异
在分析变异时,了解突变位于哪条亲本染色体上非常重要,这被称为单倍型定相。例如,如果两个有害突变位于同一条染色体上,另一条染色体正常,个体可能表型正常(隐性模型下)。但如果两个突变分别位于两条同源染色体上,导致两个功能拷贝都失活,则患病风险大大增加。
定相的方法主要有两种:
- 基于已知单倍型:利用已有的人群单倍型数据库(如HapMap),将个体的变异模式与已知单倍型进行匹配。
- 基于长读长测序:使用PacBio等能产生数万碱基长读长的测序技术,可以直接跨越多个变异位点,从而确定它们是否位于同一条DNA分子上。
除了SNP,结构变异(如大片段插入、缺失、倒位)也是遗传变异的重要组成部分。一种检测结构变异的方法是进行局部组装:在可能发生变异的区域,将读段进行局部从头组装,生成可能的单倍型序列,然后与参考基因组比较,计算似然值。这种方法可以识别那些因存在缺失/插入而导致末端比对错误、从而被误判为SNP的情况。
处理完所有数据后,最终输出通常是VCF文件。它记录了每个变异位点的染色体位置、参考等位基因、替代等位基因以及每个样本的基因型等信息。竖线“|”分隔的基因型表示已定相。分析流程的最后一步是变异注释,例如判断一个变异是否位于剪接位点或蛋白质编码区内,以评估其潜在功能重要性。
案例研究:整合功能基因组学数据
现在,让我们看一个如何将遗传关联分析与功能基因组学数据整合的精彩案例。这项研究关注一种胰腺疾病。
在基因组某个区域,研究人员发现了一个增强子(由组蛋白标记H3K4me1和胰腺转录因子FOXA2、PDX1的结合所指示)。在这个增强子内部,他们发现了五个特定的SNP变异,并且在人群中还观察到一个约7.6 kb的缺失变异。
遗传学分析显示,携带这些变异与疾病发生率高度相关。为了验证其功能,研究人员在细胞实验中突变了这些SNP位点,发现增强子活性显著下降。进一步的染色质构象捕获实验证实,该增强子与目标基因的启动子存在相互作用。他们还阐清了受突变影响的转录因子结合基序。
这个案例展示了如何从遗传关联出发,通过功能基因组学数据定位到关键的调控元件变异,并最终通过实验验证其分子机制,实现了从“关联”到“因果”的深入探索。
总结与思考
本节课中我们一起学习了人类遗传学中关联研究的基本方法。我们从基于微阵列的SNP发现和病例-对照分析开始,学习了卡方检验和费希尔精确检验。然后,我们深入探讨了处理全基因组测序数据的复杂流程,包括质量校准、基于似然的基因型判定和群体频率估计。我们还了解了连锁不平衡、单倍型定相等关键概念。
最后,我们通过一个案例看到,整合组蛋白修饰等功能基因组学数据,能极大地帮助优先排序和解读非编码区的遗传变异。
需要始终牢记的是,关联分析揭示的是相关性,而非必然的因果关系。在阐述研究发现时,清晰说明这一点是科学严谨性的体现。
关于个人基因组测序的预测能力,科学界存在讨论。一项基于同卵双胞胎数据的研究指出,对于许多复杂疾病,即使已知一个人的全部基因序列,其预测患病风险的准确度可能有限。这提醒我们,在解读遗传风险时需要保持谨慎,环境因素和基因-环境互作同样重要。


至此,我们完成了第20讲的正课内容。希望你们有所收获。
021:从部件到模块再到治疗系统 🧬

以下内容基于知识共享许可协议提供。您的支持将帮助麻省理工学院开放式课件继续免费提供高质量的教育资源。如需捐款或查看来自数百门麻省理工学院课程的更多材料,请访问 OCW.MIT.EDU。

欢迎回到计算与系统生物学课程。今天我们很荣幸邀请到 Brian Weiss 教授。正如我在周二提到的,他将为我们讲解合成生物学。Ron 教授来自生物工程系和电气工程与计算机科学系,同时也是合成生物学中心的创始成员之一。
感谢邀请我来到这里。David 教授在我刚来麻省理工读研究生时曾是我的导师。那时我从事数字视频和信息检索的研究,而他们开始涉足生物学领域。那是在90年代初,我觉得这很酷,但也很混乱。我当时想,如何用这些分子进行工程化设计呢?答案是,它确实可行。从一个怀疑者到最终决定投身于此,大约在1996年左右,我决定转向这个领域。
当时,我正在研究如何利用我们对生物学的理解来理解如何编程计算机,特别是在拥有大量计算元件的情况下,比如智能尘埃或非晶态计算。我认为生物学可以作为一个巨大的灵感来源,因为它拥有数百万甚至数十亿个计算能力不强但能进行局部交互并执行稳健操作的小元件。我进行了一系列模拟,例如胚胎发生过程,试图理解生物学中的现象,并思考是否能用它来编程计算机或微型计算机。
有一天,我决定翻转这个思路。与其试图用生物学来理解如何编程计算机,不如用我所知的计算机知识来尝试编程生物学。这个领域现在基本上被称为合成生物学。我从事这个领域大约有18年了,过程充满乐趣,也并非易事,但我想我们至少开始取得了一些进展。我将尝试介绍我们在这方面的一些努力,并鼓励大家随时提问。
当我看到生物学系统时,作为一名工程师,我感到兴奋。我在想,如果能像编程计算机一样编程这样的系统,那该有多酷。这种直接的基因工程概念,即创造新的DNA,自70年代以来就已存在。这使我们能够创造控制细胞行为的各种机制,例如转录调控、翻译调控、遗传编码传感器、细胞间通讯机制、合成各种有趣的分子(如生物燃料、药物)以及控制物理特性。
但如果你问我合成生物学有何不同,我会说它强调的是系统层面的工程。我们不仅仅是试图过度表达这个或那个基因,而是真正试图理解如何创建相互作用的系统。正如系统生物学强调不能仅通过了解某个特定基因的确切功能来理解细胞,而必须将其置于整个生物体的通路和背景下思考一样,当我们希望细胞执行有趣的任务时,也必须将系统视为一个整体。为了获得所需的复杂性,我们需要理解如何以可靠、可预测、高效的方式连接这些调控元件和其他元件,使细胞能像计算机一样可编程。这就是我对合成生物学的定义。
那么,我们如何从中发展出一门工程学科呢?关键在于,我们能否让本科生选修合成生物学101课程,使其成为一套定义明确、可靠的方法和实践体系。我们经常尝试从其他工程复杂系统的学科中汲取灵感,例如计算或机器人学,它们有自底向上组装的概念。你从基本设备开始,思考如何创建具有特定行为的模块,然后将这些模块集成以创建自主实体,如机器人,并进一步创建相互作用的机器人社区。这种方法在其他工程学科中运行良好,因此我们经常问,能否将这些机制引入生物学世界?我们能否采用基本的调控机制(可能是转录调控,也可能是其他模式),将它们连接起来创建可定制的通路,然后将其嵌入细胞,从而创建可编程的细菌群落或可编程的哺乳动物细胞组织?问题是,这是一种有用且高效的方法吗?例如,这些方法有何异同?我们可以从中借鉴什么来推动生物学领域的发展?
在我开始研究合成生物学时,我的大部分精力都集中在适应和实施这些概念上。但随着时间推移,我们开始越来越多地理解和欣赏细胞,我们也对这些概念的不同之处非常感兴趣。是什么使工程化生物系统成为一个真正独特的新工程学科?在生物学领域,你会做哪些与计算机、机器人、建造桥梁、汽车等不同的事情?这已成为我实验室乃至整个社区越来越重要的焦点,尽管尚未普及。你经常会看到来自其他学科的人认为,我们可以像编程计算机一样编程生物学,但事实并非如此简单。
当我们处理编程细胞的任务时,通常将其划分为传感器、处理和驱动模块。例如,我们希望开发能够检测活细胞中 microRNA、信使RNA、蛋白质水平的传感器,然后将它们连接到我们嵌入细胞的合成调控电路中。重要的是,这些传感器不仅能提供荧光读数,还能连接到我们设想的调控网络。这样,这些调控网络就可以整合多条信息并做出驱动决策。例如,如何开启特定的效应蛋白,从而以可编程的方式影响该特定细胞甚至环境,这由特定传感器的水平以及其他机制(例如细胞自身处理的历史信息)决定。这代表了合成生物学中大多数工作的范式。
我们为什么要这样做?不是为了编程下一个版本的 iOS 或 iPhone,尽管最初讨论过这一点,也不仅仅是为了计算本身,而是为了特定的应用。例如,如果我们的逻辑门运行速度很慢,以小时甚至天为单位,那可能没问题,如果应用是组织工程。在合成生物学中,最初的焦点主要集中在微生物群落或个体上,例如用于合成高价值化合物、生物能源、环境应用等。但过去几年,人们对健康相关应用的兴趣日益增长。我的实验室主要关注健康相关应用,今天我将给出一些例子,包括癌症、糖尿病和组织设计。
为了实现这种可编程性,我们需要考虑规模。我们需要考虑需要多少 DNA 来完成某项任务。这在很大程度上决定了系统的复杂性,是定义我们工作的重要元素。我们能够可靠、快速、高效、可预测、高通量且低成本地工程化的 DNA 规模,决定了我们能做什么。我们通常从基因级别开始。我认为,过度表达单个基因或可诱导表达几个基因,这不算合成生物学。当我们在特定背景下嵌入原本不存在的相互作用,即构建电路时,合成生物学才变得有趣。大多数合成生物学工作都处于这个规模,大约在这个范围内,现在正试图超越这个范围,例如创建 20,000 到 50,000 个碱基的 DNA。问题是,一个研究生能否在实验室里设计一个需要 20,000 到 50,000 个碱基的东西?这是否合理?然后问题是,这能为你提供什么样的能力,你能用它做什么?除此之外,人们还探索了最小生命和全基因组重写的概念。目前,这被一些人归入合成生物学,这没问题。但目前我们还没有真正好的方法能够从头开始或以根本不同的方式工程化最小生命。大多数关于最小生命的工作是,取一个生物体,尝试找出要敲除什么,而不是说我要从头开始设计这个新的最小生物体,定义要放入哪些反应,并创建一堆以前从未存在过的新反应。未来我们能做到吗?希望可以,但目前还不行。
目前真正活跃的领域是这里。推动这一发展的动力之一是 DNA 合成的成本越来越低。我们在 DNA 合成成本方面遵循着某种摩尔定律。这是使能技术之一,虽然不是唯一的,但却是最重要的使能技术之一,即订购越来越长的 DNA 序列的成本越来越低。例如,将来你能够设计一个 20,000 到 50,000 个碱基的东西,直接在线订购,并且你的导师愿意为此付费。虽然目前还达不到 20,000 到 50,000 个碱基的水平,但这将会改变,最终会变得对所有人都可用。我认为这将从根本上改变我们在生物工程领域的工作方式,甚至改变整个生物学领域的几乎所有工作方式。即使你不关心工程化新的生物功能,只想理解生物系统,如果你的导师告诉你,设计一大堆电路,让你能够以任意方式调控事物,以了解控制自然系统的底层网络,我认为这也将从根本上改变你提出的问题类型。
我将讨论基本设计、可扩展性,以及我们最近正在做的一些事情。我们正在构建这个基础,并认为这个基础可以产生影响,改变我们处理那些目前没有最佳解决方案的问题的方式,例如癌症、芯片上的组织设计以及糖尿病等。

我们从部件开始。我们所做的一切几乎都始于定义工具箱中可用的基本部件。这些包括转录调控部件、翻译水平部件以及蛋白质-蛋白质相互作用水平部件。我们经常(但不总是)工程化细胞间相互作用,可以通过细胞间通讯实现。我们通常想知道细胞内部发生了什么,就像我们创建新软件、新计算机程序时,有调试输出来告诉我们程序在做什么一样。我们通常使用荧光蛋白或染料来实现这一点,它们告诉我们你的电路或细胞的行为如何。另一组部件是用于在细胞内创建传感器和驱动器的部件,用于检测特定生物标志物水平,或影响细胞行为。例如,一个常用的驱动器是杀死细胞。另一个可能是告诉干细胞分化为不同的细胞类型。还有一个可能是让细胞制造某种高价值化合物。目前,如果你在寻找部件,它们实际上直到大约两年前还存放在 Stata 中心。我不知道有多少人知道 iGEM。iGEM 始于麻省理工学院,总部曾设在 Stata 中心,那里有几个大冰柜,存放着合成生物学人员常用的 5000 到 10000 个部件。现在它们搬到了剑桥酿酒公司附近,不再直接隶属于麻省理工学院,拥有大约 15000 个可用部件。如果你想开始合成生物学研究,这是一个快速的方法。你可以联系 iGEM 总部,索要 1000 个部件。只要你是可信的,并且不是来自那些被列入黑名单的国家,他们通常会寄给你。这是一个好的开始。
这些部件是什么?这实际上要回溯到我的博士研究。这是我表征的一个部件:数字逻辑反相器。我假设这里每个人都熟悉逻辑门。这是一个单输入单输出设备,处理二进制值,基本上是对信号取反。输入为 0,输出为 1;输入为 1,输出为 0。在生物系统中实现这一点的一种方法是使用转录抑制。如果没有阻遏蛋白存在,输出蛋白水平就高;如果有阻遏蛋白存在,就会抑制输出蛋白的产生。理论上,这可以用作数字逻辑门。这看起来很简单,但在我读博士时,做这样的事情花了我大约三年时间。现在快多了,一天之内就可以做很多个。这是另一个我在博士期间使用的逻辑门。这不仅仅是一个阻遏蛋白,还是一个可以被小分子失活的阻遏蛋白。其工作原理是,这个阻遏蛋白像以前一样工作,但如果小分子进入,它会阻止阻遏蛋白与启动子结合。结果,即使阻遏蛋白存在,输出蛋白也能被激活。这被称为“非A非X或Y”或实现了蕴含逻辑函数。这不是常用的逻辑函数,在典型的计算机中没有实现蕴含逻辑函数的逻辑门,但这是我们在细胞中可以实现的、允许外部控制基因表达的有用逻辑函数。一旦你能做到这一点,作为用户,你基本上可以与细胞互动并修改细胞内部的情况。
逻辑门之后,我们能构建逻辑电路吗?我认为整个生物学的复杂性从这里开始显现。这是我们构建的第一个逻辑电路之一。问题是,在生物学中有这种逻辑门表示看起来不错,但这真的有意义吗?你能在细胞内部真正进行数字逻辑运算吗?你能利用嘈杂的生物组件实现可靠的计算吗?这并不明显。在某些情况下,我们现在可以声称能够构建相当可靠的数字逻辑。在这个特定案例中,我展示的是这个蕴含逻辑函数,它允许我们通过小分子诱导一系列逻辑非门或转录阻遏蛋白的级联。这里的一个优点是,随着电路从蓝色变为黑色再到这里的黄色,随着级联变长,它实际上变得更加数字化,更像阶跃函数。现在,输入发生 2 到 4 倍变化时,输出有超过 1000 倍的变化。我们具有良好的噪声容限和信号恢复能力,这些都是创建更大、更可靠的数字电路所需的好特性。
数字计算的基础是,你能创建计算机的原因在于,你拥有能够进行信号恢复的逻辑门。输出是数字含义的更好表示。因此,当信号(可能是电压,也可能是蛋白质浓度)通过逻辑门传播时,它需要变得更“干净”,以便我们能够进行可靠的数字计算。人们在很久以前就弄清楚了如何在电子学中做到这一点,我们在合成生物学中大约在 10 到 15 年前弄清楚了,而大自然在数十亿年前就弄清楚了。例如,协同性。我假设你们已经了解了一些关于基因调控中的协同性。这是一种在系统中产生非线性响应的情况。生物学已经发现这是一种有用的机制,使得输入的信号实际上导致某种数字行为。你在这些调控元件中获得非线性信号处理。在信号转导级联的末端,输出要么高要么低,几乎没有中间状态,高低之间的转换非常快。从某种意义上说,这产生了数字或离散的输出。这对于许多情况至关重要,不仅在合成生物学中,在生物学中也是如此。一个例子是干细胞分化。你希望细胞能够做出离散的决定,例如,是成为肾细胞、肝细胞还是肌肉细胞。因此,细胞或大自然已经提出了保证这一点的机制。我们现在也学会了如何以合成的方式做到这一点。

需要注意的是,当我们工程化这些系统时,我们不仅仅考虑数字行为。我们可能花费同等的时间思考如何实现具有瞬态特性或更类似模拟行为的系统。这对于编程细胞执行我们想要的任何任务绝对至关重要。这是一个我们工程化细胞间通讯的例子,其中发送细胞产生小的可扩散分子,然后传递给接收细胞。现在,接收细胞不仅有一个开启响应,而是有一个脉冲响应。我们工程化它们使其具有脉冲响应,即绿色荧光蛋白先上升后下降。为了实现这一点,我们工程化了一个前馈基序,其中小分子与这个激活子结合,同时激活绿色荧光蛋白和一个阻遏蛋白,然后阻遏蛋白抑制绿色荧光蛋白。这样,绿色荧光蛋白先上升,最终阻遏蛋白积累到足够水平来抑制绿色荧光蛋白。这又是一个看起来简单的基序。在 2004 年左右,实现这个大约花了三年时间。如果你研究一个具有这种基序的自然系统,你会说,哦,没问题,我们有这个前馈基序,显然你可以做这种信息处理功能。但如果你尝试在实验室中在新的生物体中构建它,你会发现这并不简单。现在比 10 年前容易多了,但你仍然需要注意很多细节,比如速率常数、阈值匹配等,才能真正使其工作。

最终,经过尝试,这是我们的第一次尝试,就是这条蓝线。输入进来,什么都没发生。我想说,这基本上代表了直到今天的合成生物学:你构建了某个东西,认为它会工作,但它没有。然后,过一会儿你停止哭泣,但必须思考如何修复它。因此,迭代设计、调试周期绝对至关重要。你通常做的是创建计算模型,告诉你系统中不同的速率常数如何影响电路的行为。例如,你可以进行敏感性分析,了解哪些速率常数对系统性能影响最大。我们在这里做了一些敏感性分析,了解到例如这个阻遏蛋白的降解速率或其与各自启动子上结合位点的亲和力,是对系统性能影响最大的速率常数之一。
有人可能会问,我们能否预测这些速率常数?我希望可以,因为那会让事情容易得多。我们正在努力做得更好。一种挑战是,有人给你一个 DNA 序列,你必须预测其速率常数。我会称这个人为对手,而不是朋友。目前这太难了。一个更简单的任务是,给你的对手或朋友有限的选择,并说在冰柜里,我有这些由特定启动子、特定核糖体结合位点、带有特定降解标签的特定蛋白质组成的 DNA 序列。你只允许他们使用这些元素来设计电路。然后他们回来找你,让你预测电路会做什么。这仍然不完美,但我想这就是我们提出挑战的方式:坚持使用我们已知的东西,甚至提前表征这些东西。不幸的是,我这里没有,但人们可以得到一个大概的表征,比如输入输出行为大致如此。当我说“大致”时,误差可能在 5 到 10 倍左右。根据已发表的结果,目前大约是这个水平。5 到 10 倍的误差,取决于你的视角,可能很棒(因为这是生物学),也可能很糟糕(如果你是工程师)。如果你试图在培养皿中让绿色荧光蛋白开关,10 倍可能很棒。但如果你试图创建一个放入人体、用于杀死癌细胞但不伤害健康细胞的癌症分类电路,10 倍可能就不太好了。我肯定不会把这样的电路放进自己体内,尤其是当它控制着某种杀伤蛋白的产生时。我们最近(正在提交一篇论文)已经能够证明,如果你对这些调控元件(如这些阻遏蛋白设备)有非常好的表征,并且做了更多的表征工作,我们可以在哺乳动物细胞中平均在 20% 的误差范围内预测行为。作为一名工程师,对于许多应用来说,我对 10-20% 的误差感到满意。所以我认为我们在这方面做得更好了,但还不完美。
这种方法的一个方面是,我们不一定知道所有东西的速率常数。然而,我们确实知道阻遏蛋白-启动子对的非常详细的行为,包括稳态和动态行为。例如,我们不知道阻遏蛋白与启动子结合的亲和力或速率常数,不知道 RNA 聚合酶与该启动子结合的速率常数,也不知道确切的翻译或转录速率。但我们知道输入输出行为是什么。这实际上足以获得非常好的预测。我想说,这类预测是合成生物学最重要、最具挑战性的瓶颈之一。这些挑战包括:你能多快地构建 DNA?但如果你能预测 DNA 的作用,那该多好?这同样重要,甚至更重要。另一个挑战是:如果你能预测,你的冰柜里有多少部件可以组合在一起,并且它们被充分表征,可以实际构建电路?这可能是三个最重要的挑战。
回到我们所说的脉冲发生器,这是一盘细菌的延时摄影,其中发送细胞分泌小分子传递给接收细胞,接收细胞发光。这里要注意的一点是,它确实工作了。另一点是,它并不完美。这里的异质性程度相当惊人。如果我们看平均行为,它实际上是相当可预测的。但如果我们开始观察响应的分布,那是惊人的。我们量化了这一点,量化了荧光水平、峰值以及上升过程的分布。然后我们创建了随机模拟,与系统有合理的相关性,因此我们可以在群体水平上获得与我们所见大致对应的模拟。

现在,我想提出的一点是,当你思考工程化生物系统时,不要试图弄清楚如何工程化单个细胞可靠地做某事。你总是要考虑统计工程。你要考虑的是,我将创建一个电路,当我将这个电路放入一个细胞群体时,我将得到这样的行为分布。因为如果你试图依赖任何单个细胞给你你想要的确切行为,那将会失败。所以你必须真正考虑分布,而不是单个细胞。我认为这改变了一些事情。这通常不是我们思考编程的方式,也许微软思考编程的方式是这样的:如果 90% 的时间计算机不崩溃,那就很好。但这不是我们通常对软件的要求。
为了进一步从群体角度思考这个问题,我们编程了另一个东西:模式形成。现在我们希望创建发送者和接收者,其中发送者向接收者发送相同的信息,现在我们有一个更长的前馈基序。这个前馈基序有两个分支。这两个分支对最终输出有不同的影响。一个有两个阻遏蛋白,意味着输入进来,它激活一个荧光蛋白,另一个则抑制该荧光蛋白。这是一个非相干前馈基序。我们在这里使用它不是为了脉冲生成,而是为了定义一个浓度范围,该范围将开启最终输出。它将在低阈值时被激活,在高阈值时被抑制。因此,我们对输入有一个非单调响应:低、高、然后低。这就是我们设想的设计。想法是,如果你将接收细胞放在培养皿各处,将发送细胞放在中间,那么通讯信号会逐渐建立,形成一个化学梯度。每个细胞解读化学梯度,然后决定是否制造荧光蛋白。由于信号扩散和衰减形成的稳定化学梯度,你会得到某种带状图案。这至少是我们的希望。
为了给你一个时间尺度:我大约在飞机上花了三个小时制作幻灯片,花了大约三周时间创建计算模型,而构建实际的功能电路又花了大约三年时间。我们创建了这个计算模型,实际上使用计算模型来预测速率常数的变化如何影响带状检测区域,即对信号响应的区域,并利用这一点来工程化不同的响应。我们最终创建了三种不同的响应(输入 vs. 输出),并在其上放置了不同的荧光蛋白(红色和绿色)。这是实验设置,等待 16 小时后,我们得到了这个结果。我们让很多细菌形成了各种图案。我们对此非常高兴,在实验室里跳了一会儿舞。在那些罕见的事情实际奏效的时刻,这很有趣。然后我们说,再找点乐子。我们把发送细胞放在其他配置中,于是我们得到了可编程的细菌群落图案。
我不确定这本身是否有用,除了好玩。但我们现在正在将其用于一件事(如果时间允许,我稍后可能会讲到),就是将这类电路嵌入哺乳动物干细胞或人类诱导多能干细胞中,工程化这些细胞使其相互通讯、做出决策,然后这些决策导致分化模式。原则上,如果你能创建这些的三维版本,并用它们促使细胞做出分化决定,那么红色可能意味着制造神经元,绿色意味着制造肌肉,黄色意味着制造骨骼等等。原则上,你可能能够按设计创建组织。这是我们实验室目前正在积极研究的事情。我们还没有在培养皿中培育出功能完整的心脏,短期内也不会,但我们正在一步步前进。我们已经能够让细胞间通讯工作,已经能够让程序化的干细胞分化工作。希望我能给你们展示一些我们最近的图像,我们利用人类诱导多能干细胞创建了这些胚胎肝芽,其中包含许多有趣的、已知存在于胚胎肝脏中的所有细胞类型。所以,这方面有一些进展。我们预计不会很快替换你的肝脏,所以先别急着毁掉它。
但一个近期的具体应用可能是:想象一下,取你自己的成纤维细胞,将其去分化为人类诱导多能干细胞,然后将它们分化为类似肝脏的环境,放入培养皿,然后测试药物对你的微型肝脏的影响。也许在类似于人体组织的系统上测试药物是个好主意,而不是在某些可能与药物对人体细胞的实际作用相关性不强的随机小鼠身上测试。如果我们甚至以患者特异性的方式进行,我认为这将真正改变药物开发的方式。我认为这在未来几年内可能成为现实,在实验室环境中,未来一到三年内开始这样做。我认为这是近期且现实的。
我们注意到的一件事是,当我们工程化这些小系统时,直觉相当有效。我可以看着这个电路设计说,如果我修改这里,会发生什么;如果我修改那里,会发生什么。你可以使用直觉,而且效果相当好。在合成生物学的前 8 到 10 年,几乎每篇论文都有一个计算设计,但大多数情况是,我们构建了某个东西,为了发表,我们附加了一个与实验结果高度相关的计算模型。我们和其他人一样有这种“罪过”。拥有计算模型对于在实验室成功创建某些东西并不是至关重要的。但我认为这种情况正在改变。
我们现在有一些设计的例子(我不确定今天是否会讲到,但我们已经发表了相关论文),其中涉及大约 20 到 25 个组件,与我们试图工程化的一个糖尿病系统相关。对于这样的系统,我们可能有一些直觉,但直觉不再那么有效了。计算分析可能会突然提供仅通过在黑板上画图难以获得的洞察。因此,我认为计算设计工具正变得绝对必要,它们可以提供仅凭直觉无法获得的系统行为洞察。
计算设计的另一个方面是,想象一下能够指定某种行为,然后计算设计工具告诉你应该构建和测试的 1000 种不同版本的电路。对于人类来说,轻松生成 1000 种不同版本的电路来构建和测试仍然很困难。但构建它们正变得容易(也许“容易”这个词有点强,但“可行”)。我举一个最近的例子:在我的实验室里,一位研究生提出了一个框架,他能在三小时内生成 200 个版本的电路,而且它们基本上都正确。所以,我认为这真正改变了你在合成生物学中的工作方式。因此,将其与告诉你应该构建哪些电路的计算设计工具连接起来将非常有用。
具体来说,认识到这一点,我们与 BBN 的一些人以及我以前的博士生同事 Jake Beal(现在在波士顿大学的 Doug Densmore)合作。这里的想法是,我们希望合成生物学看起来像这样:如果你想编程生物学,你真的需要关心 lambda 阻遏蛋白的核糖体结合位点是什么吗?希望不需要。就像你在 Matlab 中编程模拟时,你不会考虑英特尔奔腾芯片中的移位寄存器如何工作来模拟这个 ODE 一样。那不是你编程的层次。你应该在高层思考,然后有编译器和大量基础设施处理中间的一切。也许在未来 5 到 10 年,研究生们回顾现在的合成生物学研究生时,会非常同情他们:天哪,你们居然需要知道电路中使用的元件并手动构建它们。所以,这里的想法是,我们从高层描述开始。顺便说一下,现在有一个网站,你可以免费注册,输入一个高层程序,它会自动创建一个低层基因电路表示,并给你这个的 Matlab 模拟文件。在我现在教本科生的一门课程中,许多学生在课程开始前甚至没拿过移液器,我们教他们的第一件事就是这个工具。在告诉他们 lac 阻遏蛋白通过 DNA 成环工作之前,我们说,有这些叫做阻遏蛋白的东西,当它们越多时,输出越少。现在让我们用这个来设计。我认为这对整个生物学来说是异端邪说。我不知道这是否是我们第一次尝试这样做,但我想效果还不错。同时,我们也教他们足够的底层生物学和机制知识。但如果他们只知道有转录阻遏蛋白这种东西,然后生物编译器会处理所有需要发生的事情,他们能做什么呢?实际上,他们做了很多设计。从下周开始,我们将进行测试。我们会发现这是否是教授生物工程的有用方式。但我认为是,因为他们似乎理解了设计意味着什么。我们把设计作为首要对象来关注。
你写看起来像这样的代码。有人写过这样的代码吗?这是 Lisp 语言。通常只有一两个人,但我希望这里更多。对于不熟悉 Lisp 编程的人,这是一个简单的程序:如果输入高,产生绿色荧光蛋白,否则产生黄色荧光蛋白。然后,生物编译器自动将其首先转换为数据流图,然后创建抽象基因电路,接着查看你冰柜里有什么,并说,这是实现这个功能所需的实际 DNA 序列。然后它创建机器人指令来组装这个,这样你就不必碰移液器来构建它了。我们有一个液体处理机器人来完成大部分组装工作。现在这个流程还没有完全端到端实现。如果你现在来我的实验室,我可以说它有效,但可能有点夸大。它大部分有效。但现在有一些公司,可以从这个层次(不是这个层次,而是这个层次)开始,并且大部分是自动化的。唯一没有自动化的可能是,一个技术员(不一定在欧洲)从一台机器人上拿一个板子放到另一台机器人上。除此之外,DNA 组装基本上是自动化的。这些公司可能比我们更有钱。但最终,DNA 组装将以这种方式进行。我们现在正与一些人合作,在微流控芯片上做这件事。这台机器人的问题是它要 15 万美元,我们还不能把它放在每个人的实验台上。但我们正在与林肯实验室合作,开发成本约 3000 美元的微流控设备来做这件事。我们已经证明,用微流控设备可以组装大型电路。所以,这并不遥远,将来每个人都会有微流控设备,在这里编程,然后得到组装的 DNA。然后他们会发现它不工作,但至少能更快地发现不工作,这是好事。
让我们看看这个生物编译器是如何工作的,以了解它并非魔法。这个程序说:如果没有 IPTG,则产生绿色荧光蛋白。IPTG 是我们有传感器的小分子。信息被路由到一个反相器,然后激活绿色荧光蛋白。你可以像这样指定一个程序,并自动转换为数据流图。然后数据流可以自动转换为基因电路的部分。IPTG 传感器就是这个基序:一个响应 IPTG 的阻遏蛋白,它基本上使阻遏蛋白失活。所以 IPTG 越多,输出越多。这就是 IPTG 传感器框。这就是你实现非门的方式。我展示过非门如何工作:阻遏蛋白抑制输出(绿色荧光蛋白)。你只需要一个激活子来激活绿色荧光蛋白。每个数据流框都可以自动转换为一个小基序。然后我们缺少的是“胶水”,也就是这些转录激活子和阻遏蛋白。一旦你把它们放进去,这就是一个电路。这是一种从高层描述自动生成电路的方法。它可以处理相当大、相当复杂的电路和逻辑,虽然还不能处理所有事情,但可以处理一组有趣的事情。
这还没有完全完成,因为我还没有告诉你 A 是什么,B 是什么。所以还有很多事情要么我们已经发表,要么还需要设计。但例如,有一个叫做“媒人”的工具,它会决定什么是好的蛋白质 A,什么是好的蛋白质 B。这些东西已经存在。
有人能看出为什么这不完美吗?我们有一个输入,它抑制一个阻遏蛋白。这意味着输入越多,这里的蛋白质越多,它抑制 B,而 B 激活 GFP。编译器自动输出这个。但你可能不想马上构建这个。有什么想法吗?基本上,A 可以……所以这是第一个版本,但 A 抑制 B,B 激活 GFP。为什么不直接将 A 连接到调控 GFP 呢?所以这似乎是一个非最优的解决方案。编译器也能解决这个问题。你可以进行复制传播。这些实际上是普通编译器、普通软件编译器中的机制。它们进行复制传播意味着,如果它看到 A 调控 B(A 抑制 B)并且 B 激活这个,它可以直接让 A 调控这个。然后编译器意识到 B 什么都不做,就把它去掉,然后启动子也不做,也去掉。现在编译器就搞定了。这只是使用基本的编译器技术。所以它能够做到。在你的生活中,4 和 30 之间的差异可能不大。但在你的生活中,15 和 5 之间的差异,可能就是获得博士学位与辍学创业成为亿万富翁之间的差异。所以编译器可以做到这一点,这确实有影响,而且它可能提出你无法轻易想到、甚至在一定时间内根本无法想到的优化方案。
编译器可以处理组合逻辑和状态,还有一些方面可以处理空间逻辑。这个工具现在可以在线使用。
在实验室里拥有生物编译器很好,但如果你在实验室里什么都做不了,如果生物学或合成生物学界没人相信你,那也没用。所以我们需要能够构建大型的东西。这里有一个我们可用的启动子和基因库。你可以决定,我想构建一个包含这些启动子-基因对的新电路。在五天内,你可以在实验室里创建那个电路。我们已经证明了可以构建 61-64 KB 的东西,在五天内高效构建。我们教的本科生,这些在学期初几乎不知道移液器是什么的人,现在也能高效构建大型电路。所以这已经成为一项易于使用的技术。
然后我提到过,你可以一次构建一个。但这个最近的发展是,你可以一次构建 200 个版本。你可以构建它们,然后放入哺乳动物细胞。这些东西有效。我们有很多很多调控部件。所以,我们构建了很多部件,可以构建模块,然后把模块组合在一起。但猜猜怎么着?这是生物学。这些模块可能会以不希望的方式相互影响,比如负载效应。所以当你有一个工作得很好的模块时,也许我会展示一张幻灯片,说明我们如何解决它。这是一张幻灯片。这是一个电路。有人知道这个电路可能做什么吗?这是一个调控电路,一个激活子激活自身,一个阻遏蛋白抑制这个激活子。你们见过这个基序吗?有些人低声说出来了。这是一个弛豫振荡器。当你单独做它时,它工作得很好。这些是模拟结果。但如果你连接它……在细胞中有一个振荡器很好,如果你想要闪烁的细菌或哺乳动物细胞,这很有趣。但你通常想把它连接到某个东西上。所以你花了三年时间构建一个振荡器,让它工作了。现在你的导师说,好吧,我们先发一篇论文。但在发论文之前,我想让你把它连接到有意义的东西上,因为我们想投高影响力的期刊。然后你把它连接到某个东西上,发现它不再工作了。我想你会对你的导师非常生气。你的导师可能不是想对你刻薄,但无论如何,这是生物学或合成生物学中的一个真正问题:这些东西会相互影响,首先可能是不希望的,但由于底物的独特方面……它们并不像你想象的那么独特,因为负载问题在电子电路中也存在。在电子电路中,这些问题几十年前就用负载驱动器的概念解决了。所以,如果你有一个模块具有高扇出(控制许多东西),那么猜猜怎么着,那些你认为只是被控制的下游模块,实际上也会对上游产生影响。所以你在电子学中做的就是构建一个负载驱动器,基本上就解决了问题。这样就没有寄生效应了。我们已经证明我们也可以构建负载驱动器。这是“可追溯性”的概念,是与这里的 Domitilla Del Vecchio 合作的工作。我们已经证明我们可以解决这个问题。即使在简单的电路中,这也是一个实际问题。它使用了时间尺度分离这个很酷的概念来解决。我们可以把这些从黑色变成红色的高效东西,放一个负载驱动器进去,就修复了。这应该有望导致更可预测的电路构建,这是从简单的玩具模块扩展到大规模系统的真正挑战之一。

一个应用实例。除了开关 GFP,我们能用合成生物学做什么没有合成生物学就做不到的事情?癌症治疗中最重要(也许是最重要)的挑战之一是特异性。还有其他重要的挑战,比如治疗剂的递送。但随着特异性的提高,它实际上可以改变你递送治疗剂的方式。如果你有一种更特异、没有副作用的治疗剂,你可以递送更多。所以这些是高度相关的。想象一种治疗剂,它能识别细胞表面的某些东西,然后说,这是肿瘤细胞,杀死它。实际上,有很多正在进行的工作采用这种方法,无论是小分子、含有各种结合细胞表面受体的分子的囊泡,还是目前非常热门的工程化杀伤性 T 细胞。这个概念是,你可以通过在这些杀伤性 T 细胞上放置各种受体来工程化你的免疫系统,然后它们去结合肿瘤细胞,通过识别细胞表面的某些东西,然后杀死它们。听起来很棒,取决于你的视角,也可能不棒。这些方法有时确实能很好地消除肿瘤,但副作用可能非常可怕。那些存在于肿瘤细胞上的细胞表面标记物,猜猜怎么着,它们也存在于健康细胞上。所以这些工程化杀伤性 T 细胞方法的副作用在某些患者身上非常严重。这不应该令人惊讶:一个标记物通常不足以区分癌细胞和健康细胞。这似乎很明显。所以,实际上,他们现在对这些工程化杀伤性 T 细胞所做的,不仅仅是说必须有这个细胞表面受体,而且不能有那个。所以就像是:生物标志物 1 必须有,并且不能有生物标志物 2。他们开始在这些东西中设计更多逻辑、更多多输入逻辑。他们还没有进行临床试验,但我几周前看到他们在培养皿中取得了进展。我们几年前就认识到这是一个问题,这是与 Kobi Benenson 合作的工作。实际上,你需要的所有信息都在细胞内部,以做出关于该细胞是否是癌细胞的精确决策。想法是,治疗剂进入细胞,通过整合多条传感器信息进行计算,然后决定是否表达杀伤蛋白。现在,即使这不是癌症的治愈方法(不能保证),仅仅是能够创建多输入电路、进入细胞、在活细胞中实时分析各种分子正在发生什么的概念,我认为在你能想象的几乎任何生物学领域都有应用。例如,我们正在研究的一件事是芯片上的器官或可编程器官。我们现在正在研究的一件事是将这些类型的传感电路放入芯片器官内的细胞中。想法是将细胞暴露于这些候选药物,然后细胞发出不同颜色的光,告诉你它们如何反应。例如,某种绿色可能意味着正常;绿色带红色和黄色可能表明某些凋亡通路被表达,或者这种药物影响了这个增殖通路或那个通路。这些机制可以实时、在单细胞水平、甚至空间上告诉你候选药物的影响。所以,我认为如果现在可用,这就会产生影响,但现实地说,在未来一到三年内制作原型。


我们以 HeLa 癌细胞为例开始。我们做了一些生物信息学分析,发现基于可用的 microRNA 谱,这是一个可以区分 HeLa 细胞与其他所有细胞类型的生物特征。有些人熟悉这种逻辑注释方式,可能觉得它很丑,但如果你不习惯,它很简单。这只是说这些 microRNA 必须低,这些 microRNA 必须高,那就是 HeLa 癌细胞。这是基本的逻辑。我们认为每种细胞类型都会有一个逻辑陈述,对该细胞类型为真,对其他细胞为假。这几乎是定义上的。当开始讨论异质性群体时,这就变得有趣了。例如,肿瘤中存在异质性。你可以做的一件很酷的事情是:这是一个六输入与门。如果你有异质性,你可以做一个六输入与门加上或操作。你可以识别肿瘤的这个亚群具有这个 microRNA 谱,那个亚群具有不同的 microRNA 谱。你只需要创建一个新的逻辑电路,像鸡尾酒药物一样将它们组合成一个或门。这是一个非常通用的方法,我认为应该与任何类型的群体都相关。你还可以设置阈值,做各种有趣的事情。所以,我认为问题真的是:那个 microRNA 表达谱是否足够小,可以编码在一个你能递送到细胞中的电路上?你能可靠地做到吗?这确实是挑战。想法是,治疗剂进入细胞,进行计算,然后决定是否制造杀伤蛋白。那么这实际上是如何工作的呢?我们如何实现一个带有反相输入的与门?这是电路的一部分。对于 microRNA,这实际上很容易。你只需在感兴趣的基因或输出蛋白基因上放置 microRNA 靶位点。想法是,只有当这些 microRNA 都低时,这个输出蛋白才能表达。原则上,这很容易做到。这就是我们实现带有反相输入的三输入与门的方法。现在我们可以向其中添加逻辑。如果我们还想确保当这个输入也高时输出高,我们该怎么做?记住我展示的第一个电路是那个级联电路,那是一系列阻遏蛋白,是进行非非操作的级联。当你想到非非操作时,它似乎不是一个非常有用的操作。但在这里,非非操作实际上是有用的。它可以将一个 microRNA 传感器转换为可以与其他传感器集成以创建四输入逻辑函数的东西。所以这个 microRNA 必须高,才能抑制这个阻遏蛋白,然后这个阻遏蛋白抑制最终输出。因此,只有当这个高且这三个低时,最终输出才能高。你可以继续添加另一个。这个稍微复杂一点,因为现在这些 microRNA 的总和必须高,才能让这个分支允许这里的表达。所以它稍微复杂一点,因为它像一个加法操作。我们发现这实际上是相关的操作。因此,只有当这个 microRNA 高、这两个的组合高、而这些低时,输出才高。这里你可能会看到一个潜在的问题:潜在的串扰。这里每个人都理解这个电路吗?也许举手示意如果你真的理解这个电路。好吧,没多少人。也许我应该再解释一下。如果你理解这个,请举手。好的,microRNA 会导致 RNA 降解。所以所有这些都必须低,这个才能高。现在,如果我们加上这个,让我们只关注这个以简化。这个 microRNA 抑制这个阻遏蛋白,这个阻遏蛋白抑制这个。所以如果这个 microRNA 低,那么这个阻遏蛋白就高。结果,这个阻遏蛋白抑制这个启动子,不管其他情况如何。所以如果这个低,这个阻遏蛋白高,那么这个输出就不可能高。现在,如果这个 microRNA 高,那么这个变低,允许这个可能变高,但不保证。现在,如果你理解了这个,请举手。好的,更多了。很好,有进步。顺便说一下,这不是
022:因果关系、自然计算与基因组工程 🧬

以下内容基于知识共享许可协议提供。您的支持将帮助麻省理工学院开放式课件继续免费提供高质量教育资源。如需捐款或查看来自数百门MIT课程的其他材料,请访问 MIT OpenCourseware。
在本节课中,我们将探讨如何通过基因组工程来验证生物学中的因果关系。我们已经学习了多种分析基因组的工具,但分析之后的关键步骤是检验我们的假设。通过高通量的方法测试假设,即使在小规模甚至单一样本队列中,也能有效减少假阳性的担忧。因此,了解验证因果关系的可能性至关重要,这将我们引向基因组工程,特别是计算机辅助的基因组设计。我们之前讨论了计算机分析,现在让我们来看看计算机辅助的基因组设计,包括细菌和人类基因组。
为何设计基因组?🔍
你可能会问,我们为什么要设计基因组?通常,通过改变一个碱基对就可以检验因果关系,那么为什么需要改变多个碱基对呢?单个SNP固然很好,但有时多个SNP会以多基因方式相互作用,这在人类中尤为常见。这里有一个极端的例子,你可能需要改变基因组中几乎每一个碱基对,不是为了复制一个基因组,而是以智能、半智能或组合的方式设计一个具有新功能、新特性的基因组。
我提出四个功能供大家思考:
- 遗传与代谢隔离:出于安全或公共关系原因,你可能希望生物体在遗传和代谢上被隔离。
- 新化学:引入新的蛋白质化学和新的氨基酸。
- 多病毒抗性:这可能是四个功能中最强大的。想象一下,无论是工业农业还是人类,拥有一个能抵抗所有过去和现在、甚至尚未分析的病毒的生物体。
如何实现新功能?⚙️
我们如何实现新功能?如何设计一个不会崩溃的基因组?因为如果你改变基因组太多,你就会得到教训,你会发现你知道的并没有想象中那么多。你拥有来自分析的漂亮计算机模拟,但一旦开始测试,就会遇到意外。
因此,我将重点介绍设计、构建和测试这一过程。这种设计必须包含分析组件,所以我们会回到你熟悉的分析工具。
集成设计与分析系统 🛠️
以下是集成到我们称为“Millstone”系统中的计算工具列表。这个系统是关于设计和分析的循环:我们设计、构建、测试、分析,然后再回到设计。有时,当你构建时,你会构建一个大型的组合集合。这是生物工程中相当独特的一点,你可以在生物学中构建数万亿种不同的变体,看看哪一种效果最好。
我们能做到这一点的部分原因是,正如本课程中提到的下一代测序技术,我们也参与了下一代合成以及将合成DNA插入基因组的下一代技术。有四种不同的下一代合成方法,以及各种纠错方法,这些类似于电子和计算系统中的纠错,但我们不会过多强调这种类比。
实际构建与误差控制 📊
以下是一个实际例子,展示了在芯片上构建寡核苷酸时得到的结果。寡核苷酸长度可达300个核苷酸,随着长度增加,末端积累的错误会稍多一些。你可以看到,随着长度增加,错误数量从原始的1/1300错误率上升到1/250。然后,我们可以通过一种称为“ERASE”的酶系统纠正部分错误,在不进行测序的情况下,错误率可以降至约1/6000。如果愿意进行克隆和测序,错误率甚至可以更低。了解这种基本限制很重要,在计算和合成中,你始终需要考虑背景和错误。
组合合成与测序 🔬
现在,你可以通过构建顺式调控元件,将合成和测序紧密结合。在这篇已发表的论文中,我们基本上可以在基因组或质粒中合成顺式调控元件,然后通过RNA测序简单地读出RNA。你在RNA中看到这个条形码的次数,就告诉你这个特定构建体(可能经过大量工程改造,不像随机序列)的表达水平。我们可以构建数万甚至数百万个这样的构建体。
然后,你可以测量由此产生的蛋白质水平。你可以拥有启动子元件、核糖体结合位点和编码区突变,这些都可能影响RNA和蛋白质。我们通过使用两种荧光蛋白(红色和绿色)来测量蛋白质,红色作为对照,分布非常紧密;绿色则受顺式调控突变的影响,分布范围很大。通过荧光激活细胞分选仪,你可以将其分选并读出。因此,在这两个RNA和蛋白质图谱中,每个像素都是一个独立的实验。你可以深入挖掘,获取每个实验的更多信息。基本思想是,每个构建体都在芯片上单独合成,并随后单独测序以确定其序列。测序读取的条形码数量与RNA和蛋白质表达水平成比例。
研究中的意外发现 💡
以下是从此类研究中得出的一些意外发现的例子。我们进行这些研究并非毫无目的。例如,在进行这项研究之前,众所周知密码子使用效应与蛋白质表达相关,甚至可能因果影响蛋白质表达。观察结果是,如果你使用非常常用的密码子(这些密码子通常在细胞中具有高水平的相应tRNA),那么这些蛋白质的表达水平会更高。
新的发现是,在靠近顺式调控元件的基因起始端附近,情况发生了反转。与丰富密码子几乎没有相关性。实际上,这里存在一个负相关,R平方值为0.73,表明与稀有密码子有高度相关性。这项研究发表在《科学》杂志上。我们可以分离出各种因素,例如许多稀有密码子倾向于富含AU,但我们可以分离出这个成分。我们也可以分离出像核糖体结合位点这样的因素,它们是富含AG的。这里存在一个普遍趋势:如果稀有密码子位于基因起始端,它们有助于表达。你可以从这类实验中发现这一点。

设计根本不同的基因组 🧪
现在,如果我们想构建一个根本不同的基因组,比如在这里定义为在全基因组范围内释放和解放7到13个密码子。这意味着我们利用遗传密码中的同义密码子。每个氨基酸有1到6个密码子,终止密码子有3个密码子。我们可以利用这个同义替换表来重新排列,完全释放某些密码子。例如,消除每一个UAG实例,并将其变为UAA。这是第一个例子,我们在全基因组范围内做到了这一点。从而降低了风险,因为我们现在可以在其基础上进行构建,因为我们可以获得在各种条件下都能良好生长的基因组,它们仍然可以进行基因工程操作。

然后,我们想降低另一个特殊类别的风险。我之前提到,AGA和AGG是特殊的,因为它们是最稀有的编码密码子。UAG是终止密码子,而AGA和AGG是编码精氨酸的密码子,它们是最稀有的,并且情况复杂,因为它们往往代表富含AG的区域,这些区域参与翻译起始和蛋白质合成。无论如何,由于数量较大,我们无法在全基因组范围内进行,因此我们专注于必需基因。你可以通过计算找到所有必需基因,并设计策略来替换所有的AGG和AGA。
当你合成这些基因组时,你可以使用一种称为“MAGE”的过程一次一个地进行,我们不会深入讨论实验细节,但基本上你可以直接从寡核苷酸进入基因组,并且可以同时进行多个操作。你可以看到哪些难以构建,哪些容易构建。有些实际上被选择性地淘汰了,我们无法找到它们。这些就是发现。这些例子表明,同义并不总是同义的。这可能意味着存在一些隐藏在其他功能层之上的功能,同义密码子可能位于某个结合位点。我们发现,我们可以尝试其他密码子,比如当我们靶向精氨酸密码子时,有时甚至可以尝试非同义密码子。最终,我们找到了每一个。所以,最初有大约十几个难以处理,但最终我们找到了工程解决方案。
这说明了几个有趣的观点。所有这些在必需基因中都是成功的。根据我们的观察,如果能在必需基因中成功,那么在非必需基因中操作会更容易。然后我们继续前进。那是一次一个密码子,接着是两个密码子。到这时,我们已经降低了三个密码子的风险。然后我们继续降低所有13个密码子(64个中的13个)的风险。我们在更小的基因集中进行了操作,大肠杆菌有290个必需基因,我们操作了42个。在这种情况下,有400多个实例,除了一个之外,其他都成功了。就像精氨酸密码子一样,那一个我们尝试了许多不同的密码子,包括非同义密码子,最终成功了。在几乎所有情况下,你都能找到可行的方案。
然后我们进行了生物学测定,我们觉得应该改变的四个功能确实发生了改变。以下是关于病毒抗性的两张幻灯片。你可以用多种方法确定病毒抗性的有效性。在这里,对于噬菌体λ(已被突变成为高毒力版本),你看到了大约1000倍的抗性因子。T7是天然裂解性很强的噬菌体,你可以显示它对三种测试病毒中的两种具有抗性。我们的假设是,如果我们改变更多密码子(不仅仅是那一个,而是七个左右,这正是我们现在正在做的),那么它将对所有病毒都具有抗性,并且抗性非常强,强到病毒群体无法通过突变获得抗性。
你们所有人都应该质疑这一点:我真的相信吗?我们可以在讨论中谈谈这个问题。
遗传与代谢隔离 🛡️
另一个重要功能是,我们能否在遗传和代谢上隔离这些生物体?为了实现这一点,我们利用了新的遗传密码。我们不仅释放了一个密码子,我们现在还可以让那个密码子编码新的氨基酸,通过另一套生物化学方法。以下是一些看起来像酪氨酸或苯丙氨酸的氨基酸例子。这是一个联苯丙氨酸,它有两个苯环而不是一个,因此比任何天然存在的氨基酸都更庞大。我们想问,我们能否让这些我们一直在讨论的必需基因“上瘾”于这种氨基酸?我们通过这种计算蛋白质设计策略做到了。
基本思路是:我们查看了大肠杆菌中每个必需蛋白质的每一个晶体结构,大约有120个晶体结构。然后系统性地询问,是否存在任何位置,我们可以通过“雕刻”掉相邻的氨基酸来嵌入一个更大的氨基酸?这样,当我们不用更小的氨基酸替换那个更大的氨基酸时,它就不再适应。我们基本上系统性地检查了每个晶体结构中的每一个氨基酸,找到了大约半打看起来有希望的位置。思路是,你嵌入这些联苯基团,现在当你再把它缩小回去时,它就无法工作了。这就是基本思路。
在具体情境中,我们想为此进行一个非常严格的测试。我们不仅希望它“上瘾”于这种氨基酸,还希望它无法通过突变和进化逃脱,也不希望它通过“吃掉”同类(其他大肠杆菌)来逃脱。我们进行的测试是裂解细胞,裂解野生型大肠杆菌或某些能大量产生这些氨基酸的突变菌株的细胞。制造代谢隔离生物体的更经典方法是使用裂解物,但人们避免使用裂解物,因为它会带来坏消息:如果你在裂解物上培养它们,你会得到很多存活者。这些是经典方法,删除这两个基因会使它们仍然生长。但这是我们设计的非标准氨基酸菌株的例子,我们得到了更低的逃脱率。你会说,即使这个数字很低,我们也希望将其降至零。稍后你会看到我们如何做到这一点。
蛋白质设计实例 🧬
以下是这个设计的特写。这不是活性位点,可以是蛋白质中的任何位置,只要嵌入一个大氨基酸就会造成破坏。所以我们改变了这个亮氨酸。这个亮氨酸周围包裹着其他氨基酸。你们在这门课上学过蛋白质设计,对吧?好的,所以你们知道,我在谈论Rosetta。这就是我们在这里使用的。我们必须修改它以使用非标准氨基酸,因为通常人们用20种氨基酸设计蛋白质。所以我们把这个亮氨酸变成了联苯丙氨酸。你可以看到现在它有很多三维空间冲突,这不好。所以我们识别出这些冲突,并把它们改小。这一切都是在计算机上完成的,都是理论上的。你相信吗?我们来看看。然后,这是放回一个小氨基酸的情况。这些是参与这项工作的人,Mark和Dan是实验室的博士后,Barry做了晶体学。我接受过晶体学培训,但有点生疏了。这是设计图,这是电子密度图。现在你可以相信了,因为它不仅仅是计算机模型,而是基于数据的计算机模型。这是设计与X射线晶体结构的比较,还不错。
但问题是,这在活细胞中效果如何?这些是我们已经改变了整个基因组的细胞,现在终止密码子UAG是自由的,从未被使用。这意味着我们可以删除通常识别终止密码子的释放因子(否则是致死的),并用一个tRNA和一个tRNA合成酶来引入这种非标准氨基酸。这就是我们刚才在晶体结构中看到的那个,用粗体标出,它具有较高的逃脱频率。我们可以通过将其置于mutS缺失背景(基本上敲除一个错配修复蛋白)来提高突变率,从而加速进化。它有一个明显的逃脱频率。其他情况在mutS+背景下更现实,我们可以将逃脱频率降至10^-8。这些是同一蛋白质中的其他突变。这里是另一个蛋白质中的突变。
然后我们说,好吧,但这些都不完美。我们想要达到检测不到逃脱的水平。那么,我们如何解决这个问题?有人有建议吗?我在鼓励你们打断我,所以我在打断你们。你们有这些逃脱频率很低的东西。我们应该为此感到自豪,但我们想进一步降低,而不是10-8,我们想降到10-10左右,有什么建议吗?

这是一种回复突变。这意味着你可以突变密码子,使其不再编码联苯丙氨酸,而是编码其他东西。这样它就不再需要培养基中的联苯丙氨酸了。它放入另一个氨基酸,并以某种方式存活下来。所以,即使这不是一个完美的匹配,它也足够好,酶被制造出来了。

多个必需基因,说得太好了,我自己都说不出来。这正是我们做的。
所以这是一个概况。在我们选择我们想使用的两个或三个之前,我们想知道谱系是什么。所以我们故意用所有20种标准氨基酸替换联苯丙氨酸。我们说,让我们有意地、合成地突变它们,看看谱系是什么。现在,这不是自然的突变谱系,而是我们有意为之的。我们放入每一种氨基酸,然后在20次倍增后进行快速选择。这是非常快速的进化,不是30亿年。我的学生们不想等那么久。所以在20次倍增中,你会得到哪些氨基酸可以替代联苯丙氨酸的谱系。在理想情况下,没有一个可以。但我们强迫它们这样做,这些是存活者。所以我们一直在谈论的这些,色氨酸是替代联苯丙氨酸的氨基酸。这有道理,它是最大的氨基酸。这对酪氨酸-tRNA合成酶有效。
然后我们为这个80K(一种激酶)选择了另一个大红色箭头,在那里色氨酸的作用很小。但如果你强迫它接受这些疏水性脂肪族氨基酸如亮氨酸,你会得到一些逃脱者。所以我们制作了80K和TS的双突变体,它的逃脱率极低。我们可能还没做完,但我们会继续这样做。这就是你进行根本性重编码并获得新功能的方法。
人类基因组工程 🧑🔬
现在,我们继续讨论人类基因组工程。在座有多少人想编辑自己的基因组?好吧,我们稍后再问你们想改变什么。
这些是我和同事们研究过的一些工具。我职业生涯的大部分时间都在开发用于工程化基因组和测序基因组的新工具。到目前为止我讨论的是底部的RecA和Red Beta。而未来的明星是这个Cas9蛋白。我们在这里给它们上了色,以便区分。基因组编辑的关键在于大海捞针。你想改变一个碱基对,而不想改变其他任何东西。因此,必须有东西进行识别。这种识别可以是沃森-克里克配对。你可以通过DNA-DNA相互作用、RNA-DNA相互作用(沃森-克里克)或蛋白质-DNA相互作用(我相信你们已经学了很多)在整个基因组中进行搜索。所以这里有两个RNA(蓝色)的例子,方框内有两个DNA的例子,其余都是蛋白质的例子,其中蛋白质的氨基酸侧链通常识别大沟中的某种α螺旋。
Cas9是一个计算生物学的典型案例。它于1987年在大肠杆菌中被发现,本质上被认为是垃圾DNA。它不保守,具有重复性,这是垃圾DNA的两个标志性特征,在1987年非常流行。他们试图在基因组计划开始前三年就扼杀它,因为不想测序人类基因组中不编码蛋白质的任何部分。我是认真的。
无论如何,它作为垃圾DNA沉寂了许多年。最终,对于认知细菌学家来说,它可能是一种有趣的适应性免疫系统,有点像抗体,而不是固定的或天然的免疫(如限制性内切酶)。所以这有点像适应性版本的限制性内切酶。但直到2013年,当我的几位博士后和以前的博士后及研究生在一月份使其在人类细胞中工作时,它才真正流行起来。从细菌跳到人类是一个巨大的跨越。然后,一旦实现这个跨越,让它在我们尝试过的每一种生物体中工作都变得出奇地容易。所以现在至少在20种不同的生物体中有效,包括真菌、植物,甚至大象。我们还没有发表大象的数据,但我们有理由这样做。
最常被问到的问题,当然,这应该吸引试图进行设计的计算生物学家,就是:脱靶效应怎么办?
事实证明,现在有很多方法可以处理脱靶效应,多到我敢说,目前脱靶效应几乎到了无法测量的程度。以下是你可以采用的不同方法。我们从2013年1月开始进行理论分析,基本上寻找可能脱靶一两个核苷酸的位置,并将其排除在考虑之外。然后你得到一个较短的列表,并进行经验性搜索,因为这非常便宜。基本上,你有一个向导RNA,它形成一个三螺旋,与DNA的一条链结合。制作这些向导RNA非常容易,只需要合成20个核苷酸,将其插入载体,其余部分就自动处理了。如此容易,以至于你可以制作很多,并进行经验性搜索,找到对正确位点特别“热”、对错误脱靶位点特别“冷”的位置。这是前两种方法。
配对切口酶:你需要它们不产生双链断裂(这是其天然功能),而是产生单链切口,然后你需要两个这样的切口在附近重合。这有点像PCR的概念,你需要两个在彼此附近的引物。所以这是一种巧合。如果一个位点脱靶的概率是p,那么两个这样的位点在附近同时出现的概率大约是p的平方。
截短的向导RNA:你不一定会猜到,如果你让向导RNA更短,效果会更好。但显然有一个最佳长度。如果太长,那么它可能通过任何错配的子集结合;如果太短,从信息论的角度来看,它没有足够的比特数来识别基因组中的唯一位置。结果证明,最佳长度与天然长度略有不同,大约短两个核苷酸。
最后,这是刚刚出现的,来自Keith Young和David Liu的实验室,你消除了漂亮的双链断裂能力。你可以将其变成切口酶,或者使其完全失去核酸酶功能,然后重新添加核酸酶结构域。你会说,哇,这看起来有点奇怪,你做了所有这些工作来去除核酸酶,然后又添加了一个不同的核酸酶(FokI细菌限制性内切酶)。但事实证明,这是其他人处理其他DNA结合蛋白(如锌指蛋白和TALEN蛋白)的方式。所以我们必须尝试,而且效果非常好。它就像配对切口Cas9一样,你需要两个这样的位点才能产生切割。
请保持关注,我相信还会有更多方法。
回归因果关系 🔗
我想再次以因果关系结束,正如我开始时那样。这是一个双无效等位基因的例子,母本和父本拷贝都缺失。有很多双无效等位基因的例子,我们稍后可以讨论一些。它们通常很罕见。曾经,世界上只有一个人被鉴定出具有这种特征。很难对此进行大规模的队列研究。而且他们并没有真的生病。表型是,这个小婴儿肌肉发达,就像在阿诺德·施瓦辛格旁边锻炼过一样,但他生来如此,并且一直保持这样。但令人震惊的是,你看着基因组会说,哇,一个高度保守的蛋白质的双无效等位基因,这一定意味着什么。然后你可以根据对该通路的了解提出一个假设。这与表型相符,因此你有一个强有力的假设,可以在动物身上进行测试。通常会在三种不同的动物物种中进行测试,但这个例子碰巧在牛、狗和小鼠中都有现成的或容易进行的测试。
这是你可以用来验证因果关系的一种方法。另一种情况是,动物模型不起作用。要么你事先知道它们不会起作用,因为它们没有那种大脑结构,例如,除了人类之外,没有其他生物具有特定的大脑结构。因此很难制造突变体,因为它们已经是突变体了。另一个选择是芯片器官或类器官,因为它们并不完全生理学上忠实,但至少是人类来源的。就像动物模型可能有假象一样,人类类器官也可能有假象。
以下是一个即将在几天内发表的例子,是我们与Keith Parker实验室和Bill Pu实验室合作完成的。我认为这是一个很好的例子,说明你可以提出一个假设:一个碱基对发生了改变,这个G在这里被删除,据推测这导致了影响线粒体功能的心肌病。你可以使用我刚才提到的CRISPR技术或同源重组来突变它,找到那个碱基,改变它。或者你可以在附近制造一个混乱,作为对照。另一个对照是不改变它。当然,在那里制造一个小插入缺失也会把它搞乱。通过这三种情况,你现在构建了三个等基因株系。这些实际上是我在个人基因组计划中的细胞,我们像我这样的志愿者建立干细胞系,然后从干细胞系中,我们可以建立在这个例子中非常有序的心脏组织。在下一张幻灯片中你会看到,你可以测试该心脏组织的脂质生物化学、其他生理参数、形态学以及心脏肌肉的收缩性(舒张和收缩)。所以,你基本上可以制造一个只改变了我的基因组中一个碱基对的东西。我们基本上制造了一个突变版本的我。
总结 📝


在本节课中,我们一起学习了如何通过基因组工程来验证生物学中的因果关系。我们从设计具有新功能(如病毒抗性和代谢隔离)的基因组开始,探讨了计算机辅助设计、合成、测试和分析的完整循环。我们看到了同义密码子改变可能带来的意外发现,以及通过蛋白质设计引入非标准氨基酸来创造遗传依赖性的方法。最后,我们讨论了人类基因组工程的工具(如CRISPR-Cas9)及其在验证疾病因果关系和潜在治疗方面的应用,包括如何通过编辑干细胞模型来研究人类疾病。基因组工程不仅是一个强大的研究工具,也为未来精准医学开辟了道路。

浙公网安备 33010602011771号