PaddleHelix 上手指南:GeoGNN 预测与 MolVAE 生成的两大核心能力一次讲清 PaddleHelix 上手指南GeoGNN 预测与 MolVAE 生成的两大核心能力一次讲清【免费下载链接】PaddleHelixBio-Computing Platform Featuring Large-Scale Representation Learning and Multi-Task Deep Learning “螺旋桨”生物计算工具集项目地址: https://gitcode.com/GitHub_Trending/pa/PaddleHelixPaddleHelix 是百度推出的生物计算工具集构建在 PaddlePaddle 之上。本文按任务场景讲清它的两条分子建模主线用 GeoGNN 做分子属性预测用 MolVAE 从 SMILES 序列生成新分子。定位把预测和生成做成两条独立流水线如果只做一件事PaddleHelix 解决的是分子建模这一件事但拆成了两个方向给定分子预测它的性质给定目标造出一个新分子。前者靠图神经网络 GeoGNN后者靠变分自编码器 MolVAE。仓库的组织方式也印证了这一点模型定义放在 pahelix/model_zoo/ 下复用具体任务的训练、微调、采样脚本则按应用分放在apps/下。整体来看上层是药物协同、药物-靶点相互作用、化合物生成等应用场景中层是 GeoGNN、GIN/GCN/GAT 等网络组件底层是 PGL 图引擎、标准数据集和工具包。理解了这张图后面两条线的入口就都有了。能力速览预测线与生成线主线代表模型输入解决什么预测线GeoGNN分子图原子 键 键角分子属性预测、药物-靶点相互作用等生成线MolVAE序列 VAESMILES 字符串采样生成新分子、扩展化合物库两条线互相独立预测线回答这个分子行不行生成线回答能不能造一个更好的分子。做药物发现时常见的 pipeline 是先生成一批候选再用预测模型打分筛选。场景一分子属性预测怎么做GeoGNN它是怎么做到的把分子想象成一张3D 图纸拓扑结构告诉你要画哪些部件几何信息告诉你在空间里摆成什么角度。多数图神经网络只读图纸的连线部分而 GeoGNN 把两部分都读了。具体拆开看有四件事原子-键 键角双通道模型同时维护原子-键图和键角图键角信息通过BondAngleFloatRBF这类径向基编码层变成连续向量空间构型不再丢失。键长等几何量向量化BondFloatRBF把键长这类浮点几何特征编码进边特征让网络看见分子的空间形状。GIN 消息传递 残差堆叠节点更新基于 GIN 结构默认堆 8 层每层带 LayerNorm、GraphNorm 和残差连接逐层提取高阶结构特征。可配置读出图级表示默认用均值池化readoutmean下游接分类或回归头即可。实现入口在 pahelix/model_zoo/gem_model.py其中GeoGNNModel是完整定义配套的原子/键嵌入与 RBF 编码层在 pahelix/networks/compound_encoder.py。上面这张图展示的是 GNN 预训练的一般分类思路节点级任务属性掩码、上下文预测负责局部表示图级任务属性预测、结构相似度负责全局表示节点级 图级联合通常效果最好。GeoGNN 所在的 GEM 方案就属于这一思路下的几何增强版本。在哪些任务里能用 关键代码路径GeoGNN 主要作为预训练编码器使用先在大量分子上做自监督预训练再冻结或微调地接到下游任务上。仓库里可直接参考的入口预训练主脚本apps/pretrained_compound/ChemRL/GEM/pretrain.py分类微调apps/pretrained_compound/ChemRL/GEM/finetune_class.py回归微调apps/pretrained_compound/ChemRL/GEM/finetune_regr.py药物-靶点相互作用DTA应用apps/drug_target_interaction/graph_dta/分子对接场景apps/molecular_docking/helixdock/一个实用提示GEM 的 README 提供了预训练好的模型压缩包可直接跳过耗时数小时的预训练步骤直接做下游微调。场景二新分子生成怎么做MolVAE生成流程拆解MolVAE 的思路可以类比压缩—取点—渲染先把一条 SMILES 字符串压成潜在空间里的一小组坐标然后在坐标系里取一个新点再把这个点渲染回一条 SMILES 字符串。整个过程分三步编码序列经 embedding 后送入 GRU 编码器支持双向输出潜在分布的均值 μ 和对数方差 log σ²。采样用重参数化技巧从分布中采样得到潜在向量 z。训练时 z 来自真实分子推理时可以纯粹从先验 p(z) 里随机取点——取出来的点就对应一个新分子。解码GRU 解码器以 z 为初始隐状态逐 token 生成 SMILES。损失函数由两部分构成重构损失保证解码出来的序列合法、可学KL 散度约束潜在分布贴近先验让随机取点这件事有意义。训练脚本里还内置了 KL 退火--kl_start、--kl_w_start、--kl_w_end避免训练早期 KL 项压垮重构。模型定义在 pahelix/model_zoo/seq_vae_model.pyVAE类encoder 到 decoder 完整实现。pahelix/model_zoo/下还有一个树结构方向的 pahelix/model_zoo/sd_vae_model.py面向分子树/属性解码场景与序列版互为补充。训练与使用入口训练/采样脚本apps/molecular_generation/seq_VAE/trainer.py模型超参apps/molecular_generation/seq_VAE/model_config.json控制编码器/解码器层数、隐层维度、潜在空间维度d_z、embedding 是否冻结等训练参数默认值apps/molecular_generation/seq_VAE/args.py说明文档apps/molecular_generation/seq_VAE/README_cn.md官方 demo 使用 ZINC Clean Leads 子集作为训练数据数据与预训练模型的下载方式写在 README 中。生成侧的常见用法是训好的模型加载后从先验分布采样 z 批量解码再用 RDKit 做合法性过滤得到一批候选新分子。选型建议你的任务该走哪条线你的任务建议路线参考入口预测分子性质毒性、溶解度、活性等GeoGNN 预训练 微调apps/pretrained_compound/ChemRL/GEM/药物-靶点相互作用打分以 GeoGNN 为分子编码器的 DTA 方案apps/drug_target_interaction/graph_dta/批量生成新分子、扩展化合物库MolVAE 从先验采样解码apps/molecular_generation/seq_VAE/分子生成 性质筛选的完整流程两条线串联MolVAE 生成GeoGNN 打分上述两者组合一个边界说明GeoGNN 依赖分子的 3D 几何信息数据准备阶段需要做 MMFF 力场优化等预处理这一步比较耗时MolVAE 的生成质量受训练集规模影响官方 demo 用的是 ZINC 子集追求更多样化结果时应换用更完整的数据集。快速上手三步跑通第一步拿到代码git clone https://gitcode.com/GitHub_Trending/pa/PaddleHelix cd PaddleHelix第二步预测线进入 apps/pretrained_compound/ChemRL/GEM/按该目录 README 准备 demo 数据跑预训练或直接用官方预训练模型做finetune_class/finetune_regr微调。第二步生成线进入 apps/molecular_generation/seq_VAE/把数据解压到./data后启动训练CUDA_VISIBLE_DEVICES0 python trainer.py \ --devicegpu \ --dataset_dir./data/zinc_moses/train.csv \ --model_configmodel_config.json \ --model_save./results/train_models/训练完成后同一个入口流程支持从先验采样生成新分子配合 RDKit 校验即可产出候选化合物。写在最后PaddleHelix 把预测和生成拆成两条可独立运行的流水线GeoGNN 负责让模型读懂分子的几何与拓扑MolVAE 负责在潜在空间里造分子。两条线串起来就是一个最小可用的分子设计 pipeline生成候选、预测打分、迭代筛选。后续想深入网络组件或数据集接口建议从 docs/ 的 API 文档和 tutorials/ 里的 notebook 继续看它们覆盖了从化合物性质预测到分子生成的完整示例。【免费下载链接】PaddleHelixBio-Computing Platform Featuring Large-Scale Representation Learning and Multi-Task Deep Learning “螺旋桨”生物计算工具集项目地址: https://gitcode.com/GitHub_Trending/pa/PaddleHelix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考