想象一座庞大的自动化工厂。档案馆里存放着整套产品的设计蓝图,这就是 DNA,它记录了一个生物体的全部“零件图纸”。但图纸本身只是一堆纸,真正重要的,是每个车间每天实际生产多少产品。基因表达,就是细胞按蓝图“生产”的产量:有些基因一天产出成千上万份 mRNA,有些则几乎从不开工。 车间门口的“开工令”标志是启动子,标出生产从哪一格图纸开始;工厂另一头还有“增产按钮”——增强子,隔着很远也能通过内部专线让车间多产;穿梭往来的调度员——转录因子,举着专属工牌,只有找到图纸上对应的符号才能上岗;图纸上的彩色批注——表观遗传标记,决定哪些页面摊开可用、哪些合上封存。 深度学习模型,就是一位学会了读图纸、看批注、听调度的智能车间主任。给它一段基因序列和调控信息,它就能预测这个基因的表达水平——甚至能提前预览:图纸上某处字母印错(变异),产量会因此掉多少。 这篇文章,就用这条“生产车间”的故事,带你零基础看懂“基因表达预测”的全过程。

岗位关联

对 AI 从业者而言,学会用深度学习预测基因表达,是踏入 AI 制药、精准医学与基因组学分析等高价值赛道的核心技能,也是让算法真正读懂生命语言的敲门砖。

目录
  1. 可视化演示
  2. 表达预测问题
  3. 启动子序列
  4. 增强子调控
  5. 转录因子结合
  6. 表观遗传特征
  7. 深度学习建模
  8. 变异功能注释
  9. 应用与前景
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

演示序列与表观遗传整合、深度学习表达预测、转录因子结合预测,直观展示如何从DNA序列推断基因转录水平。

本节配有交互动效(进入视口后自动加载,约 3KB)。

序列与表观遗传整合 序列+表观 多源整合 结合启动子增强子与染色质状态预测表达

表达预测问题

工厂调度室最关心的问题永远是:每条生产线这个月实际产出多少?在没有预测系统之前,只能等月底盘点。基因表达预测要做的,正是这件事——不看产品最终堆了多少,而是提前算出基因这条“生产线”的产出。

生物学里,这条生产线的核心流程叫“中心法则”:DNA 上的基因先被转录成 mRNA,再被翻译成蛋白质。基因表达水平(expression)通常就用 mRNA 的丰度来衡量——mRNA 越多,说明这条产线越繁忙。

预测任务因此被形式化成:给定一个基因的序列以及它周边的调控信息,预测它的转录水平。难点在于,表达水平受启动子、增强子、转录因子、表观遗传等多重因素影响,且随细胞类型动态变化,靠简单的线性思维根本算不准。

好在,把这一切交给深度学习模型,它就像一个看过一千个车间历史报表的智能主任,能找到别人看不见的隐藏模式。接下来,我们就沿着生产线的四个关键环节逐个拆解。

蓝图已经铺开,开工令写明了一切,但真正决定车间产出的第一个开关,就是那块“开工令”标志——启动子。

DNA→转录mRNA→翻译蛋白质\displaystyle \text{DNA} \xrightarrow{\text{转录}} \text{mRNA} \xrightarrow{\text{翻译}} \text{蛋白质}
中心法则概括了基因表达的信息流:DNA 是模板,mRNA 是中间载体,蛋白质是最终产品。
  1. 转录(DNA 到 mRNA)细胞以 DNA 为模板合成信使 RNA,这是基因表达的“开工”环节,相当于把蓝图内容抄写成可执行的施工单。
    DNA→RNA 聚合酶mRNA\displaystyle \text{DNA} \xrightarrow{\text{RNA 聚合酶}} \text{mRNA}
  2. 翻译(mRNA 到蛋白质)核糖体读取 mRNA 上的三联体密码子,组装出氨基酸链,这是把施工单变成真实产品的环节。
    mRNA→核糖体蛋白质\displaystyle \text{mRNA} \xrightarrow{\text{核糖体}} \text{蛋白质}
  3. 表达水平的定义基因 g 的表达水平用 mRNA 的丰度来衡量,mRNA 越多,说明这条产线越繁忙。
    Eg=[mRNA]g\displaystyle E_{g} = [\text{mRNA}]_{g}

