1. 虚拟筛选概述与 AutoDock 简介
虚拟筛选到底在做什么?
说白了,虚拟筛选就是用计算机模拟药物分子和靶点蛋白能不能“对上眼”。做实验前先算一把,能省下大量湿实验的成本和时间。我入行时第一个项目就是帮一个课题组筛选针对某个激酶的抑制剂,当时他们手上有一百万个化合物,一个一个测?那得测到猴年马月。虚拟筛选一周就给出两百个候选,后来验证了十来个有活性——效率一下就上来了。
虚拟筛选的流程其实很直观:
- 靶点准备:拿到蛋白三维结构(PDB 文件),去水、加氢、修补缺失残基。
- 化合物库准备:把库里的分子转成三维构象,分配电荷,生成对接格式。
- 分子对接:用软件(比如 AutoDock)把每个分子放到结合位点里,算打分。
- 排序筛选:按打分排序,挑出前几百或前几十个分子。
- 实验验证:把候选取出来做活性测试。
注意:虚拟筛选中 打分函数 的准确性非常关键。我曾经遇到过某次筛选用同一套流程,换了个打分模式就把真正有活性的分子排到了几百名开外。所以后来我习惯在正式跑大规模筛选前,先用已知活性分子做一次“回活”验证。
为什么你需要了解 AutoDock?
AutoDock 是分子对接领域最老牌的开源软件之一。嗯,它最早是 1998 年由 Scripps 研究所发布的。算起来比我入行还早好几年。我记得那时候还是命令行界面,输参数全靠写脚本。后来出了 AutoDock Vina,速度提升了好几个数量级。
主要应用场景包括:
- 先导化合物发现:从大库中快速锁定有潜力的分子。
- 结合模式预测:帮你看抑制剂是怎么怼进活性口袋的。
- 构象搜索:探索配体可能的柔性构象。
- 虚拟筛选管道:和 PyRx、ADFR 等工具配合,搭建高通量流程。
| 版本 | 发布年份 | 特点 |
|---|---|---|
| AutoDock 3 | 1998 | 经典对接,力场打分 |
| AutoDock 4 | 2007 | 支持柔性侧链,改进打分 |
| AutoDock Vina | 2010 | 速度提升数十倍,原子类型简化 |
| AutoDock-GPU | 2020 | GPU 加速,适合超大规模库 |
我个人建议新手直接从 AutoDock Vina 开始。配置简单,跑起来快。你想想看,如果你的课题需要筛选十万个化合物,用老版 AutoDock 可能要跑好几天,Vina 几个小时就搞定了。
小技巧:安装完成后用 vina --version 验证是否成功:
vina --version
AutoDock Vina 1.2.3
虚拟筛选流程图
下面这张图概括了我平时做虚拟筛选的完整路径。每个环节都有对应的工具和注意点。
AutoDock 工具链一览
你可能会问,学 AutoDock 要装哪些东西?我习惯这样配:
- AutoDock Tools (ADT):图形界面,做可视化准备很方便。
- AutoDock Vina:对接引擎,命令行执行。
- OpenBabel:格式转换神器,我经常用它把 SDF 转成 PDBQT。
- Python 脚本:批量处理、数据分析,我自己写了个小脚本自动跑多个化合物。
重要提醒:不要直接在 Windows 下双击 Vina 可执行文件!它会一闪而过。正确做法是在命令行终端里跑。曾经有学生跑来问我“Vina怎么打不开”,我一看原来他以为那是安装包……
一个简单的虚拟筛选管道示例
我平时用 Bash 脚本串联整个流程。下面是核心步骤的伪命令(简化版):
# 准备受体
prepare_receptor -r protein.pdb -o protein.pdbqt
# 准备配体(批量处理)
for mol in library/*.sdf; do
obabel $mol -O ${mol%.sdf}.pdbqt -m
done
# 定义对接盒子(以中心坐标 10 20 30 为例)
vina --receptor protein.pdbqt \
--ligand ligand.pdbqt \
--center_x 10 --center_y 20 --center_z 30 \
--size_x 20 --size_y 20 --size_z 20 \
--out output.pdbqt \
--log output.log
# 提取最低能量构象
grep "REMARK VINA RESULT" output.pdbqt | head -1
嗯,这个管道看起来简单,实际跑的时候坑不少。我刚做的时候经常遇到配体原子类型不匹配、盒子太大导致假阳性之类的问题。后来慢慢摸索出一套检查清单:
- 检查受体是否有非标准残基?
- 配体电荷分配是否合理?
- 对接盒子是否覆盖了结合口袋核心区域?
- 测试跑一两个已知阳性分子看打分是否合理?
如果你能把上面这些点都把控好,虚拟筛选就已经成功了一大半。