第2章:开发环境搭建——R与Python环境配置,关键工具包安装

好,咱们直接进入实操环节。搭建开发环境这事,看着琐碎,但要是第一步没走对,后面 debug 能让你怀疑人生。我个人习惯是把 R 和 Python 都配好,因为 RNA-seq 分析里,两者各有千秋,谁也替不了谁。

你想想看,R 这边有 Bioconductor,处理表达矩阵、差异分析简直不要太顺手;Python 那边呢?深度学习框架几乎全是它的天下。所以,咱们这节课,两边都得准备好。

2.1 R 环境配置:从源码到包管理器

第一步:安装 R 基础环境

别用系统自带的包管理器直接装,版本太老。我建议去 CRAN 下载对应你操作系统的二进制文件。Windows 用户记得选 base,macOS 用户挑那个 .pkg 文件。Linux 用户麻烦点,得加 CRAN 的 apt 源。

个人技巧: 安装路径不要有中文或空格。我以前踩过这个坑,某些 R 包在编译时识别不了带中文字符的路径,直接报错。

第二步:安装 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
GPU 版本注意: 装 PyTorch 前先确认你的 CUDA 版本。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 环境配置总览

下面这张图展示了我们今天搭建的两套环境,以及各自负责的核心任务。方便你后面回顾:

肿瘤亚型分类 RNA-seq 特征学习开发环境总览 R 环境 R 4.x + RStudio BiocManager DESeq2 / edgeR / limma clusterProfiler / enrichR ggplot2 / pheatmap Python 环境 Python 3.9 + Conda 虚拟环境 NumPy / Pandas / Matplotlib scikit-learn / scanpy PyTorch / TensorFlow rpy2 / anndata 两者通过共享文件系统或 rpy2 互调接口协同工作

这个图可以看作你整个课程的数字工具箱。左侧 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,直接崩了…从那以后我养成了先小批量调试的习惯。