第1章:虚拟筛选概述
各位好,欢迎来到《大规模虚拟筛选Pipeline设计指南》。
我是这门课的主讲。这些年我一直在做计算化学和机器学习的交叉应用。说白了,虚拟筛选就是我的老本行。今天咱们先聊聊,到底什么是虚拟筛选,它凭什么能在药物研发里站住脚。
1.1 什么是虚拟筛选?
虚拟筛选,英文叫 Virtual Screening,简称 VS。它是一门用计算机模拟实验的技术。核心目标很简单:从百万、千万甚至上亿个化合物里,快速挑出那些最有希望与靶点结合的家伙。
你想想看,传统方法怎么做?人工合成、提纯、测活。一个化合物从合成到拿到活性数据,少说也要一两周,成本还不低。而虚拟筛选,全靠计算。一天之内,十万个化合物就能跑完初步打分。
我个人习惯把虚拟筛选比作「漏斗的第一层」。它不追求百分之百准确,但必须高效、快速。把筛掉的化合物省下来的钱,全砸在更优的候选分子上。
1.2 虚拟筛选 vs. 传统实验方法
刚入行时,我也被问到过:「这东西靠谱吗?」
我的回答是:靠谱,但要放对位置。虚拟筛选不是要取代实验,而是要辅助实验。两者各有长短,我把对比整理成了一张表:
| 维度 | 虚拟筛选 | 传统高通量筛选(HTS) |
|---|---|---|
| 时间周期 | 数天~数周 | 数周~数月 |
| 成本 | 极低(主要为计算资源) | 极高(试剂、耗材、人力) |
| 通量 | 百万~数十亿级 | 万~百万级 |
| 假阳性率 | 偏高(需实验验证) | 相对较低(直接测活) |
| 实验依赖 | 需已有靶点结构或已知配体 | 需建立完整实验体系 |
| 适用阶段 | 早期苗头发现、先导优化 | 后期确认、ADMET/毒性 |
还记得我在项目中遇到过这么一件事。有个靶点做了两年 HTS,只筛了30万个化合物,烧掉几百万经费,最后只拿到两个苗头化合物。后来我建议用基于结构的虚拟筛选,从 ZINC 数据库里挑了200万个分子,两周时间就产出8个候选,实验验证后确认了3个。
说白了,虚拟筛选最大的优势是「省钱省时间」。但它的缺点也很明显:模型不够准,容易出假阳性。所以成熟的 pipeline 都会在虚拟筛选后面接一轮快速实验验证。
1.3 应用领域
虚拟筛选的应用范围,比大多数人想象的要广。不只是药物研发,我列几个我亲自参与过的方向:
- 药物研发(最成熟): 寻找苗头化合物、先导化合物优化、反向找靶。我在 COVID-19 初期就用过 VS 快速筛选老药库,找可能的抑制剂。
- 材料设计: 筛选新型光敏剂、有机太阳能电池材料、催化剂。场景不同,但逻辑一样——用计算替代试错。
- 蛋白工程: 设计突变体、预测突变对结合亲和力的影响。配合自由能微扰(FEP)或者 MM-GB/SA,效果不错。
- 农业化学: 筛选除草剂、杀虫剂靶点。嗯,这方面我经验不多,但原理相同。
- 生物信息学/组学分析: 从蛋白质组、代谢组数据推测小分子与蛋白的相互作用网络。
你看,只要涉及到「分子-靶标相互作用」,虚拟筛选就有用武之地。它不挑领域,只挑数据。
1.4 常见的虚拟筛选策略
做虚拟筛选,主要有两条路:药效团模型和分子对接。
我刚开始做 VS 时,喜欢混用它们。为什么?药效团能快速过滤掉完全不匹配的分子,对接再精细打分。这就像筛子——先粗筛,再精筛。
具体来说:
- 基于配体的虚拟筛选(LBVS): 靠已知活性配体的结构或性质来建药效团模型。适合靶点结构未知、但有一些已知配体的场景。
- 基于结构的虚拟筛选(SBVS): 需要靶点的三维结构。常见做法是用分子对接把化合物逐个放进去,评估结合好差。
在实际 pipeline 里,两者经常结合。我有个项目这么做:先用 ROCS 做形状匹配(LBVS),保留 top 10%;再用 Glide SP 对接(SBVS),保留 top 5%;最后用 MM-GB/SA 算结合自由能,挑出30个分子送测。
# 示例:一个简单的多级筛选策略(伪代码)
step1: 化合物库去重 & 类药性过滤 (Lipinski, Veber)
输出: filtered_library.sdf
step2: 药效团匹配 (ROCS shape & chemical feature)
保留 top 10%
输出: hits_ph4.sdf
step3: 分子对接 (AutoDock Vina, GLIDE)
保留 top 5%
输出: hits_dock.sdf
step4: 精打分 (MM-GB/SA 或 MM-PBSA)
输出: top30_candidates.sdf
step5: 实验验证 (活性测试, SPR, ITC)
我建议在实际项目中,不要把精力全放在对接上。化合物库的质量、过滤规则、打分函数的选择,每个环节都可能成为瓶颈。
1.5 本章知识结构图
最后我画了一张图,帮你快速把握本章的核心框架。
1.6 一个值得注意的误区
很多人以为虚拟筛选只要跑完对接就算完事了。我曾经也这么想,直到一个项目里,我输出了一份很漂亮的对接分数排名,结果送了30个分子去测,只有2个有活性。为什么?
原因有几层:
- 打分函数不完美。 它还不够准确。
- 靶点柔性没考虑。 对接用的是刚性蛋白,实际蛋白会形变。
- 水分子和盐的影响。 实验环境和模拟环境差异大。
所以我才会在 Pipeline 里加入精打分、构象采样、诱导契合对接。只有层层过滤,才能把假阳性率压下来。