反义寡核苷酸(ASO)是长度约 15~25 个核苷酸的单链核酸,通过碱基互补配对结合目标 mRNA。它的设计逻辑与小分子完全不同:特异性来自序列匹配,而非三维形状互补。
三种作用机制
| 机制 | 原理 | 设计要求 |
|---|---|---|
| RNase H 降解 | DNA/RNA 杂合双链招募 RNase H1 切割 mRNA | 需要 DNA 「gap」区(gapmer 设计) |
| 剪接调控 | 结合前体 mRNA 的剪接位点,改变剪接方式 | 全修饰(不招募 RNase H) |
| 翻译阻断 | 空间位阻阻止核糖体 | 全修饰 |
Gapmer 设计是 RNase H 机制的标准结构:[修饰核苷酸]₅ - [DNA]₁₀ - [修饰核苷酸]₅。两翼修饰提高结合亲和力与稳定性,中间的 DNA gap 是 RNase H 识别所必需的。
化学修饰
| 修饰 | 位置 | 作用 |
|---|---|---|
| 硫代磷酸(PS) | 骨架 | 抗核酸酶、促进蛋白结合与摄取;几乎所有 ASO 必用 |
| 2′-O-甲基(2′-OMe) | 核糖 2′ | 提高亲和力与稳定性 |
| 2′-O-甲氧乙基(2′-MOE) | 核糖 2′ | 更高亲和力,降低毒性 |
| 锁核酸(LNA) | 核糖桥连 | 亲和力大幅提升,但肝毒性风险需注意 |
| 约束乙基(cEt) | 核糖桥连 | 类似 LNA,安全性改善 |
| 吗啉代(PMO) | 整个骨架 | 中性电荷,主要用于剪接调控 |
| GalNAc 偶联 | 末端 | 肝细胞靶向递送,效力提升数十倍 |
GalNAc 偶联是核酸药物领域最重要的递送突破之一:三价 GalNAc 与肝细胞表面的去唾液酸糖蛋白受体(ASGPR)高亲和结合,实现高效肝靶向。这让肝脏靶点的核酸药物变得非常可行——也解释了为什么已上市的核酸药物大量集中在肝脏适应症。
序列设计流程
# 1) 获取目标转录本序列(注意所有剪接变体)
from Bio import Entrez, SeqIO
Entrez.email = "you@example.com"
handle = Entrez.efetch(db="nucleotide", id="NM_000546",
rettype="fasta", retmode="text")
transcript = SeqIO.read(handle, "fasta")
# 2) 滑窗生成候选 ASO
def generate_aso_candidates(sequence, length=20, step=1):
candidates = []
seq = str(sequence).upper().replace("U", "T")
for i in range(0, len(seq) - length + 1, step):
target = seq[i:i+length]
# ASO 是目标序列的反向互补
aso = str(Seq(target).reverse_complement())
candidates.append({"position": i, "target": target, "aso": aso})
return candidates
# 3) 基本性质过滤
def filter_aso(aso):
gc = (aso.count("G") + aso.count("C")) / len(aso)
checks = {
"gc_ok": 0.40 <= gc <= 0.60,
"no_g_quadruplex": "GGGG" not in aso, # G 四链体影响活性
"no_long_repeat": not any(b*4 in aso for b in "ACGT"),
"no_cpg": aso.count("CG") <= 1, # CpG 基序有免疫刺激风险
}
return all(checks.values()), checks
脱靶控制:核酸药物的核心问题
# 脱靶来源一:序列相似性导致的杂交
# 用 BLAST 检查全转录组
# blastn -query aso_candidates.fasta \
# -db human_transcriptome \
# -task blastn-short \
# -word_size 7 -evalue 1000 \
# -outfmt 6 -out offtarget.txt
def assess_offtarget_risk(blast_results, aso_length=20):
"""评估脱靶风险"""
risks = []
for hit in blast_results:
n_mismatch = aso_length - hit["identities"]
# 经验规则:
# 完全匹配(0 错配)→ 高风险
# 1~2 个错配 → 中风险(尤其错配在两翼而非 gap 区)
# ≥3 个错配 → 风险较低
if n_mismatch == 0:
risks.append({"gene": hit["gene"], "level": "high"})
elif n_mismatch <= 2:
risks.append({"gene": hit["gene"], "level": "medium"})
return risks
# 脱靶来源二:非杂交依赖的毒性
# - PS 骨架的蛋白结合 → 肝毒性、血小板减少、补体激活
# - LNA 等高亲和力修饰与肝毒性相关
# - CpG 基序 → 先天免疫激活
# 这类毒性不能靠序列比对预测,需实验评估
RNA 二级结构的影响
# 目标 mRNA 的二级结构会遮蔽结合位点
import RNA # ViennaRNA
def target_accessibility(mrna_seq, start, length):
"""评估目标位点的可及性"""
fc = RNA.fold_compound(mrna_seq)
structure, mfe = fc.mfe()
fc.exp_params_rescale(mfe)
fc.pf()
# 计算该区域保持单链(未配对)的概率
bpp = fc.bpp()
unpaired_prob = []
for i in range(start, start + length):
paired = sum(bpp[i+1][j] for j in range(1, len(mrna_seq)+1)
if j != i+1)
unpaired_prob.append(1.0 - min(paired, 1.0))
return float(np.mean(unpaired_prob))
# 可及性高的位点更可能有效
# 但注意:细胞内 mRNA 结合了大量蛋白,
# 体外预测的二级结构与体内实际情况有差距
现实:筛选仍是主要手段
计算只能缩小范围,最终必须靠实验筛选。典型流程:
- 计算生成并过滤出 50~200 个候选(覆盖转录本不同区域);
- 细胞实验测敲低效率(qPCR / Western);
- 命中率通常在 10%~30%——即使经过精心的计算筛选;
- 对命中的序列做剂量-响应、脱靶评估、毒性评估;
- 优化化学修饰模式。
为什么活性难以预测:细胞内 mRNA 的实际结构与蛋白结合状态、ASO 的细胞摄取与亚细胞定位、RNase H 的可及性——这些因素目前都无法可靠建模。
关键要点
- Gapmer(两翼修饰 + 中间 DNA gap)是 RNase H 机制的标准设计;
- GalNAc 偶联实现高效肝靶向,是核酸药物递送的关键突破;
- 脱靶有两类:序列相似性杂交(可用 BLAST 筛)与化学修饰本身的毒性(需实验);
- 计算只能缩小范围,实验筛选命中率通常 10%~30%。
延伸资源
- siRNA 对照:376《siRNA 设计》;mRNA:377《mRNA 序列优化》;递送:378《LNP 递送系统》。