核糖体图谱Ribo-seq¶
一句话概述:Ribo-seq(核糖体图谱/核糖体足迹测序)通过捕获核糖体保护的mRNA片段来全局监测翻译活性,可鉴定活跃翻译的ORF、计算翻译效率和密码子占用率,RiboToolkit和RiboSeq.Org(2025)是主流分析平台。
核心知识点速览¶
| 概念 | 白话解释 |
|---|---|
| Ribo-seq | 测序核糖体"踩过"的RNA片段,看哪些mRNA正在被翻译 |
| RPF | Ribosome-Protected Fragment,核糖体保护片段,约28-32nt |
| 翻译效率(TE) | RPF密度/mRNA丰度,衡量每条mRNA被翻译的效率 |
| 密码子占用率 | 核糖体在某个密码子上停留的时间,反映翻译速度 |
| P-site | 核糖体上的肽酰位,是翻译实际发生的位置 |
| A-site | 核糖体上的氨酰位,接受新的氨酰-tRNA |
| uORF | 上游开放阅读框,在主ORF前面的小ORF |
| 三核苷酸周期性 | RPF reads在CDS区每3nt出现一个峰,证明来自翻译中的核糖体 |
| RiboToolkit | 集成Ribo-seq分析的Web平台 |
| RiboSeq.Org | 2025年发布的核糖体图谱综合资源平台 |
一、Ribo-seq基础¶
1.1 实验原理¶
Ribo-seq的核心思想:
翻译中的核糖体像"火车"沿着mRNA"铁轨"行驶
核糖体"覆盖"的mRNA片段受保护,不被核酸酶降解
实验步骤:
1. 用翻译抑制剂(如CHX)冻住核糖体在mRNA上的位置
2. 用核酸酶(RNase I)消化未被保护的RNA
3. 纯化核糖体-RNA复合物
4. 提取RPF(约28-32nt的小片段)
5. 建库测序
6. 同时做RNA-seq获取mRNA丰度
关键质控指标:
- RPF长度分布应集中在28-32nt
- 三核苷酸周期性(triplet periodicity):reads按3nt周期分布
- CDS区富集:>80%的reads应该在编码区
- 起始密码子和终止密码子处有明显的reads堆积
1.2 Ribo-seq能回答什么问题?¶
1. 翻译组学(Translatome)
哪些mRNA正在被翻译?翻译到什么程度?
2. 翻译效率(Translation Efficiency, TE)
TE = RPF_RPKM / mRNA_RPKM
TE高: mRNA翻译活跃(可能有IRES或优势密码子)
TE低: mRNA存在翻译抑制(可能有uORF或RNA二级结构)
3. 新ORF发现
lncRNA上的小ORF → 小蛋白/微肽
5'UTR中的uORF → 调控主ORF翻译
内含子保留区的ORF → 新蛋白变体
4. 密码子使用偏好
核糖体在某些密码子上停留更久 → 翻译暂停
稀有密码子 → 翻译速度减慢
与tRNA丰度相关
二、Ribo-seq数据分析流程¶
2.1 数据预处理¶
# 1. 质控
fastqc RPF_sample.fq.gz # Ribo-seq数据质控
fastqc mRNA_sample.fq.gz # 配对RNA-seq质控
# 2. 去接头(Ribo-seq reads通常很短,约28-32nt)
cutadapt \
-a AGATCGGAAGAGCACACGTCT \ # 3'接头序列(根据建库方法调整)
-m 25 \ # 最小保留长度25nt
-M 35 \ # 最大保留长度35nt(RPF应该28-32nt)
-o RPF_trimmed.fq.gz \ # 输出文件
RPF_sample.fq.gz # 输入文件
# 3. 去除rRNA reads(Ribo-seq中rRNA污染通常很高)
# 建立rRNA索引
bowtie2-build rRNA_sequences.fa rRNA_index # 建rRNA索引
# 比对到rRNA,保留未比对的reads
bowtie2 \
-x rRNA_index \ # rRNA索引
-U RPF_trimmed.fq.gz \ # 输入
--un-gz RPF_norRNA.fq.gz \ # 未比对到rRNA的reads(保留)
-S /dev/null \ # 比对结果丢弃
-p 8 # 线程数
echo "去除rRNA前后reads数量比较:"
echo "去除前: $(zcat RPF_trimmed.fq.gz | wc -l) / 4"
echo "去除后: $(zcat RPF_norRNA.fq.gz | wc -l) / 4"
# 4. 比对到基因组
STAR --runThreadN 8 \
--genomeDir star_index/ \ # STAR索引
--readFilesIn RPF_norRNA.fq.gz \ # 去rRNA后的reads
--readFilesCommand zcat \ # gzip文件
--outSAMtype BAM SortedByCoordinate \ # 输出排序BAM
--outFilterMismatchNmax 2 \ # 最多允许2个错配
--outFilterMultimapNmax 1 \ # 只保留唯一比对
--alignIntronMax 20000 \ # 最大内含子长度
--outFileNamePrefix RPF_ # 前缀
samtools index RPF_Aligned.sortedByCoord.out.bam # 索引BAM
2.2 质控分析¶
# Ribo-seq特有的质控指标
library(riboWaltz) # Ribo-seq专用R包
# 读取BAM文件
reads_list <- bamtolist(
bamfolder = "bam_folder/", # BAM文件目录
annotation = annotation_df # 基因注释数据框
)
# 1. RPF长度分布(应该集中在28-32nt)
rlength_distr(reads_list,
sample = "RPF_sample",
cl = 99) # 99%置信区间
# 典型的好数据:28nt有一个明显的主峰
# 如果长度分布太散 → RNA降解或建库问题
# 2. 三核苷酸周期性(最重要的质控)
# reads应该按3nt周期分布在CDS区
metaprofile_psite(reads_list,
annotation = annotation_df,
sample = "RPF_sample",
length_filter_mode = "periodicity")
# 三核苷酸周期性来源:
# 核糖体每翻译一个密码子(3nt)前进一步
# 所以RPF reads的5'端位置应该呈3nt周期分布
# 3. P-site偏移计算
# P-site是核糖体实际翻译的位置
# 需要从RPF reads的5'端推算P-site位置
psite_offset <- psite(reads_list,
flanking = 6, # 侧翼区域
extremity = "5end") # 基于5'端计算
# 4. 基因组区域分布
# CDS区应该>80%,5'UTR和3'UTR比例较低
region_psite(reads_list,
annotation = annotation_df,
sample = "RPF_sample")
2.3 翻译效率分析¶
# 翻译效率 = RPF / mRNA
# 需要配对的Ribo-seq和RNA-seq数据
library(DESeq2)
# 准备计数矩阵
# RPF计数(来自Ribo-seq)
rpf_counts <- featureCounts(
files = "RPF_sample.bam",
annot.ext = "annotation.gtf",
isGTFAnnotationFile = TRUE,
isPairedEnd = FALSE # Ribo-seq通常是单端
)$counts
# mRNA计数(来自RNA-seq)
mrna_counts <- featureCounts(
files = "mRNA_sample.bam",
annot.ext = "annotation.gtf",
isGTFAnnotationFile = TRUE,
isPairedEnd = TRUE # RNA-seq通常是双端
)$counts
# 方法1:简单比值法
rpf_rpkm <- rpkm(rpf_counts, gene_lengths) # 计算RPF的RPKM
mrna_rpkm <- rpkm(mrna_counts, gene_lengths) # 计算mRNA的RPKM
TE <- rpf_rpkm / mrna_rpkm # 翻译效率
# 方法2:DESeq2差异翻译分析(推荐,更严格)
# 合并RPF和RNA-seq计数矩阵
count_matrix <- cbind(rpf_counts, mrna_counts) # 合并
# 创建条件信息
col_data <- data.frame(
condition = rep(c("treated", "control"), each = 4), # 实验条件
assay = rep(c("RPF", "mRNA"), times = 4), # 数据类型
row.names = colnames(count_matrix)
)
# DESeq2分析
dds <- DESeqDataSetFromMatrix(
countData = count_matrix,
colData = col_data,
design = ~ condition + assay + condition:assay # 交互项=翻译效率变化
)
dds <- DESeq(dds)
# 交互项结果就是翻译效率的差异
te_results <- results(dds, name = "conditiontreated.assayRPF")
2.4 密码子占用率分析¶
# 密码子占用率反映核糖体在每个密码子上停留的时间
library(riboWaltz)
# 计算每个密码子的P-site密度
codon_usage <- codon_usage_psite(
reads_list,
annotation = annotation_df,
sample = "RPF_sample",
fastapath = "hg38.fa" # 参考基因组(提取密码子序列)
)
# 可视化密码子占用率
# 某些密码子占用率高 = 核糖体在那里停留久 = 翻译暂停
library(ggplot2)
ggplot(codon_usage, aes(x = reorder(codon, -occupancy), y = occupancy)) +
geom_bar(stat = "identity", fill = "steelblue") + # 柱状图
labs(x = "Codon", y = "Occupancy",
title = "Codon Occupancy (Ribosome Pausing)") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, size = 6)) # 旋转标签
# 高占用率密码子通常是:
# - 稀有密码子(对应tRNA少)
# - 脯氨酸密码子(CCC, CCU等,翻译慢)
# - 起始密码子(AUG)和终止密码子附近
三、新ORF发现¶
# Ribo-seq最独特的应用:发现新的翻译事件
# 1. 使用ORFquant检测活跃翻译的ORF
# BiocManager::install("ORFquant")
library(ORFquant)
# 从Ribo-seq数据中识别翻译的ORF
orf_results <- find_orfs(
bam_file = "RPF_sample.bam", # Ribo-seq BAM
annotation = annotation_gtf, # 基因注释
genome = BSgenome.Hsapiens.UCSC.hg38, # 基因组
min_reads = 10, # 最少10条reads
min_length = 10 # 最短10个密码子
)
# 分类新发现的ORF
# uORF: 5'UTR中的上游ORF(调控主ORF翻译)
# dORF: 3'UTR中的下游ORF
# sORF: lncRNA上的小ORF(编码微肽)
# overlapping ORF: 与已知CDS重叠的ORF
# 2. 使用RibORF(另一个常用工具)
# RibORF用三核苷酸周期性和reads均匀性评分ORF的翻译活性
四、RiboToolkit和RiboSeq.Org在线分析¶
4.1 RiboToolkit¶
RiboToolkit是免费的Web工具(http://rnabioinfor.tch.harvard.edu/RiboToolkit)
适合不会编程的初学者,提供:
1. 数据预处理(去接头、去rRNA、比对)
2. RPF质控(长度分布、三核苷酸周期性)
3. 基于RPF的表达定量
4. 翻译效率分析
5. 密码子占用率分析
6. 差异翻译分析
7. 功能注释
8. 活跃翻译ORF鉴定
使用方法:
上传fastq文件 → 选择物种和参数 → 自动运行 → 下载结果
4.2 RiboSeq.Org(2025)¶
RiboSeq.Org(https://riboseq.org)是2025年NAR发布的综合平台
包含多个互联工具:
1. GWIPS-viz — 全基因组核糖体图谱可视化
2. Trips-Viz — 转录组层面的Ribo-seq可视化
3. RiboGalaxy — 数据处理(Galaxy界面)
4. RDP(RiboSeq Data Portal)— 数据门户
RDP目前收录:
- 14,840个测序文库
- 969个研究项目
- 96个物种
所有数据预处理完毕,可直接使用
4.3 RiboParser/RiboShiny(2025-2026)¶
RiboParser/RiboShiny是2025-2026年新发布的分析框架
特点:
1. 优化的P-site检测方法(基于核糖体结构和起始/终止位点)
2. 全面的质控、基因级分析、密码子级分析
3. 支持Ribo-seq变体分析
4. 适用于非模式生物
5. 比RiboToolkit更高的准确性
6. RiboShiny提供交互式可视化
常见报错与解决¶
| 报错信息 | 原因 | 解决方案 |
|---|---|---|
No triplet periodicity | RPF质量差或长度选择错误 | 检查RPF长度分布,只用28-32nt |
>50% rRNA reads | rRNA去除不彻底 | 增加rRNA过滤步骤或优化实验 |
Low CDS mapping | 大量reads在非编码区 | 检查是否有DNA污染或降解 |
P-site offset unclear | reads太少或周期性差 | 增加测序深度,确认数据质量 |
TE calculation: Inf values | mRNA counts为0 | 过滤掉mRNA低表达基因 |
featureCounts: 0 assigned | BAM和GTF版本不一致 | 确保使用相同版本的注释和基因组 |
速查表¶
# Ribo-seq分析流程
去接头(cutadapt) → 去rRNA(bowtie2) → 比对(STAR)
→ 质控(riboWaltz/RiboseQC) → P-site计算
→ 翻译效率(DESeq2) → 密码子占用率 → 新ORF发现
# 质控标准
RPF长度: 集中在28-32nt
三核苷酸周期性: CDS区有明显3nt周期
CDS比例: >80%的reads在编码区
rRNA比例: <20%(越低越好)
起始/终止密码子: 有明显的reads峰
# 核心公式
翻译效率(TE) = RPF_RPKM / mRNA_RPKM
TE > 1: 翻译活跃
TE < 1: 翻译抑制
TE ≈ 1: 翻译与转录一致
# 工具选择
初学者/无编程: RiboToolkit(Web)
全面分析: RiboSeq.Org(Web+数据库)
自定义分析: riboWaltz(R包)
差异翻译: DESeq2(交互项模型)
新ORF发现: ORFquant/RibORF
# 密码子占用率含义
高占用 = 核糖体停留久 = 翻译暂停
原因: 稀有密码子、tRNA不足、RNA结构、蛋白折叠
面试高频问题¶
Q1:Ribo-seq和RNA-seq的区别是什么?¶
答:RNA-seq测的是mRNA的丰度(转录水平),Ribo-seq测的是mRNA上核糖体的密度(翻译水平)。两者结合可以计算翻译效率(TE = RPF/mRNA)。一个基因可能转录很多mRNA但翻译很少(TE低),也可能mRNA少但翻译效率高(TE高)。已知约30-50%的基因表达调控发生在翻译水平,RNA-seq无法捕捉这部分信息。
Q2:如何判断Ribo-seq数据质量?¶
答:四个核心指标:①RPF长度分布——应集中在28-32nt,有一个主峰(通常28或29nt);②三核苷酸周期性——CDS区的reads按3nt周期分布,这是来自翻译核糖体的最直接证据;③CDS富集——>80%的reads应该mapping到编码区,5'UTR和3'UTR比例低;④起始/终止密码子信号——AUG处有reads堆积(核糖体起始暂停),终止密码子处reads下降。
Q3:什么是P-site偏移?为什么重要?¶
答:RPF的5'端位置不等于核糖体P-site(翻译活性位点)的实际位置。P-site偏移是从RPF 5'端到P-site的距离,通常12-13nt。计算P-site偏移是Ribo-seq分析的关键步骤,因为:①密码子级别的分析需要精确定位P-site;②不同长度的RPF偏移值不同;③偏移计算方法是利用起始密码子AUG处的reads堆积来校准。
Q4:翻译效率(TE)变化有什么生物学意义?¶
答:TE变化反映翻译水平的调控。TE升高(翻译上调)可能因为:上游uORF被跳过、IRES介导的翻译增强、RNA结合蛋白激活翻译。TE降低(翻译下调)可能因为:miRNA抑制、uORF激活阻断主ORF翻译、RNA二级结构阻碍核糖体进入。应激条件下(如缺氧、饥饿)很多基因的TE会发生剧烈变化——全局翻译下降但特定mRNA(如ATF4)的TE反而升高。
Q5:Ribo-seq如何发现新的翻译事件?¶
答:Ribo-seq可以发现三类传统方法找不到的翻译事件:①lncRNA上的小ORF(sORF)——编码<100个氨基酸的微肽,很多有重要生物学功能(如肌肉微肽DWORF);②5'UTR中的uORF——调控下游主ORF的翻译,uORF翻译可能产生功能性小肽或通过核糖体重启机制调控主ORF;③非典型ORF——使用非AUG起始密码子(如CUG、GUG)的翻译事件。鉴定方法是检查这些区域是否有三核苷酸周期性和足够的RPF覆盖。