启动子序列

车间门口那块“开工令”标志,决定了生产机器从图纸的哪一格开始读。没有它,机器不知道从哪儿下嘴。在基因上,这块“开工令”叫启动子(promoter),它位于基因上游的一段 DNA 序列,RNA 聚合酶在这里识别并结合,就像机器对准开工令开始转录。

启动子上有一些保守的“标准格式”,比如 TATA box。这些格式越标准,开工令就越清晰,转录机器越容易就位。为了量化“开工令”的清晰程度,计算生物学引入位置权重矩阵(PWM):统计大量已知启动子后,记录每个位置上不同碱基的出现偏好。

给定一条候选序列,把它每个位置的碱基与 PWM 对照打分,累加起来就得到启动子强度分数。深度学习模型的第一步特征,往往正是从这个分数或原始序列中学出来的。

启动子给模型提供了“第一道线索”,但它只是近处的开工令。真正让产量翻倍的,往往是远处那个“增产按钮”——增强子。

S启动子=∑i=1Llog⁡fi,bipbi\displaystyle S_{\text{启动子}} = \sum_{i=1}^{L} \log \frac{f_{i, b_i}}{p_{b_i}}
启动子强度分数越高,说明这段序列与已知强启动子越像,越容易招募转录机器开工。
  1. 统计位置频率先统计大量已知启动子序列,算出每个位置上出现特定碱基的频率。
    fi,bi=位置 i 出现碱基 bi 的序列数序列总数\displaystyle f_{i, b_i} = \frac{\text{位置 }i\text{ 出现碱基 }b_i\text{ 的序列数}}{\text{序列总数}}
  2. 对数比分把该频率除以基因组背景频率,再取对数。比值为正说明该碱基在此位置被偏好,为负则被回避。
    log⁡fi,bipbi\displaystyle \log \frac{f_{i, b_i}}{p_{b_i}}
  3. 全序列求和从位置 1 到 L 累加每个位置的比分,得到整段启动子的强度,分数越高代表启动子越强。
    S启动子=∑i=1L⋯\displaystyle S_{\text{启动子}} = \sum_{i=1}^{L} \cdots

增强子调控

工厂老板不可能站在每个车间门口喊“多产点”,他坐在总部按下一个按钮,信号就顺着专线传到车间。增强子(enhancer)就是这样的“增产按钮”,它可能离基因几十万甚至上百万个碱基远,却能大幅提高基因的表达。

增强子靠的是染色质三维折叠与启动子“拉近距离”——就像专线电缆把总部和车间直接接通。这种增强子-启动子环化互作,正是理解“远水也能解近渴”的关键。

计算上,常用距离衰减模型估算互作强度:线性距离越远,互作趋势越弱;但只要 Hi-C 等三维构象数据证明“专线接通”,远端增强子照样能强烈影响表达。因此,预测模型不能只看基因附近,还得把远处的增产按钮也算进来。

那么,是谁去按那个按钮?答案是拿着工牌的调度员——转录因子。

I(e,g)∝αd(e,g)β\displaystyle I(e, g) \propto \frac{\alpha}{d(e, g)^{\beta}}
互作强度随线性距离增大而衰减,但三维环化可以把“远方”变成“眼前”。
  1. 线性基因组距离增强子 e 与基因 g 在染色体直线上的碱基间隔,距离越大,传统上认为互作越弱。
    d(e,g)=∣位置(e)−位置(g)∣\displaystyle d(e, g) = |\text{位置}(e) - \text{位置}(g)|
  2. 幂律衰减模型互作强度与距离的 β 次方成反比,β 控制衰减速度,α 是缩放系数。
    I(e,g)∝α⋅d(e,g)−β\displaystyle I(e, g) \propto \alpha \cdot d(e, g)^{-\beta}
  3. 三维环化修正真实互作强度还要乘上环化因子,专线连通时可以抵消线性距离的影响。
    I实际=I模型×环化因子\displaystyle I_{\text{实际}} = I_{\text{模型}} \times \text{环化因子}

