欢迎关注我的博客:Blockbuster-drug 的CSDN 博客主页
专栏推荐:多肽性质预测系列 蛋白结构预测 蛋白生成多肽设计
环肽设计最大的痛:明明靶点亲和力很漂亮,一测细胞活性——进不去。
这不是你的分子"不够好",而是传统的单构象预测方法,本质上看了一张证件照就去判断一个人的运动能力。
2026年7月发表于JCIMD的EnsembleCycPerm,用"水相+氯仿两相构象系综"来模拟环肽的分子变色龙效应——让AI同时读取环肽在水里和在膜里的构象变化,从而更准确地预测膜渗透性。
论文: Wen S, Wang Y, Qian Y. EnsembleCycPerm: Interpretable Modeling of Cyclic Peptide Permeability through Solvent-Dependent Conformational Ensembles.J. Chem. Inf. Model.2026, 66, 8123. doi:10.1021/acs.jcim.6c01213
GitHub: GitHub - wsicheng739/EnsembleCycPerm: EnsembleCycPerm is a model for predicting cyclic peptide permeability · GitHub(CC BY-NC 4.0)
一、环肽为什么"难穿膜"?从单构象到构象系综
1.1 直觉盲区:成环 ≠ 固定
很多人对环肽有一个直觉误区:都已经成环了,结构应该比较固定,那找一个最低能量构象、算一下它的极性表面积和疏水性,不就能判断通透性了吗?
真相恰恰相反——同一条环肽在水里和靠近细胞膜时,可能采取完全不同的构象:
- 水相中:暴露极性基团,维持溶解
- 膜环境中:分子内形成氢键,把极性表面"藏"起来
这就是环肽领域所说的"分子变色龙效应"(molecular chameleon)。环孢素A是经典范例:它并不是依赖一个固定构象穿膜,而是能访问多种开放、半开放和闭合状态,随环境重新调整构象分布。
1.2 核心洞察:ΔPSA3D 比绝对值重要
EnsembleCycPerm 最核心的发现是:
决定环肽能否穿膜的关键,不是 PSA3D 的绝对值,而是它在水→氯仿环境变化中 PSA3D 的改变量(ΔPSA3D)——即分子在不同环境中"收起极性"的能力。
通过 SHAP 分析,研究者发现ΔPSA3D(水相 3D PSA − 氯仿 3D PSA)是对预测贡献最大的单个特征。模型不是简单地"喜欢低 PSA",而是在评估一条环肽是否具备极性屏蔽的动态能力。
二、模型架构:三股信息流融合
EnsembleCycPerm 不是端到端的单一模型,而是多条支路融合:
┌─────────────────────┐ │ 环肽序列 (token) │──→ Transformer (循环不变编码) └─────────────────────┘ │ ┌─────────────────────┐ │ │ 5个水相构象 (3D) │──→ GNN encoder ──┤ │ 5个氯仿构象 (3D) │──→ GNN encoder ──┤──→ MLP ──→ PAMPA logP └─────────────────────┘ │ │ ┌─────────────────────┐ │ │ 19个2D描述符 │───────┘ │ + 两相Δ特征 │ └─────────────────────┘三个关键设计:
循环不变 Transformer:环肽是头尾相连的,
ABCDEF和DEFABC对同一个环应等价。模型通过汇总不同循环排列来解决。带"温度参数"的构象加权 GNN:每条环肽在每种溶剂中有5个代表性构象(开放→中间→闭合),模型不是简单取平均,而是学习可训练的温度参数来决定各构象的重要性。
Δ描述符:ΔPSA3D、ΔRg、ΔIMHB、ΔSASA——这些"跨环境变化量"捕获了分子变色龙效应的核心物理。
三、性能一览
3.1 独立测试集(PAMPA,n=675)
| 指标 | 值 |
|---|---|
| RMSE | 0.398 |
| MAE | 0.290 |
| Pearson R | 0.845 |
| Spearman R | 0.822 |
| R² | 0.702 |
3.2 统一基线对比(同数据集+同划分)
| 模型 | RMSE | MAE | Pearson R | R² |
|---|---|---|---|---|
| SVM | 0.47 | 0.34 | 0.77 | 0.59 |
| MLP | 0.52 | 0.37 | 0.72 | 0.49 |
| CPMP | 0.46 | 0.34 | 0.78 | 0.60 |
| MSF-CPMP | 0.61 | 0.46 | 0.58 | 0.26 |
| MultiCycPermea | 0.52 | 0.39 | 0.73 | 0.48 |
| EnsembleCycPerm | 0.40 | 0.29 | 0.84 | 0.70 |
3.3 Scaffold 划分(更严格)
| 指标 | 值 |
|---|---|
| MAE | 0.341 |
| Pearson R | 0.676 |
虽然没有随机划分那么亮眼,但 scaffold split 下 R > 0.65 在环肽领域属于相当稳健的水平。
3.4 迁移学习到其他 ADMET 任务
冻结编码器,只训练预测头:
| 任务 | Pearson R |
|---|---|
| Caco-2 | 0.85 ± 0.02 |
| RRCK | 0.81 ± 0.02 |
| MDCK | 0.81 ± 0.07 |
| 水溶解度 | 0.66 ± 0.07 |
Caco-2 保持了高相关性,说明模型学到的不只是 PAMPA 数据中的疏水规律,而是跨任务的环肽构象特征。
3.5 最有实际价值的指标:单残基替换 ΔPAMPA
对于只差一个氨基酸的类似物对(|ΔPAMPA| ≥ 0.3),模型能做到:
- 84.0%的变化方向一致率
- Pearson Δ = 0.790
- Spearman Δ = 0.766
在全数据集中(2,643 对单残基类似物,训练+测试),方向一致率达到90.9%。
这比绝对数值预测更有价值:在 lead optimization 阶段,你最关心的往往不是"这个分子的 logP 到底是多少",而是**"把 Bn-Gly 换成 Et-Phe,通透性能不能提高?"**。
四、本地部署
4.1 硬件要求
- 操作系统:Linux(
model.so编译平台) - 内存:≥8 GB(加载图缓存 ~300MB)
- GPU:可选(CPU 推理也够快)
4.2 克隆仓库
git clone https://github.com/wsicheng739/EnsembleCycPerm.git cd EnsembleCycPerm仓库大小约 183MB(含 41MBcache.tar.gz),clone 后先解压:
tar -xzvf cache.tar.gz -C .解压后生成:
cache/graph_extreme5/— 675 个预计算图文件(.pt)cache/data/peptide_features_model_aligned.csv— 特征表
4.3 创建 Conda 环境
# 创建 Python 3.11 环境 conda create -n admet_infer python=3.11 -y这一步很快,几十秒搞定,生成一个干净的 Python 3.11 环境。不要被Channel "nvidia"的 warning 吓到——那是 nvidia 频道即将迁移的提示,不影响使用。
Executing transaction: done # # To activate this environment, use # $ conda activate admet_infer # # To deactivate an active environment, use # $ conda deactivate4.4 安装依赖包(含踩坑实录)
# 用清华镜像加速(教育网/国内必加,否则 PyTorch 下载很慢) conda activate admet_infer pip install torch numpy pandas scikit-learn tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple下载内容一览(~1.1 GB,耗时约 8 分钟 @ 1.8 MB/s):
| 包名 | 大小 | 说明 |
|---|---|---|
torch-2.13.0 | 526.6 MB | PyTorch 主包 |
nvidia-cudnn-cu13 | 366.2 MB | cuDNN 深度神经网络加速 |
nvidia-cusparselt-cu13 | 170.1 MB | cuSPARSELt 稀疏矩阵 |
cuda-bindings-13.3.1 | 6.7 MB | CUDA Python 绑定 |
pandas-3.0.5 | 11.3 MB | 数据处理 |
scikit-learn-1.9.0 | 9.3 MB | 评估指标 |
scipy-1.17.1 | 35.3 MB | 科学计算 |
sympy-1.14.0 | 6.3 MB | 符号数学(torch 依赖) |
| 其他小包 | ~10 MB | networkx, joblib, tqdm 等 |
⏱ 实际耗时:清华镜像 ~8 分钟。如果不加镜像直接用 pypi.org,torch 的小水管下载可能跑 20+ 分钟。
安装完成后的输出(截取关键行):
Successfully installed cuda-bindings-13.3.1 cuda-pathfinder-1.6.0 cuda-toolkit-13.0.3.0 joblib-1.5.3 mpmath-1.3.0 narwhals-2.24.0 networkx-3.6.1 nvidia-cublas-13.1.1.3 nvidia-cuda-cupti-13.0.85 nvidia-cuda-nvrtc-13.0.88 nvidia-cuda-runtime-13.0.96 nvidia-cudnn-cu13-9.20.0.48 nvidia-cufft-12.0.0.61 nvidia-cufile-1.15.1.6 nvidia-curand-10.4.0.35 nvidia-cusolver-12.0.4.66 nvidia-cusparse-12.6.3.3 nvidia-cusparselt-cu13-0.8.1 nvidia-nccl-cu13-2.29.7 nvidia-nvjitlink-13.3.33 nvidia-nvshmem-cu13-3.4.5 nvidia-nvtx-13.0.85 pandas-3.0.5 scikit-learn-1.9.0 scipy-1.17.1 sympy-1.14.0 threadpoolctl-3.6.0 torch-2.13.0 triton-3.7.1⚠️ 重要踩坑 #1:如果
pip install输出Requirement already satisfied: numpy in ./.hermes/...——这说明 numpy/pandas 被装到了系统其他 Python 路径而非 conda 环境!实测在 Hermes Desktop 终端里,pip默认会受PYTHONPATH影响。修复方法:用 conda 环境的绝对路径 pip 安装:pip install --force-reinstall \ numpy pandas scikit-learn tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple
⚠️ 重要踩坑 #2:运行时报
ModuleNotFoundError: No module named 'typing_extensions'。PyTorch 依赖typing-extensions,但它也被装到了别的路径。修复:pip install typing-extensions \ -i https://pypi.tuna.tsinghua.edu.cn/simple
4.5 验证 GPU 可用性
$ python -c \ "import torch; print('torch', torch.__version__); print('CUDA:', torch.cuda.is_available())" torch 2.13.0+cu130 CUDA available: True本机配置:RTX 3060 12GB + CUDA 12.4 + PyTorch 2.13 (cu130)。PyTorch 2.13 的 cu130 在 CUDA 12.4 驱动上可以正常工作(向前兼容)。
如果输出
CUDA: False,说明你的 PyTorch 装的是 CPU 版。重新装 CUDA 版:pip uninstall torch -y pip install torch --index-url https://download.pytorch.org/whl/cu130
4.6 验证安装——跑测试
cd ~/EnsembleCycPerm/ # 注意在仓库根目录运行(脚本里用相对路径读配置文件) python best_model_test.py⚠️ 踩坑 #3:必须
cd到仓库根目录。best_model_test.py用Path("./dataset/...")这种相对路径读取数据,如果在其他目录跑会报FileNotFoundError。
4.7 关键文件说明
| 文件 | 大小 | 说明 |
|---|---|---|
model/model.so | 288 KB | 编译后的 PyTorch 模型(保护 IP,不可读源码) |
model/__init__.py | 88 B | 接口暴露:Model, EnsembleDataset, collate 等 |
checkpoints/best_model_random.pt | 3.4 MB | 随机划分最佳模型权重 |
checkpoints/best_model_*.pt(×10) | 3.4 MB | 10 折交叉验证各折权重 |
model_settings.json | 7.4 KB | 模型配置+标准化统计量+单体词典 |
dataset/CycPeptMPDB_Peptide_All.csv | 19 MB | 环肽序列+元数据 |
dataset/CycPeptMPDB_Monomer_All.csv | 913 KB | 单体(氨基酸)词典 |
dataset/final_training/ | — | 训练/验证/测试集划分 |
cache.tar.gz | 41 MB | 预计算构象图(需解压) |
五、实战体验
5.1 单模型推理(GPU 实测)
$ cd ~/EnsembleCycPerm/ $ python best_model_test.py实际输出(12GB GPU, PyTorch 2.13+cu130, ~3 秒完成):
best_model_test.py:60: UserWarning: enable_nested_tensor is True, but self.use_nested_tensor is False because encoder_layer.norm_first was True ---------------------------------------------------------------------- Using cuda ---------------------------------------------------------------------- === TEST EVALUATION === [LOAD] checkpoints/best_model_random.pt ========== TEST RESULTS ========== n = 675 RMSE = 0.3976 MAE = 0.2898 R = 0.8448 R² = 0.7016那个
UserWarning可以忽略——是 PyTorch 2.13 对norm_first=True时的嵌套张量兼容性提示,不影响推理结果。实测 GPU 推理 675 个分子 ~3 秒;CPU 约 30 秒。都很快。
5.2 10 折交叉验证(CV)
交叉验证(Cross Validation)是把数据集分成 10 等份,每次拿 9 份训练、1 份测试,轮换 10 遍取平均。目的:防止"运气好"的单次划分误导结论。10 折标准差越小 = 模型越稳健。
$ python cv_ensemble_test.py实际输出(10 个 fold 逐一加载权重,~30 秒完成):
Using cuda [LOAD] checkpoints/best_model_random_fold_01.pt [Fold 1] RMSE=0.4120 MAE=0.3020 R=0.8317 R2=0.6797 [Fold 2] RMSE=0.4101 MAE=0.2946 R=0.8318 R2=0.6827 [Fold 3] RMSE=0.4076 MAE=0.2958 R=0.8304 R2=0.6865 [Fold 4] RMSE=0.4082 MAE=0.2980 R=0.8301 R2=0.6855 [Fold 5] RMSE=0.3942 MAE=0.2831 R=0.8469 R2=0.7067 [Fold 6] RMSE=0.4058 MAE=0.2925 R=0.8379 R2=0.6892 [Fold 7] RMSE=0.3881 MAE=0.2888 R=0.8486 R2=0.7157 [Fold 8] RMSE=0.4005 MAE=0.2925 R=0.8433 R2=0.6973 [Fold 9] RMSE=0.4070 MAE=0.2940 R=0.8337 R2=0.6874 [Fold 10] RMSE=0.3936 MAE=0.2901 R=0.8423 R2=0.7077 ========== CROSS-FOLD MEAN ± STD ========== RMSE: 0.4027 ± 0.0077 MAE: 0.2931 ± 0.0049 R: 0.8377 ± 0.0068 R²: 0.6938 ± 0.011710 折标准差极小(RMSE±0.008, R±0.007),说明模型对不同数据划分非常稳定——不是靠某一折的"好运气"。
Fold 7 最好(R=0.849)、Fold 3 最差(R=0.830),差异仅 0.018——这意味着无论怎么划数据集,模型预测水平高度一致。
5.3 模型需要什么输入?
从model/__init__.py接口可以看到,模型接受:
- 序列 tokens:环肽单体序列 → token 化 → 特征矩阵
- 构象图:预计算的 GNN 图文件(水相 5 个 + 氯仿 5 个)
- 全局特征:19 个分子描述符 + 标准化统计量
直接预测新环肽需要先跑data_preprocess/脚本生成构象图(需 RDKit + xTB),这部分不在推理管线中。作者提供的数据预处理脚本是开源参考,但需要额外的量子化学依赖。
5.4 能直接拿来做新分子预测吗?
坦白说——不能开箱即用。
模型推理是即插即跑的,但要给全新的环肽序列打分,你需要:
- 生成 3D 构象:RDKit ETKDGv3 → 聚类 → 选代表
- 双相优化:水/氯仿 GFN2-xTB + ALPB 隐式溶剂
- 提取特征:PSA3D、Rg、IMHB、SASA 在两相中的值
- 构建图:按
cache/graph_extreme5/中的格式保存为.pt文件 - 注册单体:如果是非天然氨基酸,需要在
model_settings.json的symbols列表中存在
这些步骤在data_preprocess/中有脚本参考(resample_per_peptide.py等),但需要安装 RDKit、xTB 等重依赖。
实用建议:如果要批量评估 >100 条环肽,值得搭预处理流水线。如果只是评估 3-5 条,建议直接参考论文中的特征趋势(ΔPSA3D、IMHB 等)做经验判断。
六、模型亮点与局限
✅ 亮点
| 亮点 | 说明 |
|---|---|
| 构象系综建模 | 不是单构象,而是水/氯仿两相 5 个代表性构象 |
| 物理可解释 | ΔPSA3D 是 top feature,与"分子变色龙"概念一致 |
| 单残基替换敏感 | 84% 方向一致率,可用于 lead optimization |
| 跨任务迁移 | 冻结 backbone→Caco-2/MDCK/RRCK 表现不俗 |
| 10-fold CV 稳健 | SD 在 0.01 以内 |
❌ 局限
| 局限 | 说明 |
|---|---|
| model.so 黑盒 | 网络架构不可查看/修改,学术复现有障碍 |
| 新分子预测需预处理 | 需要 RDKit + xTB 生成构象系综,门槛较高 |
| 仅限非商业用途 | CC BY-NC 4.0 许可 |
| 氯仿 ≠ 膜 | 隐式溶剂 GFN2-xTB/ALBP 近似真实膜环境,非显式溶剂 |
| 酰胺顺反异构 | RDKit + 半经验方法无法充分处理高能垒异构化 |
| 桥联水 | 未显式建模水分子介导的膜相互作用 |
七、与其他方法的定位
| 方法 | 适用阶段 | 优势 | 劣势 |
|---|---|---|---|
| EnsembleCycPerm | 大规模虚拟筛选 → lead opt | 可解释性好、单残基替换敏感 | 需预处理构象 |
| 物理 MD (AMBER/GROMACS) | 关键分子验证 | 第一性原理、可算 PMF | 单分子需数天 |
| 传统 QSPR (SVM/MLP) | 快速粗筛 | 快 | 精度不足、无构象信息 |
| 纯序列模型 (HELM-BERT) | 序列→性质直推 | 无需 3D | 丢失构象变色龙效应 |
推荐工作流:EnsembleCycPerm 筛出 Top-N → 增强采样 MD (如 GaMD/REMD) 验证 → 合成+实验。
总结
EnsembleCycPerm 的核心贡献不是"又来了一个 R²=0.7 的模型",而是把环肽穿膜预测从"一张静态结构图"升级到"理解溶剂依赖的构象系综"。
通透性不是某个静态结构天然携带的标签,而是序列、局部修饰、构象集合、溶剂响应和极性屏蔽共同产生的结果。
对于做环肽设计的同学——如果你正在纠结"要换哪个氨基酸来提高口服利用度",这个模型值得在筛选流程中占一个位置,尤其是它的ΔPAMPA 方向预测对 lead optimization 有直接指导价值。
参考资料
- Wen S, Wang Y, Qian Y.J. Chem. Inf. Model.2026, 66, 8123. doi:10.1021/acs.jcim.6c01213
- Li J, Yanagisawa K, et al. CycPeptMPDB.J. Chem. Inf. Model.2023, 63(7), 2240-2250.
- GitHub: GitHub - wsicheng739/EnsembleCycPerm: EnsembleCycPerm is a model for predicting cyclic peptide permeability · GitHub
关键词
环肽;膜渗透性;构象系综;分子变色龙效应;ΔPSA3D;PAMPA;GNN;Transformer;ADMET;本地部署
欢迎关注我的博客:Blockbuster-drug 的CSDN 博客主页
专栏推荐:多肽性质预测系列 蛋白结构预测 蛋白生成多肽设计