DeepChem 实战:基于 ToxCast 数据集训练多任务随机森林毒性预测模型
DeepChem 实战基于 ToxCast 数据集训练多任务随机森林毒性预测模型【免费下载链接】deepchemDemocratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology项目地址: https://gitcode.com/GitHub_Trending/de/deepchemToxCast 是美国 EPA 主导的体外高通量毒性筛选计划与 Tox21 同源其公开数据包含 8000 余种化合物在超过 600 项生化与细胞实验上的定性结果。本篇指南以 examples/toxcast/README.md 为核心骨架完整讲解如何在 DeepChem 中加载 ToxCast 数据、进行特征化与数据变换、划分训练/验证/测试集并训练一个可复用的多任务随机森林分类模型同时结合仓库源码与底层molnet加载器补充实现细节。ToxCast 数据集是什么ToxCastToxicity Forecaster与 Tox21 来自同一研究倡议但数据规模更大它基于体外高通量筛选in vitro high-throughput screening对大型化合物库进行毒理学测试。DeepChem 仓库中经过处理的 ToxCast 集合包含超过 600 项实验在约 8000 种化合物上的定性结果。该数据集的原始来源论文为Richard, Ann M., et al. ToxCast chemical landscape: paving the road to 21st century toxicology. Chemical research in toxicology 29.8 (2016): 1225-1251.原始数据文件是一个 CSV 表格其中被 DeepChem 使用的列包括列含义smiles化合物分子结构的 SMILES 表示ACEA_T47D_80hr_Negative~Tanguay_ZF_120hpf_YSE_up各生物测定Bioassay的实验结果列任务列的命名遵循检测平台_细胞类型/模型_时间点_读出信号的约定例如ATG_AR_TRANS_up雄激素受体报告基因上调、TOX21_ERa_BLA_Agonist_ratio雌激素受体激动剂比率、Tanguay_ZF_120hpf_MORT_up斑马鱼胚胎致死等具体实验信息可参考 EPA 官网的 high-throughput assay information 栏目。数据加载器从 CSV 到 DeepChem 数据集本示例的自定义加载器位于 examples/toxcast/toxcast_datasets.py其核心函数为load_toxcast(featurizerECFP, splitindex)完整流程如下import os import deepchem as dc def load_toxcast(featurizerECFP, splitindex): current_dir os.path.dirname(os.path.realpath(__file__)) dataset_file os.path.join(current_dir, ./processing/toxcast_data.csv.gz) dataset dc.utils.save.load_from_disk(dataset_file) if featurizer ECFP: featurizer dc.feat.CircularFingerprint(size1024) elif featurizer GraphConv: featurizer dc.feat.ConvMolFeaturizer() TOXCAST_tasks dataset.columns.values[1:].tolist() # 第一列是 smiles其余全是任务列 loader dc.data.CSVLoader( tasksTOXCAST_tasks, smiles_fieldsmiles, featurizerfeaturizer) dataset loader.featurize(dataset_file) return TOXCAST_tasks, (train, valid, test), transformers这段代码揭示了 ToxCast 示例的几个关键设计任务列的自动推导通过dataset.columns.values[1:].tolist()把 CSV 中除smiles外的所有列当作多任务学习的标签列无需手工维护任务清单——这正是 ToxCast 数据列即实验的体现。数据文件位置实际数据位于 examples/toxcast/processing/toxcast_data.csv.gz仓库同时保留了toxcast_539.csv.gz与toxcast_571.csv.gz等中间版本可通过 processing/tox.py 的加工流程追溯生成过程详见下文。支持的两种特征化方式load_toxcast通过字符串参数切换特征化器featurizer取值实际特征化器说明ECFP默认dc.feat.CircularFingerprint(size1024)1024 位圆形ECFP指纹基于 RDKit 实现适合传统机器学习模型GraphConvdc.feat.ConvMolFeaturizer()分子图卷积特征为图神经网络模型准备指纹特征与图特征的关键差异在于ECFP 把分子编码为定长 0/1 向量可直接输入随机森林等 sklearn 模型ConvMolFeaturizer则生成带原子邻接关系的图结构需要配合图卷积类模型使用。数据平衡变换与数据集划分加载器在返回数据前还做了两项重要的预处理# 1. 类别平衡变换为不平衡的多任务分类数据自动加权 transformers [dc.trans.BalancingTransformer(datasetdataset)] for transformer in transformers: dataset transformer.transform(dataset) # 2. 数据集划分 splitters { index: dc.splits.IndexSplitter(), random: dc.splits.RandomSplitter(), scaffold: dc.splits.ScaffoldSplitter() } splitter splitters[split] train, valid, test splitter.train_valid_test_split(dataset)BalancingTransformerToxCast 数据严重不平衡阴性远多于阳性见 examples/low_data/toxcast_maml.py 中的注释该变换器会为每个任务计算样本权重让训练时少数类获得更高权重是提升多任务毒性模型效果的关键一步。三种内置划分器IndexSplitter按顺序划分默认、RandomSplitter随机划分、ScaffoldSplitter按分子骨架划分用于评估泛化到新化学骨架的能力。使用时只需把split参数改为random或scaffold即可切换。训练多任务随机森林模型examples/toxcast/toxcast_rf.py 展示了完整的训练脚本其核心思想是SingletaskToMultitask为每一个任务单独训练一个随机森林子模型再统一管理from sklearn.ensemble import RandomForestClassifier from deepchem.molnet import load_toxcast import deepchem as dc toxcast_tasks, toxcast_datasets, transformers load_toxcast() (train_dataset, valid_dataset, test_dataset) toxcast_datasets metric dc.metrics.Metric(dc.metrics.roc_auc_score, np.mean) def model_builder(model_dir): sklearn_model RandomForestClassifier( class_weightbalanced, n_estimators500, n_jobs-1) return dc.models.SklearnModel(sklearn_model, model_dir) model dc.models.SingletaskToMultitask(toxcast_tasks, model_builder) model.fit(train_dataset)注意这里直接使用from deepchem.molnet import load_toxcast即调用的是 MolNet 提供的官方加载器见下文而非示例目录下的同名函数——两条路径最终产出的数据结构一致(tasks, (train, valid, test), transformers)。关键参数说明配置值作用class_weightbalancedsklearn 内置参数与BalancingTransformer形成双保险进一步缓解类别不平衡n_estimators500随机森林超参数500 棵决策树兼顾精度与训练耗时n_jobs-1随机森林超参数使用全部 CPU 核心并行训练加快速度SingletaskToMultitaskDeepChem 封装按任务列表为每个任务构造独立子模型评估时自动汇总模型训练完成后使用 ROC-AUC 作为评估指标多个任务的均值分别对训练集和验证集打分train_scores model.evaluate(train_dataset, [metric], transformers) valid_scores model.evaluate(valid_dataset, [metric], transformers)evaluate会返回每个任务的 ROC-AUC 及整体均值。对 ToxCast 这种典型的多任务毒性筛选场景ROC-AUC 能较好衡量模型在阳性样本极少情况下的排序能力。运行方式确保 DeepChem 已正确安装后在仓库根目录执行python examples/toxcast/toxcast_rf.py脚本会自动完成数据加载、特征化、变换、训练与评估并依次打印训练集与验证集的评估分数。MolNet 官方加载器更现代的调用方式示例脚本中实际使用的deepchem.molnet.load_toxcast定义在 deepchem/molnet/load_function/toxcast_datasets.py它比示例目录下的旧版加载器功能更完整是当前推荐入口。其完整签名如下def load_toxcast( featurizerECFP, splitterscaffold, transformers[balancing], reloadTrue, data_dirNone, save_dirNone, **kwargs ) - (tasks, (train, valid, test), transformers)相比旧版加载器的主要增强自动下载若本地不存在数据会从TOXCAST_URLDeepChem 官方数据仓库自动下载toxcast_data.csv.gz到data_dir无需手工准备数据文件。内置完整任务清单模块顶部定义了TOXCAST_TASKS列表deepchem/molnet/load_function/toxcast_datasets.py共 617 项任务涵盖核受体AR/ER/PPAR/VDR 等、应激通路ARE/HSE/NFkB、ADME 相关酶CYP450 系列、离子通道、GPCR、斑马鱼发育毒性Tanguay_ZF_120hpf_*等多个毒理学终点。缓存机制reloadTrue时首次调用会按特征化器 划分器的组合把处理好的数据集缓存到磁盘后续调用直接加载缓存避免重复特征化。参数化更灵活featurizer、splitter、transformers均可传字符串或对象splitterNone时不划分全部数据作为单一数据集返回。大数据集分片加载内部通过CSVLoader.create_dataset(dataset_file, shard_size8192)以 8192 行为一个分片shard进行特征化内存友好。MolNet 加载器是 DeepChem 全部基准数据集tox21、sider、pcba、muv 等的统一入口deepchem/molnet/run_benchmark.py 中把toxcast注册进MODELS与DATASETS字典因此 ToxCast 也可直接参与run_benchmark.py的自动化基准评测模型包括 rf、tf、graphconv、weave 等详见该文件的模型注册表。原始数据的加工管线examples/toxcast/processing/tox.py 记录了 ToxCast 原始数据到toxcast_data.csv.gz的加工过程可以理解为数据血缘lineage说明读取三份中间文件casn_to_smiles.csv.gzCAS 登记号 → SMILES、code_to_casn.csv.gz实验代号 → CAS 号、code_to_hitc.csv.gz实验代号 × 化合物的命中矩阵 hit-call通过code → casn → smiles两级映射把命中矩阵中的实验代号替换为 SMILES 字符串丢弃无法映射到 SMILES 的行脚本中以badCounter统计处理缺失值后输出reprocessed_tox_cast.csv。这条管线说明 ToxCast 的最终 CSV 中的smiles列是从化学登记号体系CASRN映射而来而非直接由 EPA 提供 SMILES理解这一点有助于排查数据质量问题。进阶场景ToxCast 用于小样本元学习由于 ToxCast 任务数量多617 项但单任务样本稀疏它还是 DeepChem 元学习Meta-Learning示例的理想数据源。examples/low_data/toxcast_maml.py 演示了使用 MAMLModel-Agnostic Meta-Learning在 ToxCast 上做小样本毒性预测数据规模脚本注释明确指出 ToxCast 包含6874 个分子、617 个任务且数据高度稀疏——大多数任务只覆盖少数分子且阴性远多于阳性每任务构造正负样本交替的批次保证每个 batch 正负例数量均衡用 80% 的任务做元训练剩余任务做验证比较微调前后compute_scores(False)vscompute_scores(True)的 ROC-AUC 与准确率变化。该示例展示了同一份 ToxCast 数据在不同学习范式多任务分类 vs 元学习下的复用方式也印证了任务多、样本稀疏、类别不平衡是 ToxCast 的核心数据特征建模时需针对性处理。小结从 examples/toxcast/README.md 出发本文完整覆盖了 ToxCast 毒理学数据的加载、特征化、平衡变换、数据集划分与多任务随机森林训练全流程。实践中的关键要点可归纳为数据形态CSV 中smiles列 617 个实验任务列约 8000 化合物定性二分类结果两类入口旧版 toxcast_datasets.py本地文件 三种划分器与新版 MolNet 加载器自动下载 缓存 更全的参数化推荐使用后者不平衡处理BalancingTransformer与随机森林的class_weightbalanced双管齐下模型结构SingletaskToMultitask为每个任务构建独立随机森林500 棵树、全核并行以 ROC-AUC 均值评估进阶方向同一数据集可迁移到 MAML 元学习、图卷积等更复杂的建模方案。如需继续探索可参考仓库内相关实现ToxCast MolNet 加载器、数据加工脚本、基准评测注册表、MAML 元学习示例。【免费下载链接】deepchemDemocratizing Deep-Learning for Drug Discovery, Quantum Chemistry, Materials Science and Biology项目地址: https://gitcode.com/GitHub_Trending/de/deepchem创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

