第2章:开发环境搭建——R与Python环境配置,关键工具包安装
好,咱们直接进入实操环节。搭建开发环境这事,看着琐碎,但要是第一步没走对,后面 debug 能让你怀疑人生。我个人习惯是把 R 和 Python 都配好,因为 RNA-seq 分析里,两者各有千秋,谁也替不了谁。
你想想看,R 这边有 Bioconductor,处理表达矩阵、差异分析简直不要太顺手;Python 那边呢?深度学习框架几乎全是它的天下。所以,咱们这节课,两边都得准备好。
2.1 R 环境配置:从源码到包管理器
第一步:安装 R 基础环境
别用系统自带的包管理器直接装,版本太老。我建议去 CRAN 下载对应你操作系统的二进制文件。Windows 用户记得选 base,macOS 用户挑那个 .pkg 文件。Linux 用户麻烦点,得加 CRAN 的 apt 源。
第二步:安装 RStudio(强烈推荐)
直接装最新的 RStudio Desktop 免费版就行。它把控制台、脚本编辑器、文件浏览器、绘图窗口集成在一起,做交互分析特别方便。
第三步:配置国内镜像(加速下载)
这一步你不做,后面装包会等到怀疑人生。启动 R 或 RStudio,输入以下命令设置镜像:
# 设置清华镜像
options("repos" = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
# 设置 Bioconductor 镜像(可选)
options(BioC_mirror = "https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
2.2 R 关键工具包安装
RNA-seq 分析绕不开 Bioconductor。咱们按模块来装,避免一次性装太多导致依赖冲突。
核心包:BiocManager 与基础分析包
# 安装包管理器
install.packages("BiocManager")
# 通过 BiocManager 安装核心包
BiocManager::install(c(
"DESeq2", # 差异表达分析
"edgeR", # 另一种差异分析
"limma", # 线性模型分析
"clusterProfiler", # 富集分析
"org.Hs.eg.db", # 人类基因注释
"ggplot2", # 可视化
"pheatmap" # 热图
))
a(全部更新),避免后面出现版本不兼容。就算这样,也偶尔会遇到装一半卡住的情况,直接关掉 R 会话重试就好,R 的依赖解析很成熟,不会留下垃圾。
我常用的调试命令:
# 检查包是否加载成功
library(DESeq2)
# 查看包版本
packageVersion("DESeq2")
# 查看包的依赖树
tools::package_dependencies("DESeq2", recursive = TRUE)
2.3 Python 环境配置:虚拟环境是救星
Python 这边,核心是隔离。你以后的项目会用到不同版本的 TensorFlow、PyTorch、scikit-learn,全混在 base 环境里迟早炸锅。我推荐用 Anaconda 或 Miniconda 来管理环境。
第一步:安装 Miniconda
Anaconda 太大,很多包你用不上。Miniconda 轻量,只有 conda 和 Python,够了。
# 下载 Miniconda 安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 运行安装(一路 yes)
bash Miniconda3-latest-Linux-x86_64.sh
Windows 用户直接去官网下载 .exe 安装包,安装时注意勾选“Add to PATH”。
第二步:创建项目专用环境
# 创建环境,指定 Python 3.9(RNA-seq 常用版本)
conda create -n rnaseq python=3.9
# 激活环境
conda activate rnaseq
rnaseq,清晰明了。我之前犯过懒,把所有包都装在 base 环境里,结果某次升级 pandas 把另一个项目的依赖打破了…从那以后,我坚决隔离。
2.4 Python 关键工具包安装
激活环境后,用 pip 安装,速度比 conda 快(但 conda 在解决依赖冲突上更强)。我一般混着用:能用 conda 装的用 conda,没有的再用 pip。
数据处理与机器学习包
# conda 安装
conda install numpy pandas scikit-learn matplotlib seaborn -y
# pip 安装(conda 源里没有的)
pip install scanpy # 单细胞分析(有时也用于 bulk RNA-seq)
pip install anndata # 高效存储矩阵
pip install rpy2 # R 与 Python 互调接口
深度学习框架(按需选一个)
# PyTorch(推荐,社区活跃)
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
# 或 TensorFlow(更工业级)
pip install tensorflow
nvidia-smi 查看驱动支持的 CUDA 版本,然后去 PyTorch 官网选对应的命令。我见过很多同学装错了版本,跑模型时只能用 CPU,白瞎了好显卡。
2.5 开发环境验证
装完不是万事大吉,得跑个小 demo 确认环境通不通。
R 端验证:加载并测试 DESeq2
library(DESeq2)
# 如果能正常加载不报错,说明 R 环境配置成功
cat("R 环境配置完成!\n")
Python 端验证:导入核心库并打印版本
import numpy as np
import pandas as pd
import sklearn
import torch
print(f"NumPy: {np.__version__}")
print(f"Pandas: {pd.__version__}")
print(f"scikit-learn: {sklearn.__version__}")
print(f"PyTorch: {torch.__version__}")
# 检测 GPU 是否可用
if torch.cuda.is_available():
print("GPU 可用!具体设备:", torch.cuda.get_device_name(0))
else:
print("GPU 不可用,将使用 CPU 进行训练。")
2.6 环境配置总览
下面这张图展示了我们今天搭建的两套环境,以及各自负责的核心任务。方便你后面回顾:
这个图可以看作你整个课程的数字工具箱。左侧 R 环境专注差异表达和生物学注释,右侧 Python 环境负责特征工程和分类模型。两个环境通过共享数据文件(比如 CSV、HDF5)或者 rpy2 库互相调用,在后面的课程中我们会反复使用这种混合工作流。
2.7 常用工具速查表
我把本章涉及的关键包整理成了表格,方便你后面安装时快速对照:
| 工具/包 | 版本要求 | 安装命令 | 用途 |
|---|---|---|---|
| R | ≥ 4.2 | CRAN 下载安装 | 统计计算基础 |
| RStudio | 最新版 | 官网下载 | R 集成开发环境 |
| BiocManager | ≥ 1.30 | install.packages("BiocManager") |
Bioconductor 包管理器 |
| DESeq2 | ≥ 1.36 | BiocManager::install("DESeq2") |
差异表达分析 |
| Python | 3.9 | conda 创建环境 | 深度学习与机器学习 |
| scikit-learn | ≥ 1.0 | conda install scikit-learn |
分类、降维、聚类 |
| PyTorch | ≥ 1.12 | conda install pytorch -c pytorch |
深度神经网络 |
2.8 避坑指南
- 安装包时网络断了: 我建议用国内镜像重试。R 的
install.packages加repos参数;conda 用-c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/。 - R 包依赖冲突: 用
BiocManager::valid()检查冲突,然后BiocManager::install(ask=FALSE)强制更新。嗯,这里要注意,强制更新可能会破坏其他项目,所以最好在干净的环境里操作。 - Python 路径混乱: 确认你激活了正确的 conda 环境。用
which python(Linux/macOS)或where python(Windows)查看当前指向的是否是对应环境的 Python。 - GPU 显存不足: 训练时先用小批量测试。比如
batch_size=16,逐步增加,避免 OOM。我以前跑一个 100G 的表达矩阵时,忘记减小 batch size,直接崩了…从那以后我养成了先小批量调试的习惯。