跳转至

Reactome通路数据库

一句话概述:Reactome是经过人工审核的开放获取通路数据库,以反应(reaction)为核心单元组织生物学通路,涵盖代谢、信号转导、免疫等过程,是KEGG之外最重要的通路数据库。

核心知识点速查表

概念说明
Reactome人工审核的通路数据库(白话:专家手动整理的"反应路线图")
ReactionReactome的基本单位,描述一个具体的生化反应
Pathway一组相关反应的集合
人工审核每条通路都经专家审查,比自动化数据库更可靠
ReactomePAR语言Reactome富集分析包
物种覆盖主要基于人类数据,通过直系同源推广到其他物种

一、Reactome与KEGG对比

特性ReactomeKEGG
数据审核人工审核部分自动化
开放获取完全免费开放学术免费,商业收费
更新频率每季度持续更新
核心单位反应(Reaction)通路(Pathway)
物种覆盖人类为主,推广到其他物种广泛覆盖各物种
适用场景人类/模式动物研究所有物种,尤其非模式生物

二、在线使用Reactome

# === Reactome在线分析 ===
# 访问: https://reactome.org/PathwayBrowser/
# 1. 点击"Analyze Data"
# 2. 输入基因列表(HGNC symbol或UniProt ID)
# 3. 选择分析类型:
#    - Over-representation analysis(富集分析)
#    - Expression analysis(表达分析,需要表达值)
# 4. 点击"Submit"
# 5. 结果显示在通路浏览器中,可交互浏览

三、R语言ReactomePA分析

# === 安装ReactomePA ===
if (!requireNamespace("BiocManager", quietly=TRUE))
    install.packages("BiocManager")
BiocManager::install("ReactomePA")

# === Reactome ORA富集分析 ===
library(ReactomePA)

# 准备差异基因(需要ENTREZID)
gene_list <- c("7157", "675", "672", "5925", "4609")   # 示例

# 富集分析
reactome_enrich <- enrichPathway(
  gene = gene_list,              # 差异基因列表
  organism = "human",             # 物种(human/rat/mouse/celegans/yeast/zebrafish/fly)
  pAdjustMethod = "BH",           # 多重检验校正
  pvalueCutoff = 0.05,            # p值阈值
  readable = TRUE                  # 将ENTREZID转为基因符号(便于阅读)
)

# 查看结果
head(as.data.frame(reactome_enrich))

# 可视化
dotplot(reactome_enrich, showCategory=15)       # 点图
barplot(reactome_enrich, showCategory=15)       # 柱状图
cnetplot(reactome_enrich, showCategory=5)       # 基因-通路网络图
emapplot(pairwise_termsim(reactome_enrich))     # 通路相似性网络
# === Reactome GSEA ===
# 准备排序的基因列表
geneList <- sort(gene_rank$logFC, decreasing=TRUE)
names(geneList) <- gene_rank$ENTREZID

# GSEA分析
gsea_reactome <- gsePathway(
  geneList = geneList,            # 排序的基因列表
  organism = "human",              # 物种
  pAdjustMethod = "BH",            # FDR校正
  pvalueCutoff = 0.05              # 阈值
)

# 可视化
gseaplot2(gsea_reactome, geneSetID=1:3)    # GSEA曲线
viewPathway(
  "Cell Cycle",                     # 通路名称
  readable=TRUE,                    # 显示基因符号
  foldChange=geneList               # 表达值着色
)

四、Reactome API使用

# === Python调用Reactome API ===
import requests
import json

# 基因列表富集分析
genes = ["TP53", "BRCA1", "BRCA2", "RB1", "MYC"]   # 基因列表
url = "https://reactome.org/AnalysisService/identifiers/projection"   # API端点

# 提交分析
response = requests.post(
    url,
    headers={"Content-Type": "text/plain"},
    data="\n".join(genes)                             # 基因列表,换行分隔
)

result = response.json()                              # 解析JSON结果
token = result["summary"]["token"]                    # 获取分析token

# 查看富集的通路
for pathway in result["pathways"][:10]:               # 前10条通路
    print(f"{pathway['name']}: p={pathway['entities']['pValue']:.2e}, "
          f"FDR={pathway['entities']['fdr']:.2e}")

# 下载结果
# 用token下载完整结果
download_url = f"https://reactome.org/AnalysisService/download/{token}/pathways/TOTAL/result.csv"
# === 命令行调用Reactome API ===
# 基因列表富集分析
curl -X POST "https://reactome.org/AnalysisService/identifiers/projection" \
    -H "Content-Type: text/plain" \
    -d "TP53
BRCA1
BRCA2
RB1" | python3 -m json.tool | head -50

五、面试高频考点

Q1: 为什么同时用Reactome和KEGG?

  • Reactome人工审核,更可靠,但主要覆盖人类/模式动物
  • KEGG覆盖物种更广,适合非模式生物
  • 两个数据库通路定义不同,互相补充
  • 发表文章时两者结果互相验证更有说服力

Q2: Reactome的独特优势?

  1. 完全开放:学术和商业都免费
  2. 人工审核:每条通路都经过专家验证
  3. 反应粒度:以单个反应为基本单位,比KEGG更精细
  4. 可视化好:交互式通路浏览器,支持叠加实验数据

常见报错与解决

报错原因解决方案
No enrichment基因ID不匹配确保使用ENTREZID
API timeout网络不稳定重试或使用R包本地分析
Species not supported物种不在支持列表用人类同源基因做分析
ReactomePA安装失败Bioconductor版本不对更新R和BiocManager

速查表

# === Reactome分析速查 ===
library(ReactomePA)

# ORA富集
rpa <- enrichPathway(gene=gene_list, organism="human", readable=TRUE)
dotplot(rpa, showCategory=15)

# GSEA
gsea_rpa <- gsePathway(geneList=sorted_genes, organism="human")
gseaplot2(gsea_rpa, geneSetID=1:3)

# 通路可视化
viewPathway("Cell Cycle", readable=TRUE, foldChange=geneList)

# 支持物种: human, rat, mouse, celegans, yeast, zebrafish, fly