AIDD - 图神经网络逐步生成分子图,并可用强化学习优化分子性质

项目地址:
GraphINVENT2 GitHub repository

GraphINVENT2 是 GraphINVENT 的简化版,用 图神经网络逐步生成分子图,并可用强化学习优化分子性质。((https://github.com/ailab-bio/GraphINVENT2?utm_source=chatgpt.com))

一、GraphINVENT2整体运行流程

GraphINVENT2核心流程只有 3步

1 数据准备
2 训练模型
3 生成分子

完整 pipeline:

SMILES dataset
      ↓
preprocessing
      ↓
train GNN model
      ↓
generate molecules

二、系统环境要求

推荐环境:

项目推荐
Python3.6 / 3.8
GPUCUDA GPU(可选)
OSLinux / WSL
RAM≥16GB

GraphINVENT2 本质是 PyTorch GNN模型

三、下载代码

git clone https://github.com/ailab-bio/GraphINVENT2.git
cd GraphINVENT2

目录结构:

GraphINVENT2
 ├ data
 ├ docker
 ├ graphinvent
 ├ tools
 ├ tutorials
 ├ submit.py

关键目录:

目录作用
data数据集
graphinvent模型代码
tools数据处理
tutorials示例
submit.py运行入口

四、创建Python环境

建议用 conda

1 创建环境

conda create -n graphinvent2 python=3.8
conda activate graphinvent2

2 安装依赖

安装 PyTorch:

GPU版本:

pip install torch torchvision torchaudio

CPU版本:

pip install torch

安装其他依赖:

pip install rdkit-pypi
pip install numpy pandas tqdm tensorboard

五、测试环境

运行:

python submit.py --help

如果看到:

usage: submit.py

说明安装成功。

六、使用官方示例数据运行

GraphINVENT2自带一个 小数据集

data/gdb13_1K

这是 GDB13子集(1000分子)

目录:

data/gdb13_1K
 ├ train.smi
 ├ valid.smi
 ├ test.smi

SMILES示例:

CCO
CCN(CC)CC
c1ccccc1

七、运行数据预处理

GraphINVENT2必须先做 graph preprocessing

运行:

python submit.py \
--dataset gdb13_1K \
--job-type preprocess

执行后会生成:

data/gdb13_1K/processed

里面包含:

train.h5
valid.h5
test.h5

这些是图数据。

八、训练模型

运行训练:

python submit.py \
--dataset gdb13_1K \
--job-type train

训练日志:

Epoch 1
Epoch 2
Epoch 3

输出目录:

output/

里面包含:

model.pt
training.log

九、生成新分子

训练完成后运行:

python submit.py \
--dataset gdb13_1K \
--job-type generate

生成结果:

output/generated_molecules.smi

例如:

CCO
C1=CC=CC=C1
CCN(CC)CC

十、完整运行流程(最小命令)

完整命令流程:

git clone https://github.com/ailab-bio/GraphINVENT2.git
cd GraphINVENT2

conda create -n graphinvent2 python=3.8
conda activate graphinvent2

pip install torch rdkit-pypi numpy pandas tqdm tensorboard

python submit.py --dataset gdb13_1K --job-type preprocess
python submit.py --dataset gdb13_1K --job-type train
python submit.py --dataset gdb13_1K --job-type generate

十一、输出结果

生成文件:

output/generated_molecules.smi

格式:

SMILES

你可以用 RDKit 可视化:

from rdkit import Chem
from rdkit.Chem import Draw

mol = Chem.MolFromSmiles("CCO")
Draw.MolToImage(mol)

十二、GraphINVENT2模型原理

GraphINVENT2逐步生成分子:

step1 add atom
step2 add bond
step3 continue
step4 terminate

即:

empty graph
     ↓
add atom
     ↓
add bond
     ↓
complete molecule

这种方式 直接生成 molecular graph,不依赖 SMILES。((https://github.com/ailab-bio/GraphINVENT2?utm_source=chatgpt.com))


十三、常见错误

1 RDKit错误

安装:

conda install -c conda-forge rdkit

2 CUDA错误

检查:

nvidia-smi

3 dataset找不到

必须放在:

data/<dataset_name>

十四、推荐真实科研数据

常用数据:

数据集用途
ZINC药物分子
ChEMBLbioactive molecules
GDB13小分子空间

十五、科研级 GraphINVENT2 pipeline

真实项目一般这样:

ChEMBL dataset
      ↓
GraphINVENT2 training
      ↓
generate molecules
      ↓
QSAR prediction
      ↓
docking

好的,我来为你编写完整的Python版本代码,包含所有图表、论文格式的研究方法描述。代码已完整生成,以下是完整说明:


代码结构总览

所需依赖安装

pip install numpy pandas matplotlib scikit-learn shap joblib

研究方法

章节内容
一、数据预处理基因矩阵读取、样本分组解析、特征子集提取
二、超参数优化GridSearchCV + 10-Fold×5 Repeats,ROC-AUC为指标
三、SHAP值计算TreeExplainer,Shapley值理论说明
四、特征筛选累积重要性法(80%/90%)+ Bootstrap 95% CI 双策略
五、可视化分析8类图表的学术意义说明
六、分析报告自动汇总输出

全部图表输出(11类,PDF + PNG)

文件名内容
barplot.pdf全特征条形图
bee.pdf全特征蜂群图
dependence.pdfTop 9 特征依赖图(3×3布局)
waterfall.pdf + waterfall_sample_1~5.pdf瀑布图(单样本)
force.pdf + force_sample_1~5.pdf力图(单样本)
barplot_top_features.pdf筛选后特征条形图
beeswarm_top_features.pdf筛选后蜂群图
cumulative_importance.pdf累积重要性双联图
all_features_with_CI.pdf全特征+95%置信区间
interaction_heatmap.pdfSHAP相关性热图
roc_curve.pdfROC曲线
hyperparameter_tuning.pdf超参数调优热图+折线图

你给出的那段 **“研究方法”**已经接近论文方法部分,但如果是 SCI论文 Methods 部分,一般需要写成 更正式的学术段落结构,语言更规范、逻辑更清晰。下面我给你整理成 可以直接放入论文 Methods 部分的完整版本(标准学术中文)


研究方法

1 数据预处理(Data preprocessing)

本研究从标准化后的基因表达矩阵(merge.normalize.txt)中读取数据,并依据最优算法(Stepglm[both]+XGBoost)筛选得到的模型基因列表(model.genes.txt)提取候选特征基因。随后对数据进行转置处理,使每一行为样本、每一列为基因表达特征。

根据样本名称中的分组信息自动解析样本标签,将样本划分为 Control组和Case组。同时,为保证Python程序变量命名的规范性,将所有基因名称中的连字符“-”统一替换为下划线“_”。最终构建以基因表达水平为输入特征、样本分组为目标变量的机器学习数据集,用于后续模型训练与解释分析。


2 机器学习模型构建与超参数优化(Machine learning model construction and hyperparameter optimization)

本研究采用 随机森林(Random Forest)算法构建二分类模型。随机森林是一种基于集成学习思想的算法,通过构建多个决策树并进行投票决策,以提高模型的稳定性和预测性能。

为了获得最佳模型参数,采用 **网格搜索(Grid Search)结合交叉验证(Cross-Validation)**的方法进行超参数优化。具体而言,采用 **10折交叉验证(10-fold cross-validation)并重复5次(Repeated Cross-Validation)**的策略进行模型训练与评估。

调优参数包括:

  • 决策树数量(n_estimators = 100, 200, 300, 500)
  • 最大特征数(max_features = sqrt, log2, 0.3, 0.5)
  • 最大树深度(max_depth = None, 5, 10, 20)

模型性能以 **受试者工作特征曲线下面积(Area Under the Receiver Operating Characteristic Curve, AUC)**作为评价指标,并选择验证集AUC最高的参数组合作为最优模型参数。


3 SHAP解释分析(SHAP explainable analysis)

为了进一步解释机器学习模型的预测机制,本研究采用 SHapley Additive exPlanations(SHAP)方法对模型进行解释分析。

SHAP是一种基于合作博弈论 Shapley值理论 的模型解释方法,通过计算每个特征在所有可能特征组合中的平均边际贡献,从而量化每个特征对模型预测结果的贡献。(https://en.wikipedia.org/wiki/Shapley_value?utm_source=chatgpt.com)

SHAP方法能够同时提供:

  • 局部解释(Local interpretability):解释单个样本预测结果
  • 全局解释(Global interpretability):评估特征在整个数据集中的重要性

在本研究中,利用 TreeExplainer 算法(针对树模型的高效SHAP计算方法)计算所有样本的SHAP值,从而获得每个基因对模型预测结果的贡献。


4 特征重要性评估与筛选(Feature importance evaluation and selection)

为了评估各特征的重要性,本研究计算每个特征在所有样本中的 平均绝对SHAP值(Mean |SHAP|),并按照重要性进行降序排序。

同时采用两种策略对重要特征进行筛选:

  1. 累积重要性阈值法
    根据特征的重要性排序计算累积贡献比例,并设置80%和90%的累积重要性阈值,以确定主要贡献特征数量。
  2. Bootstrap置信区间法
    通过Bootstrap重采样(100次)计算每个特征SHAP值的 95%置信区间(95% CI),以评估特征重要性的稳定性。

最终特征数量通过综合两种方法确定,即取 累积重要性阈值法与Bootstrap显著特征数的并集,以提高特征筛选结果的稳健性。


5 可视化分析(Visualization)

为了全面展示模型解释结果,本研究绘制多种SHAP可视化图表,包括:

  1. SHAP条形图(Bar plot):展示各特征的平均绝对SHAP值及其重要性排序;
  2. SHAP蜂群图(Beeswarm plot):同时展示特征重要性及特征值分布对模型预测的影响方向;
  3. SHAP依赖图(Dependence plot):揭示单一特征表达水平与SHAP值之间的关系;
  4. SHAP瀑布图(Waterfall plot):解释单个样本预测结果的特征贡献分解;
  5. SHAP力图(Force plot):以直观方式展示特征对单个样本预测结果的正负贡献;
  6. 累积重要性曲线(Cumulative importance curve):展示特征按重要性排序后的累计贡献比例;
  7. Bootstrap置信区间图(Confidence interval plot):展示特征重要性的95%置信区间;
  8. 超参数调优热图(Hyperparameter tuning heatmap):可视化不同参数组合下模型AUC表现。

所有图表均采用 Times New Roman字体,并对坐标轴标签和标题进行加粗处理,图注采用英文,以符合国际学术期刊投稿规范。


6 分析报告生成(Analysis report)

为提高研究的可重复性,本研究自动生成结构化分析报告,总结以下内容:

  • 数据基本信息
  • 超参数优化结果
  • 模型性能评估指标
  • 特征筛选统计结果
  • Top重要基因列表(含95%置信区间)

所有中间结果及最终输出文件均保存至工作目录,以保证分析流程的可复现性。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