转录因子结合

调度员要上岗,必须先找到自己对应的图纸符号。这个“符号”就是转录因子偏好的短 DNA 序列模式,叫作基序(motif)。转录因子结合到基序上,像钥匙插进锁孔,随后召集 RNA 聚合酶开工。

不同的转录因子认不同的锁孔,它们组合起来,就形成复杂的调控网络。预测模型要学的关键任务之一,就是“认出基序”——判断哪段序列会被哪位调度员看中。

计算上,基序用位置权重矩阵表示,扫描序列时用滑动窗口逐一打分,分数越高越可能是真实的结合位点。ChIP-seq 实验数据则为模型提供了“哪位调度员真的上岗了”的监督信号,相当于给预测器配了参考答案。

有了开工令、增产按钮、调度员工牌,还差最后一种关键要素:图纸能不能摊开?这就要看表观遗传批注了。

Binding(x)=∑j=1m∑b=14Wj,b⋅xj,b\displaystyle \text{Binding}(\mathbf{x}) = \sum_{j=1}^{m} \sum_{b=1}^{4} W_{j,b} \cdot x_{j,b}
结合分数衡量一段序列与已知基序的相似程度,分数越高,转录因子在该处结合的可能性越大。
  1. 位置-碱基权重矩阵矩阵 W 的每个元素表示基序第 j 个位置偏好哪种碱基,是基序的“数字指纹”。
    Wj,b,j=1,…,m, b∈{A,C,G,T}\displaystyle W_{j,b}, \quad j = 1, \dots, m, \ b \in \{A, C, G, T\}
  2. One-hot 编码输入候选序列转换成 0/1 向量,x 取 1 表示该位置出现对应碱基。
    xj,b∈{0,1}\displaystyle x_{j,b} \in \{0, 1\}
  3. 双求和打分把每个位置的偏好权重与碱基指示相乘后累加,得到整段序列与基序的匹配分数。
    ∑j=1m∑b=14Wj,b⋅xj,b\displaystyle \sum_{j=1}^{m} \sum_{b=1}^{4} W_{j,b} \cdot x_{j,b}

表观遗传特征

图纸管理员手握彩色批注笔,他的决定非常重要:摊开的页面谁都能读,合上的页面谁也看不见。这就是表观遗传对基因表达的“开关”作用——序列没变,但可读性变了。

三个核心批注:染色质可及性(chromatin accessibility)标记开放区域,相当于“页面已摊开”;DNA 甲基化(methylation)通常关闭基因,像“保密封条”;组蛋白修饰(如 H3K27ac)标记活跃的启动子和增强子,像“重点推荐”标签。

这些特征被量化为数值轨道输入模型。同一个基因,序列完全一样,在肝细胞和脑细胞中表达天差地别,本质就是批注不同——这让表达预测天然成为“序列 + 表观”的融合任务。

至此四条线索齐了:启动子强度、增强子互作、转录因子结合、表观状态。谁来把它们拧成一股绳?答案是深度学习模型。

