GitHub 上的 Awesome Drug Discovery 类列表汇总了 AI 制药的开源资源:工具、数据集、模型、教程、论文。它的价值是「快速了解有什么」,但列表本身不做质量判断——筛选是使用者的工作。
这类列表通常包含什么
| 类别 | 内容 |
|---|---|
| 化学信息学工具 | RDKit、OpenBabel、Datamol(见 055《化学信息学工具栈》) |
| 机器学习框架 | DeepChem、Chemprop、PyG(见 004《DeepChem 教程体系入门》、131《Chemprop / D-MPNN 论文精读》) |
| 结构工具 | 对接、MD、结构预测 |
| 数据集与数据库 | ChEMBL、PDB、ZINC 等 |
| 预训练模型 | 各类分子与蛋白模型 |
| 教程与课程 | 见 004《DeepChem 教程体系入门》~012《TeachOpenCADD 教程》 |
| 论文列表 | 按主题整理 |
| 可视化工具 | PyMOL、mols2grid 等 |
判断一个开源资源是否可用
# 【看仓库的这些信号】
#
# 1) 【最近提交时间】
# 半年以上无更新 → 可能已停止维护
# → 与新版依赖可能不兼容
#
# 2) 【issue 的状态】
# □ 未关闭的 issue 有多少?
# □ 作者响应吗?
# □ 【有人报告「跑不通」吗?】
# → 【issue 区常常比 README 更能说明真实情况】
#
# 3) 【有没有测试与 CI】
# 有自动化测试 → 质量更有保障
#
# 4) 【文档完整度】
# □ 安装说明清楚吗?
# □ 有可运行的示例吗?
# □ API 文档完整吗?
#
# 5) 【依赖的复杂度】
# 依赖越多越容易出问题
# → 有 conda 环境文件或容器镜像 → 加分
#
# 6) 【许可】
# MIT / Apache 2.0 → 商用友好
# GPL → 有传染性,企业使用需谨慎
# 自定义许可 → 【必须仔细读】
# 【无许可 = 默认保留所有权利,不能用】
#
# 7) 【star 数的解读】
# 高 star 说明知名度高
# 但【不代表质量】—— 有些是因为论文火
# → 结合最近更新与 issue 一起看
#
# 8) 【是否有实际使用的案例】
# 有人在生产中用过吗?
# → 论文引用不等于实际使用
常用工具的可靠性梯队
| 梯队 | 特征 | 例子 |
|---|---|---|
| 基础设施级 | 多年维护、社区大、稳定 | RDKit、OpenMM、PyTorch |
| 成熟工具 | 持续维护、文档完整 | Chemprop、Vina、MDAnalysis、Meeko |
| 活跃项目 | 近期更新、社区形成中 | Boltz、GNINA、OpenFE |
| 论文配套代码 | 可能只为复现论文而写 | 多数新方法的仓库 |
| 已停止维护 | 长期无更新 | — |
「论文配套代码」这一类要特别注意:它们通常只保证能复现论文中的实验,而非作为通用工具设计。用于生产前需要仔细评估甚至重写。
从列表到实际可用的流程
# 【第 1 步】:明确自己的需求
# 不要「看看有什么好东西」,
# 而是「我要解决 X 问题,有什么工具」
#
# 【第 2 步】:找 2~3 个候选
# 不要只看第一个
#
# 【第 3 步】:快速评估(每个 30 分钟)
# □ 看 README 与文档
# □ 看最近更新与 issue
# □ 看许可
# □ 【尝试安装并跑通示例】
# → 装不上或示例跑不通 → 直接淘汰
#
# 【第 4 步】:在自己的数据上试
# □ 结果合理吗?
# □ 速度可接受吗?
# □ 输出格式好处理吗?
#
# 【第 5 步】:评估长期成本
# □ 依赖冲突的风险
# □ 版本升级的影响
# □ 出问题时的排查难度
# □ 【团队的学习成本】
#
# 【第 6 步】:固定版本并记录
# requirements.txt 或 environment.yml
# → 【锁定具体版本号,不用 latest】
#
# 【一个常见的错误】:
# 看到一个新工具很酷就引入,
# 半年后发现它停止维护、
# 而项目已经深度依赖它
# → 【引入前先问:如果它明天停止维护,
# 我的迁移成本有多大?】
一个务实的最小工具栈
# 【多数 AI 制药项目实际需要的核心工具】
#
# 化学信息学:
# RDKit 分子处理(见 013)
# Datamol(可选) 便利封装与并行
#
# 机器学习:
# scikit-learn 传统方法
# LightGBM / XGBoost 【梯度提升——最实用的基线】
# PyTorch 深度学习
# Chemprop(可选) 分子图模型
#
# 结构:
# AutoDock Vina / GNINA 对接(见 017、016)
# PDBFixer + Meeko 结构准备(见 105、106)
# OpenMM MD(见 015)
# PLIP / ProLIF 相互作用分析(见 108、109)
# PyMOL 可视化(见 110)
#
# 数据:
# pandas、numpy
# ChEMBL client(见 226)
#
# 工程:
# conda / mamba 环境管理
# MLflow(可选) 实验跟踪
#
# 【这个栈能覆盖 80% 以上的常见需求】
# → 【不要一开始就引入太多工具】
# 每个工具都是长期的维护负担
贡献与维护的角度
- 如果你的团队开源了工具:把它加到相关的 Awesome 列表能提高可见度;
- 好的开源项目的特征:清晰的 README、可运行的示例、明确的许可、及时的 issue 响应、语义化的版本管理;
- 对社区的贡献不一定是新方法:修文档、补测试、报告可复现性问题,价值同样很高;
- 可复现性报告尤其有价值:「我按照 README 跑不通,因为 X」这类 issue 帮助所有后来者。
关键要点
- issue 区比 README 更能说明真实情况——尤其是「跑不通」的报告;
- 「论文配套代码」只保证复现论文,用于生产前需仔细评估甚至重写;
- 引入前先问:如果它明天停止维护,我的迁移成本有多大;
- 多数项目用一个十来个工具的最小栈就能覆盖 80% 需求——不要过早堆工具。
延伸资源
- 工具栈配合:055《化学信息学工具栈》;RDKit Cookbook:013《RDKit Cookbook》;
- Papers with Code 导航:026《Papers with Code 分子性质预测导航》~028《Papers with Code 药物发现任务导航》;综述阅读:030《AI 药物发现综述怎么读》。