跳转至

Bioconductor R 生信包

一句话概述:Bioconductor 是 R 语言的生物信息学包仓库,收录 2200+ 个分析包,覆盖基因表达、变异注释、通路分析等,是 RNA-seq 差异分析(DESeq2、edgeR)的标准平台。

核心知识点

概念白话解释
BiocManager包管理器 = 安装/更新 Bioconductor 包的工具
SummarizedExperiment标准数据结构 = 存储表达矩阵 + 样本信息 + 基因信息
GRanges基因组区间 = 表示染色体上的位置(chr1:100-200)
Biostrings序列操作 = 处理 DNA/RNA/蛋白质序列的包
AnnotationHub注释中心 = 获取基因注释数据的统一接口

安装配置

# 安装 BiocManager
install.packages("BiocManager")                     # 安装包管理器

# 安装 Bioconductor 核心包
BiocManager::install()                               # 安装/更新核心包

# 安装特定包
BiocManager::install("DESeq2")                       # 差异表达分析
BiocManager::install("edgeR")                        # 差异表达分析
BiocManager::install("clusterProfiler")              # 富集分析
BiocManager::install("GenomicRanges")                # 基因组区间

# 批量安装
BiocManager::install(c(
  "DESeq2", "edgeR", "limma",                       # 差异分析
  "clusterProfiler", "enrichplot", "DOSE",           # 富集分析
  "GenomicRanges", "Biostrings", "BSgenome"          # 基因组操作
))

# 查看版本
BiocManager::version()                               # Bioconductor 版本
packageVersion("DESeq2")                             # 包版本

基本使用

DESeq2 差异表达分析

library(DESeq2)                                      # 加载 DESeq2

# 准备数据
count_matrix <- read.csv("counts.csv", row.names = 1)  # 读取计数矩阵
col_data <- data.frame(
  condition = factor(c("control", "control", "treat", "treat")),
  row.names = colnames(count_matrix)                  # 样本信息
)

# 创建 DESeq 对象
dds <- DESeqDataSetFromMatrix(
  countData = count_matrix,                           # 表达矩阵
  colData = col_data,                                 # 样本信息
  design = ~ condition                                # 实验设计(按条件分组)
)

# 运行差异分析
dds <- DESeq(dds)                                     # 一步完成标准化+检验
res <- results(dds, contrast = c("condition", "treat", "control"))  # 提取结果

# 筛选显著基因
sig_genes <- subset(res, padj < 0.05 & abs(log2FoldChange) > 1)
print(paste("显著差异基因数:", nrow(sig_genes)))      # 打印数量

# 火山图
plotMA(res, ylim = c(-5, 5))                          # MA 图

clusterProfiler 富集分析

library(clusterProfiler)                              # 加载包
library(org.Hs.eg.db)                                 # 人类注释数据库

# 提取差异基因列表
gene_list <- rownames(sig_genes)                      # 基因名列表

# GO 富集分析
go_result <- enrichGO(
  gene = gene_list,                                   # 差异基因
  OrgDb = org.Hs.eg.db,                              # 注释数据库
  keyType = "SYMBOL",                                 # 基因名类型
  ont = "BP",                                         # BP=生物过程
  pAdjustMethod = "BH",                               # 校正方法
  pvalueCutoff = 0.05                                 # P 值阈值
)

# KEGG 通路分析
kegg_result <- enrichKEGG(
  gene = gene_ids,                                    # Entrez ID
  organism = "hsa",                                   # 人类
  pvalueCutoff = 0.05
)

# 可视化
dotplot(go_result, showCategory = 20)                 # 点图
barplot(go_result, showCategory = 15)                 # 条形图

高级用法

GenomicRanges 区间操作

library(GenomicRanges)                                # 加载包

# 创建基因组区间
gr <- GRanges(
  seqnames = c("chr1", "chr1", "chr2"),              # 染色体
  ranges = IRanges(start = c(100, 200, 300),         # 起始位置
                   end = c(150, 250, 400)),           # 终止位置
  strand = c("+", "-", "+")                           # 链方向
)

# 区间操作
findOverlaps(gr, peaks)                               # 找重叠区间
reduce(gr)                                            # 合并重叠区间
subsetByOverlaps(gr, promoters)                       # 按重叠筛选

常见报错

报错信息原因解决方法
package not availableR 版本不兼容升级 R 或用 BiocManager::install()
no method for coercing数据类型错误检查输入是否为 matrix/data.frame
dispersion estimate failed样本太少或差异太小至少需要 2 个生物学重复
organism not supported物种注释包未安装安装对应的 org.*.db

速查表

# === 安装 ===
BiocManager::install("包名")              # 安装
BiocManager::valid()                       # 检查更新

# === 常用包 ===
# 差异分析: DESeq2, edgeR, limma
# 富集分析: clusterProfiler, DOSE, enrichplot, fgsea
# 基因组: GenomicRanges, Biostrings, rtracklayer
# 注释: org.Hs.eg.db, AnnotationHub, biomaRt
# 可视化: ComplexHeatmap, EnhancedVolcano
# 单细胞: Seurat(CRAN), SingleCellExperiment, scran

# === DESeq2 核心流程 ===
# 1. DESeqDataSetFromMatrix() → 创建对象
# 2. DESeq()                  → 运行分析
# 3. results()                → 提取结果
# 4. plotMA() / plotVolcano()  → 可视化

参考:Bioconductor | DESeq2 | 更新于 2026 年