运行时依赖
安装命令
点击复制技能文档
SMILES-to-Docking:端到端分子虚拟筛选流程 概述 本 Skill 实现分子对接全流程自动化,四步一气呵成,无需手动处理中间文件: 步骤 1 SMILES → SDF + 3D 构象优化 (RDKit) 步骤 2 PDB/SDF → PDBQT (配体 + 受体联合预处理,OpenBabel + Meeko) 步骤 3 批量 AutoDock Vina 对接 (多进程并行,支持 thousands of ligands) 步骤 4 亲和力打分排序 + 结构导出 (CSV 排序 + Top-N 复合物 PDB) 环境依赖 工具 安装命令 RDKit pip install rdkit-pypi Meeko pip install meeko Open Babel conda install -c conda-forge openbabel AutoDock Vina conda install -c conda-forge autodock-vina Biopython pip install biopython NumPy pip install "numpy<2" (与 rdkit-pypi 2022.9.5 兼容) 注意:rdkit-pypi (2022.9.5) 要求 NumPy < 2,建议使用 pip install "numpy<2"。 目录结构 output_dir/ ├── step1_smiles_to_sdf/ │ └── ligands/ │ ← .sdf 文件 ├── step2_preparation/ │ ├── protein_prepared.pdbqt ← 处理后的蛋白 │ └── ligands/ │ ← 配体 .pdbqt 文件 ├── step3_docking/ │ ├── batch_summary.csv ← 对接结果汇总 │ └── / │ ├── vina_config.txt │ └── vina_log.txt └── step4_ranking/ ├── docking_scores.csv ← 排序后的完整打分表 ├── docking_summary.txt ← 汇总报告 └── rank__aff.pdb ← Top-N 复合物结构 使用方式 方式一:一键端到端(推荐) python scripts/main.py \ --protein 8V1R.pdb \ --smiles_file ligands.txt \ --pocket "center_x=10.5 center_y=20.3 center_z=-5.2 size_x=22 size_y=22 size_z=22" \ --output_dir ./docking_results \ --top_n 10 \ --exhaustiveness 8 \ --max_workers 8 参数说明: 参数 必填 默认值 说明 --protein ✅ — 蛋白 PDB 文件路径 --smiles_file ✅ — SMILES 列表文件(见格式要求) --pocket ✅ — 口袋坐标(格式见下方) --output_dir ./docking_results 输出根目录 --top_n 10 导出 Top-N 结构数量 --exhaustiveness 8 搜索穷尽度(越大越慢越准) --max_workers 4 并行对接进程数 --cpu 0(全部) 每个 Vina 进程 CPU 核心数 --vina_path 搜索 PATH Vina 可执行文件路径 --skip_step1/2/3/4 — 跳过指定步骤(需配合 --*_dir) SMILES 文件格式(支持两种): # 纯 SMILES(自动命名为 lig_0001, lig_0002 ...) CCO c1ccccc1 CC(=O)Oc1ccccc1C(=O)O # 或 SMILES + 名称(tab 分隔) CCO Ethanol c1ccccc1 Benzene CC(=O)Oc1ccccc1C(=O)O Aspirin 口袋坐标格式(推荐使用共晶配体自动计算): center_x=10.5 center_y=20.3 center_z=-5.2 size_x=22 size_y=22 size_z=22 从共晶配体自动计算口袋:python references/pocket_from_ligand.py --protein 8V1R.pdb --ligand_resname LIG 方式二:分步执行(调试/断点续跑) # 步骤 1:SMILES → SDF + 3D 构象 python scripts/smiles_to_sdf.py --smiles_file ligands.txt --output_dir ./step1 # 步骤 2:配体 + 受体联合预处理 python scripts/prepare_ligand.py --sdf_dir ./step1/ligands --output_dir ./step2 python scripts/prepare_protein.py --protein 8V1R.pdb --output_dir ./step2 # 步骤 3:批量 Vina 对接 python scripts/batch_docking.py \ --protein_pdbqt ./step2/protein_prepared.pdbqt \ --ligand_pdbqt_dir ./step2/ligands \ --pocket "center_x=10.5 ..." \ --output_dir ./step3 \ --max_workers 8 # 步骤 4:打分排序 + 结构导出 python scripts/rank_results.py \ --docking_dir ./step3 \ --protein_pdb 8V1R.pdb \ --top_n 10 \ --output_dir ./step4 输出解读 docking_scores.csv 列 说明 rank 亲和力排名(1 = 最佳) ligand_name 配体名称/SMILES affinity_kcal_mol 结合亲和力(越小越强) mode 最优构象编号(通常取 mode 1) rmsd_lb/ub 与其他构象的 RMSD 结合强度参考: < -9 kcal/mol:强结合活性 -7 ~ -9 kcal/mol:较强 -5 ~ -7 kcal/mol:中等 -5 kcal/mol:较弱 Top-N 复合物结构 rank__aff.pdb — 蛋白+配体合并 PDB,可直接用 PyMML/Chimera/Adfr 查看。 性能建议 配体规模 建议参数 < 1,000 --exhaustiveness 8, --max_workers 8 1,000–10,000 --exhaustiveness 8, --max_workers 8 --cpu 1 10,000–100,000 建议分段处理,每批 5,000 个
100,000 考虑使用 QuickVina 2 或 GPU 加速版本参考资料 references/vina_param_guide.md — AutoDock Vina 参数详解与调优 references/pocket_from_ligand.py — 从共晶配体坐标自动计算口袋