1. 项目概述:为什么公开数据集是AI制药的“燃料库”?
在AI制药这个前沿交叉领域,无论是刚入行的算法工程师,还是经验丰富的药物化学家,都绕不开一个核心问题:数据从哪里来?模型再精巧,算法再先进,没有高质量、大规模的数据作为“燃料”,一切智能化的药物发现与设计都无从谈起。这就像试图在没有勘探图的情况下寻找金矿,效率极低且成功率渺茫。因此,系统性地梳理和掌握AI制药领域的公开数据集,是每一位从业者必须打下的基本功。这些数据集不仅是验证新算法、新模型的“试金石”,更是驱动整个领域从概念验证走向实际应用的关键基础设施。
简单来说,AI制药公开数据集就是那些经过整理、标注,并向研究社区开放的,与药物发现各环节相关的数据集合。它们覆盖了从靶点识别、化合物虚拟筛选、ADMET(吸收、分布、代谢、排泄和毒性)性质预测,到临床试验结果分析的全链条。对于初学者,它们是绝佳的学习起点和练手材料;对于资深研究者,它们是进行基准测试、对比不同方法性能的客观标准。本文将为你深入拆解AI制药领域那些你必须知道的公开数据集,解析其核心价值、应用场景以及实操中的“避坑”指南,让你能快速上手,将这些宝贵的数据资源转化为你的研究利器。
2. 核心需求解析:我们到底需要什么样的数据?
在深入具体数据集之前,我们必须先厘清AI制药对数据的需求本质。这并非简单地“数据越多越好”,而是对数据的维度、质量、关联性提出了极高要求。理解这些需求,能帮助我们在海量数据集中做出精准选择。
2.1 多维度与多尺度数据整合
药物发现是一个跨越多个生物学尺度(基因、蛋白、细胞、组织、个体)和化学空间(分子、反应)的复杂过程。因此,理想的数据集需要具备多维度的整合能力。
- 化学维度:化合物的二维结构(SMILES、InChI)、三维构象、电子性质、物理化学描述符等。
- 生物维度:靶点蛋白的序列、三维结构、功能注释、基因表达谱、通路信息等。
- 表型维度:细胞水平的活性数据(如IC50、EC50)、动物模型的药效与毒性数据、临床阶段的患者反应数据等。
一个优秀的公开数据集,往往能在某一或某几个维度上提供深度和广度。例如,有些数据集专注于提供海量化合物及其生物活性,而另一些则提供高分辨率的蛋白质结构信息。
2.2 高质量与标准化标注
数据的“脏乱差”是机器学习项目失败的主要原因之一。在AI制药中,数据质量问题尤为突出。
- 活性数据的一致性:不同实验室、不同实验方法测得的IC50值可能存在系统偏差。公开数据集的价值在于,它通常经过了社区一定程度的清洗和标准化,例如统一了单位、剔除了明显异常值、标注了实验条件。
- 结构信息的准确性:化合物的SMILES字符串是否正确、唯一?蛋白质的PDB结构是否经过优化、去除了结晶水分子和辅因子?这些细节直接影响模型训练的稳定性。
- 负样本的定义:在分类任务(如判断化合物是否对某个靶点有活性)中,明确哪些是真正的“非活性”化合物(负样本)极具挑战性。许多数据集只提供活性数据,负样本需要研究者根据阈值或从其他来源合理构造,这是一个常见的陷阱。
2.3 面向具体任务的数据组织形式
数据必须为任务服务。公开数据集通常围绕特定任务构建,理解其设计初衷至关重要。
- 虚拟筛选:需要大规模化合物库(如ZINC)与靶点结构的对接分数或已知活性数据。
- 性质预测:需要化合物与其ADMET端点(如溶解度、肝毒性、血脑屏障透过性)的对应关系。
- 分子生成与优化:需要基于特定属性(如对某靶点高活性且合成可行性高)的成功分子对案例。
- 临床试验结果预测:需要结构化、标准化的临床试验方案与结果数据。
选择数据集时,首先要问:我的模型要解决什么问题?这个数据集的组织形式是否直接支持我的任务定义(如回归、分类、生成)?
3. 关键公开数据集深度盘点与应用场景
下面我们将分类盘点AI制药领域的核心公开数据集,并详细阐述其内容、获取方式、典型应用及实操注意事项。
3.1 化合物与生物活性数据库
这类数据集是AI制药的基石,主要用于构建活性预测模型和虚拟筛选。
1. ChEMBL
- 内容概述:由欧洲生物信息学研究所维护,是目前最大、最全面的药物化学数据库之一。它从科学文献中手动提取了超过200万个化合物的近2000万条生物活性数据,覆盖数千个靶点。
- 核心价值:数据经过高度人工策展,质量相对较高;活性数据丰富(IC50, Ki, EC50等);与靶点、疾病、临床试验信息关联。
- 典型应用:训练靶点特异性活性分类/回归模型;构建多任务学习模型预测多种ADMET属性;作为虚拟筛选的背景化合物库。
- 实操要点与避坑:
- 数据下载:可通过其官网直接下载完整的SQLite数据库或按需查询。对于大规模分析,建议使用其提供的REST API或Python客户端(
chembl_webresource_client)进行程序化访问,避免下载超大型文件。 - 活性值处理:注意活性值的单位(nM, μM)和类型(Ki, IC50)。在建模前,通常需要统一单位并转换为pChEMBL值(如pIC50 = -log10(IC50))以改善数据分布。
- 负样本构建:ChEMBL主要提供活性数据。构建分类模型时,常采用“设定活性阈值”法(如pIC50 > 6为活性,< 5为非活性),中间区域视为不确定而丢弃。更严谨的做法是从其他已知非活性数据库(如PubChem BioAssay中的失活化合物)补充负样本。
- 数据下载:可通过其官网直接下载完整的SQLite数据库或按需查询。对于大规模分析,建议使用其提供的REST API或Python客户端(
2. PubChem
- 内容概述:美国国立卫生研究院维护的化学物质数据库,包含超过1亿种化合物的信息。其子库PubChem BioAssay提供了大量高通量筛选实验数据。
- 核心价值:化合物数量极其庞大;BioAssay数据来自全球各类筛选项目,多样性好;提供原始筛选数据(包括阴性结果),有利于构建更真实的负样本。
- 典型应用:获取化合物基础信息和结构;用于大规模虚拟筛选的源库;利用BioAssay数据训练针对特定筛选模型的活性预测器。
- 实操要点与避坑:
- 数据规模:数据量巨大,下载和处理需要强大的计算资源和存储空间。务必根据需求选择特定子集下载(如按AID,即实验编号)。
- 数据异质性:不同BioAssay的实验条件和质量控制差异很大,数据噪声可能较高。在合并使用多个Assay数据前,必须进行严格的数据清洗和标准化。
- 结构标准化:下载的SDF或SMILES文件可能包含盐形式、同位素标记等。在用于分子表征学习前,必须进行去盐、标准化母核结构等预处理操作(可使用RDKit等工具)。
3. BindingDB
- 内容概述:专注于蛋白质-小分子结合亲和力数据的数据库,主要包含Ki, Kd, IC50等定量数据。
- 核心价值:数据聚焦于结合亲和力,质量较高;许多条目同时提供了化合物结构、靶点蛋白信息以及实验条件;是评估分子对接和结合自由能计算方法的黄金标准数据集之一。
- 典型应用:训练蛋白质-配体结合亲和力预测模型(如基于结构的或基于配体的);作为分子对接打分函数优化的基准测试集。
- 实操要点与避坑:
- 数据筛选:BindingDB提供了详细的过滤选项。建议在下载时,优先选择“仅包含Ki/Kd值”、“人源蛋白”、“实验pH在7.0左右”等条件,以获得更一致、更可靠的数据子集。
- 与结构对齐:许多条目有对应的PDB ID。在构建基于结构的模型时,需要手动或通过脚本将小分子配体与蛋白质晶体结构中的结合位点对齐,这是一个关键且易出错的步骤。
3.2 蛋白质结构与相互作用数据库
这类数据是结构生物学与AI结合的核心,用于基于结构的药物设计。
1. PDB (Protein Data Bank)
- 内容概述:存储生物大分子(主要是蛋白质和核酸)三维结构数据的全球档案库,目前包含超过20万个结构。
- 核心价值:提供原子级精度的蛋白质结构坐标;是研究蛋白质-配体相互作用、结合口袋形状的直接信息来源;许多结构附带电子密度图,可用于评估结构质量。
- 典型应用:分子对接的受体准备;蛋白质-配体相互作用指纹分析;训练蛋白质结构预测或蛋白质-配体结合模式预测的深度学习模型。
- 实操要点与避坑:
- 结构质量评估:不是所有PDB结构都适合用于建模。务必检查分辨率(Resolution,数值越小越好)、R因子、电子密度图质量。对于同源建模或机器学习,常使用分辨率优于2.5Å的结构。
- 预处理至关重要:从PDB下载的原始结构通常包含水分子、离子、辅因子、结晶缓冲液分子等。在使用前,必须用软件(如UCSF Chimera, PyMOL, Schrödinger Suite)进行预处理:去除水分子(除关键水外)、加氢、优化质子化状态(预测残基的pKa)、修复缺失的侧链或环区。
- 结合位点定义:对于已知的配体共结晶结构,结合位点较明确。对于无配体的Apo结构,需要利用软件预测可能的结合口袋(如使用SiteMap, fpocket等)。
2. PDBbind
- 内容概述:一个精心整理的数据库,从PDB中提取蛋白质-配体复合物结构,并关联其结合亲和力数据(Kd, Ki, IC50)。
- 核心价值:提供了“结构-亲和力”的配对数据,省去了研究者自己从PDB和文献中匹配的繁琐工作;每年发布的通用基准集(General Set)和精炼集(Refined Set)是评估结合亲和力预测算法的权威标准。
- 典型应用:开发和基准测试蛋白质-配体结合亲和力预测模型(如ΔG预测);研究结合自由能与结构特征之间的相关性。
- 实操要点与避坑:
- 数据集版本:使用最新的PDBbind版本(如v2020),因为数据在不断更新和精炼。精炼集(Refined Set)比通用集(General Set)质量更高,过滤掉了低质量结构和异常亲和力数据,更适合严谨的模型训练。
- 数据划分:在构建模型时,必须注意避免数据泄露。PDBbind官网提供了基于蛋白序列相似性的训练集/测试集划分建议,应严格遵守,以确保评估的公正性,防止模型因记忆高度相似的蛋白而虚高表现。
3.3 ADMET性质预测数据集
药物的“成药性”很大程度上取决于其ADMET性质,预测这些性质是AI制药的关键环节。
1. ADMETlab 2.0 / ADMETsar
- 内容概述:这类平台或数据库系统性地收集和计算了大量化合物的多种ADMET相关端点数据。
- ADMETlab 2.0:提供了超过30万个化合物的40多种ADMET属性预测值及部分实验值,数据集中且易于获取。
- ADMETsar:较早但广泛使用的数据库,包含20多万个化合物和20多万条实验测定的ADMET数据。
- 核心价值:将分散在文献中的ADMET数据集中化、标准化;提供了用于模型训练和验证的基准数据集;通常包含二分类(如是否肝毒性)和连续值(如溶解度数值)标签。
- 典型应用:训练单任务或多任务的ADMET端点预测模型;作为化合物早期筛选的过滤标准;评估生成式AI设计分子的成药性。
- 实操要点与避坑:
- 数据不平衡问题:许多ADMET端点(如严重肝毒性)的阳性样本(有毒)远少于阴性样本。建模时必须采用过采样(如SMOTE)、欠采样或使用适合不平衡数据的损失函数(如Focal Loss)和评估指标(如AUC-PR, MCC)。
- 实验值与预测值:注意区分数据集中的“实验测定值”和“计算预测值”。训练模型时应优先使用实验值。计算预测值可作为特征补充,但不宜直接作为监督学习的标签。
- 领域泛化:ADMET模型极易过拟合到训练集的化学空间。务必使用时间划分、结构聚类划分或完全外部测试集来严格评估模型的泛化能力。
2. Tox21/ToxCast
- 内容概述:由美国环保署等机构推动的毒性预测挑战数据集。Tox21包含约1.2万个化合物在12个核受体和应激反应通路上的高通量筛选活性数据;ToxCast规模更大,覆盖数千个化合物和数百个生物测定终点。
- 核心价值:数据来自标准化的高通量实验,质量可控;是计算毒理学和绿色化学领域的重要基准;任务形式为多任务二分类,适合测试模型的多任务学习能力。
- 典型应用:开发化合物毒性早期预警模型;研究多任务学习在化学生物学中的应用;作为分子表征学习方法(如Graph Neural Network)的通用测试基准。
- 实操要点与避坑:
- 多任务学习设计:Tox21的12个任务相关性不同。设计模型时,可以考虑硬参数共享、软参数共享(如MMoE)或任务聚类,以处理任务间的负迁移问题。
- 数据缺失处理:数据矩阵中存在大量缺失值(并非所有化合物都做了所有实验)。不能简单填充0或均值,常见的处理方法是将其视为多任务学习中的掩码,在计算损失时忽略该位置。
3.4 反应与合成可行性数据集
设计出分子只是第一步,能否合成出来同样关键。
1. USPTO
- 内容概述:美国专利商标局公开的专利数据,其中包含海量的化学反应实例。经过提取和解析(如Lowe等人的工作),形成了包含反应物、产物、试剂、溶剂的反应数据集(如USPTO-50K, USPTO-full)。
- 核心价值:真实世界化学反应的巨量来源;是训练反应预测(产物预测、反应条件推荐)、逆合成分析模型的核心数据。
- 典型应用:训练基于SMILES或分子图的反应结果分类/生成模型;训练逆合成规划的一步回溯模型;评估合成可行性。
- 实操要点与避坑:
- 数据清洗与标准化:原始专利文本提取的反应存在噪声,如反应物/产物识别错误、原子映射(Atom Mapping)不准确。应使用经过社区清洗的版本(如来自MIT或哈佛团队处理的数据集)。原子映射对于模型理解反应中心至关重要。
- 反应分类:USPTO数据集通常带有反应类型标签。在建模时,可以将反应类型作为先验知识输入模型,或将其作为一个多任务学习的目标,能显著提升预测准确性。
- 领域偏移:专利反应代表的是已成功实施的化学反应,可能存在发表偏倚(新颖、高效的更可能被申请专利)。用此数据训练的模型在预测非常见或探索性反应时可能表现下降。
2. ChEMBL 或 ZINC 的合成可及性评分
- 内容概述:并非严格意义上的数据集,而是一种衍生指标。例如,基于ChEMBL化合物,可以使用SA Score(合成可及性分数)或RA Score(反应可及性分数)等算法进行计算,为每个分子赋予一个表征其合成难易程度的分数。
- 核心价值:将复杂的合成可行性问题量化为一个可优化的连续或离散分数,便于在分子生成或优化中将其作为约束条件或优化目标。
- 典型应用:在分子生成模型(如VAE, GAN, GPT for Molecules)的损失函数中加入SA Score惩罚项,引导模型生成更易合成的分子;作为虚拟筛选后期的过滤标准。
- 实操要点与避坑:
- 算法的局限性:SA Score等是基于启发式规则的算法,其评估可能与资深合成化学家的直觉有出入。它更擅长识别“明显难合成”的分子(如复杂笼状结构),但对中等难度分子的区分力有限。切勿将其分数视为绝对真理,最好作为相对排序工具。
- 与生成模型结合:直接在训练循环中计算SA Score可能非常耗时。一种实用技巧是预计算一个大型分子库的SA Score,在生成时通过最近邻搜索或训练一个快速的SA Score预测器来近似评估。
4. 数据集的获取、预处理与实战管道搭建
知道了有哪些数据集,下一步就是如何获取并用于实际项目。这里分享一套从数据获取到模型输入的标准实战流程。
4.1 高效数据获取与本地管理
- 官方渠道优先:始终从数据集官方网站或权威镜像站下载。这能确保数据的最新性和完整性。例如,ChEMBL、PDB、PubChem都有明确的下载页面或API。
- 程序化访问:对于需要频繁查询或增量更新的数据(如想获取ChEMBL中某个特定靶点的最新化合物),学习使用其提供的API(如ChEMBL Webresource Client, PubChem PUG REST)是必备技能。这比手动下载和处理大型转储文件更灵活高效。
- 版本控制:在团队项目中,对下载的原始数据文件进行版本控制(如使用DVC或git LFS)至关重要。记录数据集的来源、版本号和下载日期,确保实验的可复现性。
- 本地数据库建设:对于核心数据集(如ChEMBL),建议将其导入本地关系型数据库(如PostgreSQL)或图数据库(如Neo4j)。这能极大加速复杂查询(如“找出所有对靶点X活性<100nM且LogP<3的化合物”)。可以使用官方提供的SQLite转储文件或自行编写ETL脚本。
4.2 数据预处理标准化流程
原始数据必须经过清洗和转换才能用于模型训练。以下是一个通用流程:
化合物标准化:
- 工具:主要使用RDKit。
- 步骤:去除盐和溶剂分子 -> 标准化互变异构体 -> 生成规范SMILES -> 手性信息处理(根据任务决定是否保留) -> 计算基础描述符(分子量、LogP、氢键供受体数等)用于后续过滤。
- 注意:标准化流程可能影响分子的化学意义,需根据下游任务谨慎选择。例如,在保留特定互变异构体对活性重要时,就不应进行标准化。
活性数据清洗:
- 单位统一与转换:将所有活性浓度统一为摩尔浓度(如nM),并转换为负对数形式(pIC50, pKi等),使数值分布更接近正态,且与活性正相关。
- 异常值处理:剔除明显超出物理合理范围的数值(如IC50为0或极大值)。对于同一化合物-靶点对的重复测量,取几何平均值或中位数。
- 阈值化(针对分类任务):根据领域知识设定活性/非活性的阈值。注意“灰色地带”化合物的处理,通常直接剔除。
数据集划分策略:
- 随机划分:最简单,但可能导致信息泄露(高度相似的分子分别出现在训练集和测试集),高估模型性能。仅适用于初步探索。
- 基于骨架/支架划分:按分子的核心骨架进行聚类划分,确保测试集中的分子骨架未在训练集中出现。这能更好地评估模型探索新化学空间的能力。可使用Bemis-Murcko骨架算法。
- 基于时间划分:模拟真实药物发现场景,用较早的数据训练,用较新的数据测试。评估模型对未来化合物的预测能力。
- 基于蛋白相似性划分:对于靶点相关的任务,确保训练集和测试集的蛋白质在序列或结构上具有较低相似性。这是PDBbind等数据集的标准做法。
4.3 构建可复现的数据处理管道
建议使用工作流管理工具(如Nextflow, Snakemake)或编写模块化的Python脚本,将上述步骤串联成一个从原始数据到模型就绪数据的自动化管道。关键组件包括:
- 下载模块:从源获取数据。
- 解析模块:读取特定格式(SDF, CSV, JSON)并提取所需字段。
- 清洗转换模块:执行标准化、去重、过滤等操作。
- 划分与序列化模块:按策略划分数据集,并保存为模型框架(如PyTorch的Dataset对象)可直接加载的格式(如HDF5, NPZ, TFRecord)。
这样,当数据集更新或处理逻辑调整时,只需重新运行管道即可,保证了数据预处理的一致性和效率。
5. 常见陷阱、挑战与应对策略
在实际使用这些公开数据集时,你会遇到各种预料之外的问题。以下是一些高频“坑点”及我的应对经验。
5.1 数据质量问题与应对
- 问题:活性数据冲突。同一个化合物对同一个靶点,在ChEMBL和PubChem中报告的活性值可能相差一个数量级。
- 应对策略:不要盲目平均。首先检查实验条件(物种、细胞系、检测方法)。优先采用更可靠来源的数据(如来自高水平期刊、使用标准方法的数据)。也可以将其作为一个不确定性建模问题,或者训练一个模型来预测不同来源数据的一致性。
- 问题:化合物结构错误。数据库中可能存在无效的SMILES、错误的立体化学或实际无法存在的结构。
- 应对策略:利用RDKit的
SanitizeMol功能进行初步过滤,剔除无法通过价键检查的分子。对于手性中心,如果任务不涉及立体化学,可以考虑去除手性信息;如果涉及,则需手动或通过规则检查其合理性。
- 应对策略:利用RDKit的
- 问题:蛋白质结构不完整或分辨率低。PDB中很多结构存在缺失的残基环区,或分辨率大于3.0Å,不适合用于精确的基于结构的设计。
- 应对策略:使用像PDBfixer、Modeller这样的工具修复缺失残基。对于低分辨率结构,可以考虑使用AlphaFold2等预测的高置信度结构作为补充或替代。始终将结构质量作为特征之一输入模型,或将其作为样本权重。
5.2 模型评估中的“虚假繁荣”
- 问题:数据泄露导致性能虚高。这是新手最容易犯的错误,例如在随机划分后,用整个数据集(包含训练集)做特征选择或超参数优化。
- 应对策略:严格遵守机器学习基本原则:在划分训练/验证/测试集后,任何基于数据的学习行为(包括特征选择、降维、归一化参数的拟合)都只能使用训练集的数据。使用交叉验证时,确保每一折的内部都遵循此规则。
- 问题:测试集不具有代表性。如果测试集分子与训练集分子高度相似(如同系物),即使模型没有真正学会泛化规则,也能取得好成绩。
- 应对策略:如前所述,采用基于骨架或时间的严格划分。报告性能时,同时给出在随机划分和严格划分下的结果,并明确说明划分方式,这已成为领域内报告模型性能的共识。
5.3 计算资源与效率瓶颈
- 问题:大规模分子库的特征计算或图构建耗时极长。例如,为千万级ZINC库计算摩根指纹或3D构象。
- 应对策略:
- 并行化:使用多进程(Python
multiprocessing)或分布式计算框架(如Dask, Spark)将任务分发。 - 增量处理与缓存:设计流水线时,将中间结果(如计算好的指纹)持久化存储(HDF5, Parquet格式),避免重复计算。
- 采样先行:在全面处理前,先对大数据集进行随机采样,在小样本上完成算法开发和验证流程,再扩展到全量数据。
- 使用高效库:对于3D构象生成,使用ConfGenx或ETKDG v3等更快的方法;对于分子描述符,考虑使用编译语言编写的库。
- 并行化:使用多进程(Python
- 应对策略:
5.4 领域知识融合的挑战
- 问题:纯数据驱动的模型可能违背化学常识。例如,生成的分子可能含有不稳定片段或违反立体电子规则。
- 应对策略:将领域知识作为硬约束或软约束融入模型。
- 后过滤:在模型输出后,用规则过滤器(如基于SMARTS模式的官能团过滤)剔除不合理分子。
- 约束采样:在生成过程中,通过强化学习奖励符合化学规则的分子,惩罚不合理分子。
- 知识注入:将化学规则(如价键规则、官能团兼容性)编码到模型架构中,例如在图神经网络的消息传递机制中加入化学键类型的约束。
- 应对策略:将领域知识作为硬约束或软约束融入模型。
6. 前沿趋势与个人实践心得
随着AI制药的快速发展,数据集本身也在演进。一些新的趋势值得关注:
- 多模态数据集的兴起:未来的数据集将更强调整合化学结构、生物活性、细胞影像、组学数据(基因组、蛋白质组)甚至真实世界证据(RWE)。例如,LINCS L1000数据集关联了化合物处理后的基因表达谱,为研究药物作用机制提供了新维度。
- 动态与时序数据:传统的静态活性数据正在向动态数据扩展,如化合物与靶点结合的动力学参数(kon, koff)、细胞水平的实时响应数据等,这对模型刻画动态过程提出了更高要求。
- 高质量负样本库的构建:社区越来越意识到负样本的重要性。像MoleculeNet中的某些子集,以及一些专门标注的非活性化合物库,正在被更广泛地使用。
- 联邦学习与隐私保护数据集:由于患者临床数据的高度敏感性,如何在保护隐私的前提下利用分散的数据进行模型训练成为热点。联邦学习框架下的基准数据集(如基于合成数据的)开始出现。
从我个人的项目经验来看,对待公开数据集最核心的心得是:永远保持批判性思维。不要将任何数据集视为“完美真理”。在开始建模前,花时间深入理解数据的来源、收集过程、潜在的偏见和局限性。进行彻底的数据探索性分析(EDA),绘制分布图,检查异常值,思考每个数据点背后的生物学和化学故事。很多时候,对数据本身的深刻洞察,比尝试更复杂的模型架构更能提升项目的最终效果。此外,建立一套属于自己的、可复现的数据处理流水线,是提升研究效率和质量的基础设施投资,长远来看回报巨大。