BioTender 实验记录 · AI4Bio

DrugGPT × BCL2L11

用 GPT‑2 架构的分子生成模型,面向促凋亡蛋白 BIM 生成一批候选小分子,并完成 3D 构象的能量最小化。这是一次从环境搭建、踩坑排错到出图的完整记录。

101候选分子(3D 结构齐全)
198靶蛋白氨基酸数 · O43521
RTX 4090 GPU 节点
07.142026 · 运行完成
01

项目概述

DrugGPT 由 HuggingFace 上的 liyuesen/druggpt 发布,接受靶蛋白 FASTA 序列作为输入,通过自回归方式生成符合靶点特征的候选 SMILES,再转换为可用于分子对接的 3D SDF 结构。本次以 BCL2L11(Bcl‑2 家族促凋亡蛋白 BIM)为靶点,在 GPU 服务器上完成了从环境搭建、模型推理到能量最小化的全流程,最终产出 101 个带 3D 坐标的候选分子。

02

运行环境

主节点
内网主节点 · Ubuntu 22.04 · 无 GPU,Web 前端
GPU 节点
内网 GPU 节点 · Ubuntu 22.04
GPU 型号
4× NVIDIA RTX 4090 · 24GB VRAM
CUDA
13.2(驱动)
Python
3.10 系统 / 虚拟环境 druggpt-env
PyTorch
2.6.0+cu124
关键依赖
transformers · openbabel(-wheel) · scipy · scikit-learn · psutil
模型来源
hf-mirror.com 镜像(liyuesen/druggpt)
03

遇到的问题

流程中定位并修复了 5 个技术问题,其中最关键的优化把单分子 3D 生成时间从超时(>60s)降到了 0.18 秒。

01CVE-2025-32434 · torch < 2.6 被拒绝加载
原因cu121 索引最高只提供 torch 2.5.1,触发安全检查解决改用 cu124 索引安装 torch 2.6.0
02CUDA device assertion(device=3, num_gpus=…)
原因PyTorch 2.6+cu124 与 4 卡驱动兼容性问题解决设置 CUDA_VISIBLE_DEVICES=0,只用 GPU 0
03HuggingFace No route to host
原因服务器无法直接访问 huggingface.co解决设置 HF_ENDPOINT=hf-mirror.com 镜像
04obabel CLI 返回 RC:1,SDF 转换全部失败
原因obabel --gen3d 对复杂分子耗时超 60s 超时解决改用 Python openbabel 库 OBOp.FindType("Gen3D") 直接调用,提速至 0.18s/分子
05能量最小化报 FileNotFoundError: 'python'
原因脚本调用 subprocess.run(['python', …]),系统只有 python3解决替换为 sys.executable,使用虚拟环境解释器
04

靶蛋白

BCL2L11 · Bcl‑2‑like protein 11
别名 BIM / BOD · Homo sapiens · Bcl‑2 家族促凋亡因子
UniProt O43521 · B2L11_HUMAN
>sp|O43521|B2L11_HUMAN Bcl-2-like protein 11 OS=Homo sapiens OX=9606 GN=BCL2L11 PE=1 SV=1
MAKQPSDVSSECDREGRQLQPAERPPQLRPGAPTSLQTEPQGNPEGNHGGEGDSCPHGSP
QGPLAPPASPGPFATRSPLFIFMRRSSLLSRSSSGYFSFDTDRSPAPMSCDKSTQTPSPP
CQAFNHYLSAMASMRQAEPADMRPEIWIAQELRRIGDEFNAYYARRVFLNNYQAAEDHPR
MVILRLLRYIVRLVWRMH
05

数据核对说明

如实披露:核对随附的结果压缩包后发现两点,供你使用数据时留意——
  • hash_ligand_mapping.csv 中有 102 条记录,但 ligand_output_min/ 目录下只有 101 个 .sdf 文件;缺失的一条哈希(2181714a…4c1)没有对应的 3D 结构文件,本页画廊只收录了有完整 3D 坐标的 101 个分子。
  • 原报告中"去重前 204 个 SDF""约 160/1600 条有效 SMILES"这两个中间过程数字,在打包的结果文件里找不到对应的原始数据支撑(包里只有最终这 101/102 条),无法核实,可能是中间产物没有一并打包。
07

后续建议