E^=σ ⁣(w1⋅Acc+w2⋅(1−Meth)+w3⋅H3K27ac+b)\displaystyle \hat{E} = \sigma\!\left(w_{1} \cdot \text{Acc} + w_{2} \cdot (1 - \text{Meth}) + w_{3} \cdot \text{H3K27ac} + b\right)
表观特征共同决定基因所处的“可转录”状态,是序列之外最关键的调控信号。
  1. 染色质可及性Acc 值越大,染色质越开放,转录机器越容易靠近 DNA,表达倾向越高。
    Acc∈[0,1]\displaystyle \text{Acc} \in [0, 1]
  2. DNA 甲基化抑制甲基化通常是抑制信号,用 1 减去甲基化水平,把“封条解除程度”转为正向特征。
    1−Meth\displaystyle 1 - \text{Meth}
  3. 组蛋白修饰标记H3K27ac 是活跃增强子和启动子的经典标记,存在越多,表达越活跃。
    H3K27ac\displaystyle \text{H3K27ac}
  4. Sigmoid 输出加权求和后经过 σ 函数压缩,把任意实数映射到 0 到 1 之间,作为预测表达水平。
    σ(z)=11+e−z\displaystyle \sigma(z) = \frac{1}{1 + e^{-z}}

深度学习建模

智能车间主任从不背诵规则,他只观察历史数据:把每一段序列、每一条批注、每一个产量记录喂进去,让模型自己总结规律。深度学习模型就是这样一位主任。

典型流程是:DNA 序列先做 one-hot 编码,变成数值矩阵;卷积神经网络(CNN)的卷积核在序列上滑动,自动学习“基序检测器”;表观信号轨道作为额外输入通道叠加;最后经过全连接层输出预测表达值。

卷积层像一排放大镜,每个放大镜专门寻找一种局部模式;ReLU 只放行正值,让网络有能力表达“有或无”的判断;输出层的 sigmoid 把分数压到 0 到 1 之间,对应表达水平。

训练时,用真实 RNA-seq 表达量做标签,损失函数衡量预测误差,反向传播一层层修正参数。训练好的模型,就是一位见过十万个车间的资深主任——它可以回答:蓝图某处印错,产量会掉多少。

y^=σ ⁣(W2⊤⋅ReLU ⁣(W1⊤x+b1)+b2)\displaystyle \hat{y} = \sigma\!\left(W_{2}^{\top} \cdot \text{ReLU}\!\left(W_{1}^{\top} \mathbf{x} + \mathbf{b}_{1}\right) + b_{2}\right)
模型先卷积提取局部基序模式,再全连接整合为全局表达预测,sigmoid 把输出压缩到 0-1 区间。
  1. One-hot 输入矩阵长度为 L 的序列编码成 L 行 4 列的 0/1 矩阵,四列分别对应 A、C、G、T。
    x∈RL×4\displaystyle \mathbf{x} \in \mathbb{R}^{L \times 4}
  2. 卷积层提取基序第一层权重矩阵 W₁ 与输入卷积,相当于用一组“基序探针”扫描整条序列,输出局部模式响应。
    h=W1⊤x+b1\displaystyle \mathbf{h} = W_{1}^{\top}\mathbf{x} + \mathbf{b}_{1}
  3. ReLU 非线性激活把负响应归零、保留正响应,让模型能做出“有没有这个模式”的判别。
    ReLU(z)=max⁡(0,z)\displaystyle \text{ReLU}(z) = \max(0, z)
  4. 全连接输出层第二层把卷积特征整合成最终分数,再经 sigmoid 输出表达水平预测值。
    y^=σ ⁣(W2⊤h+b2)\displaystyle \hat{y} = \sigma\!\left(W_{2}^{\top} \mathbf{h} + b_{2}\right)

变异功能注释

蓝图上某个字母被印错了,产量会掉多少?这就是变异功能注释要回答的问题——尤其是那些不改变蛋白质序列的“沉默”错别字,它们藏在非编码区,传统方法几乎拿它们没办法。

表达数量性状位点(eQTL)研究发现,大量与疾病相关的变异位于非编码调控区。它们并不改动蛋白质本身,而是通过破坏启动子、增强子或转录因子结合位点,让基因表达量异常,进而引发疾病。

