2. 环境搭建:装好家伙才能干活

说实话,PDB 数据清洗这事,最烦人的往往不是算法问题,而是环境没搭好。我前几年帮一个课题组搭 pipeline,光 Biopython 版本冲突就折腾了小半天。后来养成了一个习惯:每次开始新项目,先统一环境,再写一行代码。今天咱们就把这事办了。

2.1 Python 版本选哪个?

我个人建议用 Python 3.9~3.12。PDB 相关的库更新不算快,太新的 Python 版本有些库还没跟上。我用 3.10 很久了,目前还没碰到不兼容的。

如果你还没装 Python,推荐直接用 Miniconda 或 Anaconda。

  • Miniconda —— 轻量,只带 conda 和 Python,剩下包自己装。
  • Anaconda —— 包大,但自带一堆科学计算库,省事。

我自己习惯用 Miniconda,干净。安装命令很简单:

# 下载 Miniconda(Linux 为例)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 一路 yes 就行

# 验证
python --version
conda --version

2.2 创建独立环境

嗯,这里要注意:千万别把项目依赖全装到 base 环境。我曾经在 base 里混装过,后来想降级某个包,结果一堆依赖崩了,场面一度很尴尬。

建一个专门的 PDB 环境:

conda create -n pdb_env python=3.10 -y
conda activate pdb_env

环境名你随意,我一般用 pdb_env 或 pdb_clean。

2.3 安装 Biopython

Biopython 是处理 PDB 文件的核心库。安装很简单:

conda install -c conda-forge biopython -y

或者用 pip:

pip install biopython

我个人偏爱 conda,因为它会帮忙处理底层依赖(比如 numpy、pandas)。用 pip 有时会遇到编译问题,尤其是 Windows 上。

避坑小贴士: 安装完运行 python -c "import Bio; print(Bio.__version__)" 确认版本。1.79 以上都 OK。

2.4 安装 pypdb

pypdb 这个库可以帮我们从 RCSB PDB 数据库直接下载和查询结构数据。虽然也能用 Biopython 的 PDBList,但 pypdb 的查询接口更方便。

pip install pypdb

为什么不用 conda?因为 pypdb 在 conda-forge 里更新比较慢,pip 版本通常是最新的。

注意: pypdb 基于旧版 RCSB API,部分功能可能已弃用。如果你需要更稳定的下载,建议还是用 Biopython 的 PDBList。我一般在需要批量按条件查询 ID 时才用 pypdb。

2.5 安装 pdb-tools

pdb-tools 是一套小而美的命令行工具,做格式转换、链提取、残基筛选特别方便。尤其适合写 shell 脚本时调用。

pip install pdb-tools

装好后试试:

# 查看所有可用工具
pdb_validate -h

如果你看到一大串子命令列表,就说明装好了。常用工具包括:

工具名 功能
pdb_selchain 提取指定链
pdb_delhetatm 删除非标准残基/水分子
pdb_tidy 修正格式、排序原子
pdb_reatom 重新编号原子
pdb_selres 按残基范围选择

这些工具我几乎每个项目都会用到。举个例子:清洗一个含多条链的 PDB,我只想保留链 A:

pdb_selchain -A input.pdb > output.pdb

2.6 其他可能用到的库

下面这些不是必须的,但我建议一并装上,后面预处理时能省不少事:

pip install numpy pandas matplotlib seaborn scipy
  • numpy —— 做坐标矩阵运算的基石。
  • pandas —— 存残基信息、原子属性时特别好用。
  • matplotlib / seaborn —— 画分布图、PDB 统计图。
核心原则: 所有依赖锁在一个环境里。项目结束后导出 environment.yml,下次直接复现,省心。

2.7 验证安装

跑一个简单的脚本,看看各个库能不能正常调用:

python <

输出版本信息就证明环境搭好了。如果有报错,多半是版本冲突或 Python 版本不对。我建议直接用 conda 重装一遍,比自己瞎调试快。

2.8 环境搭建流程总览

下面这张图展示了从零到能干活的核心步骤:

环境搭建知识结构图 Python 3.10 ~ 3.12 Miniconda 环境 Biopython pypdb pdb-tools numpy / pandas matplotlib / seaborn 验证脚本 💡 推荐安装顺序 Python → conda 环境 → Biopython / pypdb / pdb-tools → 辅助库 → 验证

2.9 别忘了加个 .gitignore

如果你用 git 管理项目,建议把 conda 环境目录(比如 envs/)或虚拟环境目录排除掉。我有个习惯,在项目根目录放一个 environment.yml,队友直接 conda env create -f environment.yml 就能干活,不用再一个个装。

conda env export > environment.yml

导出时最好去掉 prefix 行(路径),否则换台机器会报错。手动删掉最后一行即可。

好了,环境搭建说完了。装好这些,咱们就可以正式上手 PDB 数据清洗了。记住,一个干净的环境能帮你省下至少半天排查时间。你想想看,如果把时间花在解决“ModuleNotFoundError”上,多亏啊。