TSCTA 006-2021工业数据建模:从契约定义到可执行DDL

TSCTA 006-2021工业数据建模:从契约定义到可执行DDL

简介:本资源为上海市计算机行业协会发布的团体标准TSCTA 006-2021《工业大数据平台 数据建模 技术规范》,面向工业大数据平台建设方、软件开发与实施企业、测试及咨询服务机构,解决工业场景下数据建模缺乏统一方法论与技术路径的问题。标准系…

2026/9/18 13:29:21 阅读更多 →
Python+CNN垃圾分类:从数据到模型训练全流程

Python+CNN垃圾分类:从数据到模型训练全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 13:28:00 阅读更多 →
微信小程序登录与手机号获取:前端到后端全链路实战

微信小程序登录与手机号获取:前端到后端全链路实战

1. 先搞明白:微信小程序的信息获取链路到底长什么样做小程序开发,最绕不开的一件事就是"怎么拿到微信用户的身份信息和手机号"。不管你是要做会员登录、电商下单、还是做用户画像,第一步都是先解决"这个用户是谁"的问题。…

2026/9/17 8:58:15 阅读更多 →

最新新闻

Hugo Page.ReadingTime 方法详解:估算阅读时间的计算原理与多语言定制

Hugo Page.ReadingTime 方法详解:估算阅读时间的计算原理与多语言定制