用训练好的预测模型,分别输入参考序列和变异序列,输出的差值 ΔE 就是该变异对表达的预测影响。ΔE 绝对值越大,说明这个错别字越“致命”。

这套流程相当于给每个变异贴上一张“表达影响标签”,让原本无从下手的非编码变异有了可解释的功能证据——这正是 AI 在基因组医学中最有价值的应用之一。

ΔE=f(xmut)−f(xref)\displaystyle \Delta E = f(\mathbf{x}_{\text{mut}}) - f(\mathbf{x}_{\text{ref}})
ΔE 为负表示变异下调表达,为正表示上调,绝对值越大,功能影响越显著。
  1. 参考型预测把参考基因组序列输入模型,得到该基因的正常表达预测值。
    Eref=f(xref)\displaystyle E_{\text{ref}} = f(\mathbf{x}_{\text{ref}})
  2. 变异型预测把携带变异的序列输入同一个模型,得到变异后的表达预测值。
    Emut=f(xmut)\displaystyle E_{\text{mut}} = f(\mathbf{x}_{\text{mut}})
  3. 表达改变量两者相减得到 ΔE,负数表示表达下降,正数表示表达上升,绝对值衡量影响程度。
    ΔE=Emut−Eref\displaystyle \Delta E = E_{\text{mut}} - E_{\text{ref}}

应用与前景

当主任能准确预测每一条生产线的产量,工厂的原料调度、故障排查、新品规划都变得有据可依。基因表达预测的意义也在于此:它让抽象的基因组变成可计算的生产计划。

在药物研发中,模型帮助锁定“在疾病组织中异常高表达的基因”作为候选靶点,大幅缩短前期筛选周期;在精准医学中,患者的非编码变异通过 ΔE 快速分级,为罕见病诊断提供关键功能证据。

前沿方向同样激动人心:单细胞水平的表达预测正在解析细胞异质性;多组学融合把染色质构象、剪接、翻译一起纳入模型;大语言模型开始直接“读”基因组序列,把上下文信息融入预测。

从读懂一张蓝图到管理整座工厂,AI 与基因表达的结合,正在让“预测生命”从科幻变成日常工具。而这,只是 AI for Science 宏大叙事的一个章节。

Rank靶点=∣ΔE∣×疾病相关性\displaystyle \text{Rank}_{\text{靶点}} = |\Delta E| \times \text{疾病相关性}
候选靶点的优先级由表达改变幅度和疾病关联强度共同决定,两者兼顾的基因最值得投入研发。
  1. 表达改变幅度取 ΔE 的绝对值,衡量变异或异常状态下表达偏离正常的程度。
    ∣ΔE∣\displaystyle |\Delta E|
  2. 疾病相关性权重来自 GWAS 或临床数据的关联强度,表示该基因与目标疾病的紧密程度。
    疾病相关性\displaystyle \text{疾病相关性}
  3. 乘积排序两者相乘得到靶点评分,按分数排序即可生成候选药物靶点清单。
    ∣ΔE∣×疾病相关性\displaystyle |\Delta E| \times \text{疾病相关性}

AI 应用场景

非编码变异解读:让沉默的变异开口说话

阶段:基因组变异注释与致病性评估

解决的问题:全外显子组测序只覆盖编码区,大量罕见病的致病变异其实位于非编码调控区。传统方法只能靠序列保守性打分,没法回答“这个变异让基因表达变了多少”。表达预测模型为每个变异输出 ΔE,相当于给原本“沉默”的变异配上了功能扩音器。

具体案例:一名发育迟缓患儿接受全基因组测序,在某个心脏发育关键基因的远端增强子区域发现一个 SNP。模型预测该变异使增强子活性下降约 40%,后续实验验证染色质开放度显著降低,最终帮助确立了分子诊断。

药物靶点发现的细胞类型特异表达

阶段:靶点发现与验证

