1. 宏基因组学概述与 R 语言基础环境搭建
1.1 宏基因组学是什么?
宏基因组学,说白了就是直接对环境样本里所有微生物的 DNA 进行测序和分析。你不需要培养任何细菌,把土壤、海水、肠道内容物拿来一抽提,就能知道里面住着哪些微生物,它们各自有多少,以及它们可能在干什么活。
我第一次接触这个领域是在一个肠道微生物项目中。当时用户问:「我们送检的粪便样本,能不能找出里面所有的细菌种类?」我一开始有点懵——传统方法只能研究少数可培养菌,而宏基因组直接扫全部 DNA,一网打尽。从那以后,我就彻底入了坑。
宏基因组分析的核心难点在于:数据量巨大、流程复杂、结果解读需要统计功底。这也是为什么我们要用 R 语言来搞定后面的丰度分析。
1.2 为什么要用 R 语言?
市面上有很多宏基因组分析工具——QIIME 2、MetaPhlAn、Kraken2 等等。但它们要么偏重物种分类,要么偏重功能注释。真正到了可视化、统计检验、个性化画图这一步,R 语言几乎是不二之选。
- 数据整理: dplyr / tidyr 清洗、合并、重塑丰度表
- 统计检验: 差异丰度分析(DESeq2 / edgeR / ANCOM-BC)
- 可视化: ggplot2 绘制堆叠柱状图、热图、PCoA、LEfSe 等效图
- 社区生态: vegan 包做 α/β 多样性、NMDS、PERMANOVA
这堂课我们就聚焦 R 语言在物种丰度数据上的实战。我不会跟你讲太多原理,直接上手敲代码。
1.3 第一章知识体系
下面这张图帮你快速建立本章的知识框架——从宏基因组概念到 R 环境搭好,然后正式进入数据实战。
1.4 R 与 RStudio 的安装
1.4.1 版本选择
我个人习惯:永远安装最新的正式版。R 每年更新一个主版本(如 4.4.x),很多包会跟着走。如果你用旧版,有可能装不上最新的 Bioconductor 包。
R-4.4.x-win.exe;macOS 用户选 R-4.4.x.pkg;Linux 用户用包管理器或者从源代码编译。RStudio 也请装最新版(目前是 2024.04.x)。
安装过程基本都是「下一步 → 下一步」。但我踩过一次坑:Windows 上如果路径含中文,R 加载某些包时会报乱码。所以请确保用户名和安装路径都是纯英文。
devtools 或 BiocManager,没 RTools 会失败。下载地址:https://cran.r-project.org/bin/windows/Rtools/
1.4.2 验证安装
打开 RStudio,在 Console 里输入以下命令:
# 检查 R 版本
version$version.string
# 检查是否可调出帮助
help(mean)
如果返回版本信息且帮助页面能弹出,恭喜,环境搞定了。
1.5 包管理——你的工具箱
宏基因组分析离不开几个核心包。我用一个项目举个例子:
- tidyverse —— 数据清洗与管道操作
- phyloseq —— 宏基因组/扩增子生态数据的统一对象
- vegan —— 多样性指数与排序
- DESeq2 / edgeR —— 差异丰度分析
- ggplot2 —— 你懂的,画图天花板
安装命令:
install.packages("tidyverse")
install.packages("vegan")
install.packages("devtools")
# Bioconductor 包
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("phyloseq")
BiocManager::install("DESeq2")
这里要提醒一下:phyloseq 依赖很多 C++ 扩展包,第一次安装可能要编译几分钟。别急,去喝杯水。如果报错,八成是缺少系统库——Linux 用户装 libgsl-dev,macOS 用户装 Xcode Command Line Tools。
1.6 设置工作目录与项目结构
我建议每个分析项目都用一个独立的 RStudio Project。这样所有路径都变成相对路径,换电脑也不用改。
步骤:
- 新建文件夹,比如
metagenome_project - 在里面创建子文件夹:
data/放原始丰度表,scripts/放 R 脚本,results/放输出图和表格 - 在 RStudio 中点击 File → New Project → Existing Directory,选中这个文件夹
完成后,Console 里输入 getwd() 应该指向你那个项目目录。
1.7 加载第一个宏基因组丰度数据
为了让你立刻上手,我们用一个模拟的物种丰度表(CSV 格式)。假设数据长这样:
# 模拟数据前几行
sample_id,Escherichia_coli,Bacteroides_fragilis,Lactobacillus_acidophilus,Clostridium_difficile
S01,1200,4500,230,890
S02,980,5200,310,760
S03,1500,3800,280,920
S04,2100,4100,190,1100
在 R 中读入:
library(tidyverse)
abundance <- read_csv("data/abundance_example.csv")
abundance
看到数据框了么?这就是我们整个课程的核心对象——行是样本,列是物种,值是丰度计数。后面的所有操作都围绕它展开。
glimpse(abundance) 快速浏览数据结构和类型;用 summary(abundance) 看丰度分布范围。我经常在第一步就用它检查有没有异常的 0 值或超大值。
1.8 避坑指南(个人经验)
- 我曾经因为 R 版本太老,装
phyloseq报了一堆链接错误。后来把所有包重新安装一遍才解决。建议你装完新 R 后,别急着装旧项目的包,先更新所有包。 - 路径问题: 如果用中文目录或文件名含有空格,read_csv 会报
cannot open file。我习惯所有文件名只含字母、数字和下划线。 - 内存问题: 宏基因组数据动辄几百 MB 甚至几 GB。32 位 R 最多用 2GB 内存。我自己在服务器上用 64 位 R,同时使用
data.table::fread()比read_csv快 5 倍以上。
1.9 本章小结
回头看,这一章其实只做了三件事:理解宏基因组数据是什么、搭好 R 环境、读入第一个丰度数据表。别小看这些基础工作——我见过太多人在环境搭建上卡一整天,后面信心全无。
你按照我上面的步骤走,顺利的话 20 分钟就能跑起来。如果遇到报错,先检查版本和路径,这是 80% 问题的根源。下一章我们将正式进入数据清洗——把丑陋的原始丰度表变成 tidy 格式。