第2章 环境搭建:工欲善其事,必先利其器
做数据分析,最怕什么?不是模型调参,是环境配了半天跑不起来。我刚开始接触批次效应可视化那会儿,光装一个vegan就折腾了一下午。后来痛定思痛,把流程固定下来,后面几十个项目再没因为环境卡过壳。
这一章咱们把 R 和 Python 两套环境搭好。你想想看,PCoA 在 R 里做起来顺手,UMAP 又得用 Python 的umap-learn。两套都备着,后面切来切去才不慌。
本章目标:装好R + RStudio,配好Python + Jupyter,再把四个关键包(vegan、scikit-learn、umap-learn、rgl)装到位。全程可复现。
2.1 装 R 和 RStudio
R 的安装其实没啥技术含量,但版本有坑。我个人习惯用最新稳定版——CRAN 上现在 R 4.3.x。为什么?因为很多新包已经不维护旧版了。你装个 R 3.6 的话,vegan 可能都得降级。
步骤很简单:
- 去 CRAN 下载对应操作系统的安装包。
- 双击安装,一路默认。Windows 用户记得勾上“添加到 PATH”。
- RStudio 去 posit.co 下载免费版 Desktop。
我建议:装完 R 后先跑一句 install.packages("pak")。pak 包比普通 install.packages 快三倍,还能自动处理依赖冲突。
验证安装:打开 RStudio,控制台里打 version,看到版本号就对了。
2.2 Python 与 Jupyter 环境
Python 这边我推荐直接用 Miniconda。为啥不装完整版 Anaconda?包太多,启动慢。Miniconda 轻量,要啥装啥。
安装步骤:
- 下载 Miniconda(Python 3.10+ 版本)。
- 安装时勾上“Add to PATH”。
- 打开终端 / PowerShell,跑:
conda create -n batch_effect python=3.10 -y
conda activate batch_effect
然后装 Jupyter Notebook 和核心库:
pip install jupyter notebook pandas numpy matplotlib seaborn
避坑指南:我曾经直接在 base 环境里装了一大堆包,最后依赖冲突到连 conda list 都跑不动。从那以后,每个项目建一个独立环境,干净清爽。
启动 Jupyter:
jupyter notebook
浏览器弹出后,点“New”→“Python 3”,新建一个 notebook,随便打个 import pandas,不报错就成功了。
2.3 关键包安装
下面这四个包是接下来所有章节的根基。我按“R 包”和“Python 包”分开讲。
| 包名 | 语言 | 用途 |
|---|---|---|
| vegan | R | PCoA 主函数(cmdscale)、Adonis 检验、多样本β-多样性 |
| rgl | R | 3D 交互式 PCoA 可视化(支持旋转缩放) |
| scikit-learn | Python | UMAP 降维前的预处理(StandardScaler)、PCA(用于对比) |
| umap-learn | Python | 核心 UMAP 降维函数(umap.UMAP) |
R 包安装
在 RStudio 控制台里执行:
install.packages("vegan")
install.packages("rgl")
如果网速慢,可以换个镜像:
options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
install.packages("vegan")
小窍门:rgl 包在 macOS 上可能会报 OpenGL 错误。别慌,装个 XQuartz 或者用 rgl::setupKnitr(dev="png") 临时转成静态截图。
Python 包安装
确保刚创建的 batch_effect 环境是激活状态(终端里前面有括号提示)。然后:
pip install scikit-learn umap-learn
验证:
python -c "import sklearn; import umap; print('OK')"
如果输出 "OK",万事大吉。要是报 ModuleNotFoundError,检查是否激活了正确的 conda 环境——这是最常犯的错误。
我曾经犯过的错:在系统 Python 里装了 umap-learn,结果在 Jupyter 里导入时 kernel 用的却是 conda 环境… 来回搞了半小时才意识到 kernel 没切换。解决办法:在 Jupyter 里选 kernel 的时候下拉,选 batch_effect 那个。或者直接在那个环境下装 ipykernel:python -m ipykernel install --user --name batch_effect。
2.4 环境全景图
下面这张图能帮你快速理清各组件的关系。说白了,操作系统是地基,R 和 Python 是两栋楼,各自装好自己的门窗(IDE)和家具(包)。
2.5 环境检查清单
配完环境别急着走。用下面这张表快速核对一下,确保每个环节都没问题。
| 检查项 | 命令 / 操作 | 预期结果 |
|---|---|---|
| R 版本 | version |
显示 4.3.x |
| vegan 包 | library(vegan) |
无错误,无加载信息更好 |
| conda 环境 | conda env list |
显示 batch_effect 且带 * |
| Jupyter 内核 | jupyter kernelspec list |
包含 batch_effect |
| scikit-learn | python -c "import sklearn; print(sklearn.__version__)" |
版本号 ≥ 1.2 |
| umap-learn | python -c "import umap; print(umap.__version__)" |
版本号 ≥ 0.5 |
如果你全打勾了——那恭喜,后面所有代码你都能本地跑通。如果某一步卡住了,回头检查对应节,或者直接用我准备的环境快照(后面的章节会提供)。