解决的问题:传统 RNA-seq 需要大量样本测序才能发现异常表达,且成本高、周期长。表达预测模型可以在任意序列上快速预测,并叠加单细胞表观数据,定位“在疾病细胞里异常高表达的基因”作为候选靶点。

具体案例:研究团队对肿瘤组织的表观数据建模,预测某个癌基因启动子在肿瘤细胞中活性升高近 3 倍,模型结果与公共数据库中的表达谱高度一致,该基因随后进入 RNA 干扰药物管线。

Python 演示

python70 行
import numpy as np BASE_MAP = {'A': [1, 0, 0, 0], 'C': [0, 1, 0, 0],            'G': [0, 0, 1, 0], 'T': [0, 0, 0, 1]}  def encode_sequence(seq):    """把 ACGT 字符串转成 one-hot 矩阵"""    return np.array([BASE_MAP.get(b, [0, 0, 0, 0])                     for b in seq.upper()])  def gc_content(seq):    """计算序列的 GC 含量, 作为启动子强度特征"""    return sum(1 for b in seq.upper() if b in 'GC') / len(seq)  def scan_motif(seq_enc, motif_enc):    """滑动窗口扫描转录因子基序, 返回最高匹配得分 0~1"""    L, M = len(seq_enc), len(motif_enc)    best = 0.0    for i in range(L - M + 1):        score = float(np.sum(seq_enc[i:i + M] * motif_enc)) / M        best = max(best, score)    return best  class ExpressionPredictor:    def __init__(self):        self.w_promoter = 0.8        self.w_enhancer = 1.2        self.w_tf = 0.4        self.bias = 0.1     def predict(self, promoter_score, enhancer_score, tf_score):        """线性加权后经 sigmoid 非线性, 输出 0~1 表达水平"""        z = (self.w_promoter * promoter_score             + self.w_enhancer * enhancer_score             + self.w_tf * tf_score + self.bias)        return 1.0 / (1.0 + np.exp(-z))  def main():    model = ExpressionPredictor()    promoter_seq = "ACGTACGTACGT"    enhancer_ref = "ACGTGC"    enhancer_mut = "AATTCC"    motif = "ACGT"     motif_enc = encode_sequence(motif)    prom_score = gc_content(promoter_seq)    tf_ref = scan_motif(encode_sequence(enhancer_ref), motif_enc)    tf_mut = scan_motif(encode_sequence(enhancer_mut), motif_enc)     expr_ref = model.predict(prom_score, tf_ref, tf_ref)    expr_mut = model.predict(prom_score, tf_mut, tf_mut)     change = (expr_mut - expr_ref) / expr_ref * 100    print("启动子 GC 含量: %.2f" % prom_score)    print("参考增强子基序得分: %.2f" % tf_ref)    print("变异增强子基序得分: %.2f" % tf_mut)    print("参考型表达水平: %.3f" % expr_ref)    print("变异型表达水平: %.3f" % expr_mut)    print("表达变化: %+.1f%%" % change)    if change < 0:        print("结论: 该增强子变异降低了基因表达")  if __name__ == "__main__":    main()
目的:演示一个极简的基因表达预测器——从启动子 GC 含量和增强子基序匹配度出发,用加权和加 sigmoid 预测表达水平,并模拟增强子变异对表达的影响。
  1. BASE_MAP = {'A': [1, 0, 0, 0], 'C': [0, 1, 0, 0],定义碱基到 one-hot 向量的映射表,这是序列编码的第一步。
  2. def encode_sequence(seq):把 ACGT 字符串逐碱基转成矩阵,让模型能“吃”数值而不是字母。
  3. def scan_motif(seq_enc, motif_enc):用滑动窗口扫描增强子序列,找出转录因子基序的最佳匹配得分。
  4. class ExpressionPredictor:定义表达预测器,用可学习的权重把多源调控信号综合起来。
  5. z = (self.w_promoter * promoter_score线性加权求和,把启动子、增强子、转录因子三类信号叠加。
  6. return 1.0 / (1.0 + np.exp(-z))sigmoid 非线性压缩,把任意实数映射到 0-1 的表达水平。
  7. tf_ref = scan_motif(encode_sequence(enhancer_ref), motif_enc)对参考增强子打分,模拟健康状态的调控强度。
  8. expr_mut = model.predict(prom_score, tf_mut, tf_mut)对变异增强子重新预测,得到变异后的表达量。
  9. change = (expr_mut - expr_ref) / expr_ref * 100计算表达变化的百分比,定量描述变异的“杀伤力”。

常见误区

误区我只要看基因开头那一段启动子序列,就能判断表达强弱,其他信息都不重要。毕竟转录不是从启动子开始的吗?

正解启动子只是“开工令”,增强子像远端“增产按钮”、转录因子像调度员、表观标记像蓝图批注,都会显著影响最终产量。深度学习实验反复证明:整合多类特征比只看启动子预测准确得多。任何一个环节出问题,车间产量都会变。

为何常见:启动子紧挨基因、概念上最先接触,教材也常以启动子为例讲解转录起始,容易让人误以为它是唯一决定因素。

误区同一个基因在不同细胞里表达不同,难道不是因为序列不一样?如果序列完全相同,表达应该完全一样才对。

正解序列是“静态蓝图”,表观遗传是“动态批注”。同一个基因在肝细胞和脑细胞中表达不同,正是因为染色质开放状态、甲基化、组蛋白修饰这些批注不一样。这也是为什么预测表达必须同时融入序列和表观特征,二者缺一不可。

为何常见:中心法则给人“序列决定一切”的直觉,忽略了基因之上还有一层动态调控的“操作系统”。

误区深度学习不是端到端吗?那把 ACGT 字符串直接丢进模型就行,一切自动学,不需要编码。

正解模型不能直接处理字符串,必须先做 one-hot 编码转成数值矩阵。窗口大小、卷积核设计、是否叠加表观信号轨道,都强烈影响效果。“端到端”指的是从特征到输出的端到端学习,而不是“字符串到输出”——预处理和特征整合依然是建模的核心环节。

为何常见:“端到端”一词被过度营销,让人误以为深度学习可以跳过一切数据处理步骤。

误区模型预测某个基因表达量异常高,那它一定是致病基因,可以直接作为药物靶点。

正解表达变化是疾病的一种“线索”而非“判决”。同样的表达变化在不同细胞类型中意义不同,而且很多表达改变是疾病的结果而非原因。变异注释需要结合 eQTL、人群频率、共调控网络等证据综合判断,不能单凭一个 ΔE 下结论。

为何常见:把相关性误当成因果性,是初学者面对“预测值”时最自然的直觉误区。

面试题

Q1. 中心法则中,基因表达的第一步是?

单选题 · easy

  • A.DNA 双链复制
  • B.转录生成 mRNA← 正确答案
  • C.翻译生成蛋白质
  • D.染色体重新包装

答案:B。基因表达的第一道工序是转录,把 DNA 上的遗传信息抄写成 mRNA,相当于工厂先把蓝图内容转成可执行的施工单。DNA 复制是细胞分裂时的配套工程,翻译则在转录之后进行,染色体包装与表达流程无关。

Q2. 启动子在基因表达中的作用是?

单选题 · easy

  • A.编码蛋白质序列
  • B.包装 DNA 双链
  • C.提供转录起始信号← 正确答案
  • D.增强远端基因表达

答案:C。启动子是基因上游的“开工令”,RNA 聚合酶在此识别并结合,决定转录从哪里开始。编码蛋白质的是外显子,包装 DNA 的是组蛋白,增强远端表达的是增强子。

Q3. 下列哪些信息能帮助判断一个基因的表达水平?

多选题 · mid

  • A.蛋白质三级结构
  • B.启动子序列特征← 正确答案
  • C.增强子调控信号← 正确答案
  • D.转录因子结合位点← 正确答案

答案:BCD。表达水平由启动子、增强子、转录因子、表观遗传等多重因素共同决定。蛋白质三级结构是翻译后的产物,与“转录出多少 mRNA”没有直接关系,属于结果而不是预测线索。

Q4. 增强子影响远距离基因表达的主要途径是?

单选题 · mid

  • A.直接结合核糖体转录
  • B.直接修改蛋白质翻译效率
  • C.通过染色质环化靠近启动子← 正确答案
  • D.诱导基因片段缺失突变

答案:C。增强子通过染色质三维折叠与启动子空间靠近,就像专线把总部和车间接通。结合核糖体、修改翻译效率属于翻译层面的调控,缺失突变是变异后果而非增强子的正常功能。

Q5. 深度学习模型中,DNA 序列常用的编码方式是?

单选题 · mid

  • A.One-hot 碱基编码← 正确答案
  • B.灰度图像编码
  • C.ASCII 字符编码
  • D.十进制整数编码

答案:A。四类碱基 A/C/G/T 用长度为 4 的 one-hot 向量表示,如 A 对应 [1,0,0,0]。直接输入字符串会让模型把碱基当作无意义符号,灰度或十进制编码则会给碱基引入虚假的大小顺序。

Q6. 关于 eQTL 与调控变异的关系,下列说法正确的是?

多选题 · extreme

  • A.eQTL 位点必须位于基因编码区内
  • B.调控变异可改变模型预测的表达量← 正确答案
  • C.多数疾病风险变异位于非编码调控区← 正确答案
  • D.所有遗传变异都会改变蛋白质序列

答案:BC。eQTL 常位于非编码区,通过改变启动子、增强子或转录因子结合来影响表达,因此 A 错误、B 正确。GWAS 研究表明大多数疾病风险位点落在非编码调控区,C 正确。绝大多数遗传变异并不改变蛋白质序列,D 错误。

Q7. 变异功能注释中,eQTL 指的是?

单选题 · hard

  • A.与基因表达相关的遗传变异位点← 正确答案
  • B.改变蛋白质结构的错义突变
  • C.影响剪接位点的内含子突变
  • D.线粒体基因组上的常见变异

答案:A。eQTL(表达数量性状位点)是基因组上与基因表达水平显著关联的变异位点,是连接基因型与表型的桥梁。错义突变影响蛋白结构,剪接突变影响 RNA 剪接,都与 eQTL 的定义不同。

Q8. 转录因子偏好的短 DNA 序列模式称为?

单选题 · easy

  • A.DNA 结合基序← 正确答案
  • B.遗传密码子
  • C.端粒重复序列
  • D.开放阅读框

答案:A。基序(motif)是转录因子识别和结合的短序列模式,相当于调度员的工牌图案。密码子是 mRNA 上编码氨基酸的三联体,端粒和开放阅读框是序列中的其他功能元件。

Q9. 深度学习模型预测基因表达时,可用的输入特征包括?

多选题 · mid

  • A.启动子序列的编码← 正确答案
  • B.增强子区域的序列← 正确答案
  • C.表观遗传的信号← 正确答案
  • D.蛋白质翻译的速率

答案:ABC。模型的输入端是序列特征和表观特征,包括启动子、增强子、开放染色质信号等。蛋白质翻译速率是输出端之后的产物信息,无法在预测转录水平时作为输入特征。

Q10. 远端增强子突变导致疾病的主要原因是?

单选题 · hard

  • A.直接改变蛋白质结构
  • B.调控异常改变靶基因表达← 正确答案
  • C.导致染色体数目异常
  • D.改变 DNA 复制起点

答案:B。增强子本身不编码蛋白,它的突变主要通过改变与转录因子的结合或染色质环化,使靶基因表达量异常,进而致病。这正解释了为何非编码区的大量“沉默变异”也能引发疾病。