ZINC(UCSF Shoichet 组)是虚拟筛选最常用的免费化合物库。它的定位很明确:收录可以真正买到的分子,并预先处理好质子化态和三维构象,直接可用于对接。这一点区别于 PubChem 那种「什么都收」的库——虚拟筛选筛出一个买不到的分子没有意义。
版本与规模
| 版本 | 规模 | 特点 |
|---|---|---|
| ZINC15 | 约 10 亿(含 make-on-demand) | 子集划分体系成熟 |
| ZINC20 / ZINC22 | 数十亿级 | 加入超大按需合成空间,检索更快 |
| 现货部分(in-stock) | 约 1,000 万 | 可直接采购,交付快 |
「现货」和「按需合成」的区别很重要:现货分子几天到几周能拿到,按需合成的通常需要数周且有失败率。做首轮验证时优先选现货。
子集怎么选
ZINC 按性质预先切好了子集,用三个维度编码:分子量档、logP 档、可获得性档。常用的命名子集:
- lead-like:MW 250–350、logP ≤ 3.5、可旋转键 ≤ 7。先导化合物发现的默认选择——留出后续优化时增重的空间。
- drug-like:MW 250–500、logP ≤ 5,符合类药规则。
- fragment-like:MW ≤ 250,用于片段筛选。
- in-stock / now:现货可采购。
- boutique:天然产物、代谢物、已批准药物等特殊集合。
虚拟筛选建议从 lead-like 起步。直接筛 drug-like 容易得到已经很大很脂溶的分子,后续优化空间被压缩——这是新手常见的策略错误。
下载
# ZINC 网站可生成定制下载脚本(选好子集后给出 wget 列表)
wget -i zinc_download_list.txt
# 也可用 tranche 浏览器按 MW/logP 网格选择
# 单个分子
curl "https://zinc20.docking.org/substances/ZINC000000053730.smi"
# 按供应商catalog 取子集
curl "https://zinc20.docking.org/substances/subsets/in-stock.smi?count=all"
提供 SMILES、SDF(含 3D 构象)、MOL2、PDBQT 等格式。直接下 PDBQT 能省掉自己做对接准备的大量时间,但要确认其质子化态设置符合你的需求。
做虚拟筛选时的实际配置
# 典型的分级筛选策略
# 1) 从 lead-like in-stock 子集起步(约 300~600 万)
# 2) 性质与结构过滤
python filter.py --input zinc_leadlike.smi \
--mw 250 350 --logp -1 3.5 --rotb 0 7 --tpsa 20 90 \
--remove-pains --remove-reactive --output filtered.smi
# 3) 多样性抽样或按相似性聚焦
# 4) 快速对接初筛(Vina,exhaustiveness=8)
# 5) top 1% 重打分(GNINA CNN rescore)
# 6) top 100~500 人工审查 + 采购
使用注意
- 质子化态是预设的:ZINC 按 pH 7 预生成了主要质子化形式,有些分子有多个形式(同一分子多个 ZINC ID)。对接时要注意别重复计数。
- 构象只是一个:SDF 里通常只有一个低能构象。对接程序会自己搜索柔性,但如果用刚性方法或形状比较,需要自己生成构象集合。
- 可采购性会过期:数据库快照与供应商实际库存有滞后。下单前一定要在 Mcule / eMolecules 等平台核实实际可得性与价格(见 232《Mcule》、233《eMolecules》)。
- 化学多样性有偏:商业库反映的是供应商的合成偏好,某些骨架类型过度代表,某些化学空间几乎空白。
- 规模要匹配算力:十亿级库无法全量对接。要么用 lead-like 子集降到百万级,要么上机器学习加速筛选(先对小样本对接,训模型预测其余)。
上手提示
- 虚拟筛选默认从 lead-like 子集起步,给后续优化留空间;
- 首轮验证优先选 in-stock 现货,交付快、失败率低;
- 直接下 PDBQT 省事,但要确认质子化态设置合适;
- 下单前必须在采购平台核实实际可得性与价格。
延伸资源
- 超大合成空间:231《Enamine REAL》;采购平台:232《Mcule》、233《eMolecules》;
- 对接工具:182《AutoDock Vina》、183《GNINA》;
- 虚拟筛选流程见「实战流程」模块。