Hugo Page.ReadingTime 方法详解:估算阅读时间的计算原理与多语言定制 【免费下载链接】hugo The world’s fastest framework for building websites. 项目地址: https://gitcode.com/gh_mirrors/hu/hugo 导读 Page.ReadingTime 是 Hugo 模板中用于估算页面…

2026/9/19 17:13:44 阅读更多 →
N_m3u8DL-RE 流媒体下载实战:3 条命令把在线课程和直播存下来

N_m3u8DL-RE 流媒体下载实战:3 条命令把在线课程和直播存下来

N_m3u8DL-RE 流媒体下载实战:3 条命令把在线课程和直播存下来 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8D…

2026/9/19 17:13:44 阅读更多 →
信息化售后服务方案:从文档交付到自动运维闭环

信息化售后服务方案:从文档交付到自动运维闭环

简介:本资源是一份完整的信息化售后服务方案专业文档,面向信息系统集成商、IT运维团队及企业数字化建设负责人,解决项目交付后系统长期稳定运行与持续服务能力构建问题。方案覆盖技术支持、系统维护、安全咨询、通告服务、5年硬件保修及软件升…

2026/9/19 17:13:44 阅读更多 →
Mac 菜单栏管理工具 Ice:免费开源、5 分钟装好、图标隐藏排序完整指南

Mac 菜单栏管理工具 Ice:免费开源、5 分钟装好、图标隐藏排序完整指南

Mac 菜单栏管理工具 Ice:免费开源、5 分钟装好、图标隐藏排序完整指南 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice Mac 菜单栏被各种图标挤爆,Wi-Fi 和电池图标被推到最角…

2026/9/19 17:13:43 阅读更多 →
ABB RAPID高级编程:事件程序、多任务与错误处理实战指南

ABB RAPID高级编程:事件程序、多任务与错误处理实战指南

简介:这是一份面向ABB机器人工程师与自动化集成人员的高级编程学习资料,系统讲解RAPID语言中事件程序(Event Routine)、多任务(MultiTasking)与错误处理(ErrorHandle)三个核心主题。文档采用任务实施式编排,从控制面板配置到程序编辑器编写&a…

2026/9/19 17:13:43 阅读更多 →
人工智能优化税务审计与合规:从规则引擎到可解释风险排序模型

人工智能优化税务审计与合规:从规则引擎到可解释风险排序模型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 17:12:43 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →