Skip to content

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MV-KAN: Multi-View Kolmogorov-Arnold Networks for Molecular Property Prediction

Language / 语言: English | 中文


English Documentation

Overview

MVKAN (Multi-View Kolmogorov-Arnold Networks) is a deep learning framework for molecular property prediction that combines:

  • Multi-view molecular representations (atoms/bonds, fragments, substructures)
  • Kolmogorov-Arnold Networks (KAN) with Fourier feature expansion
  • Graph Neural Networks (GNN) for molecular structure encoding

The framework supports both classification and regression tasks across various molecular property prediction benchmarks.

Key Features

  • 🧬 Multi-view Learning: Integrates multiple molecular representations for robust predictions
  • 🔄 KAN Architecture: Leverages Fourier-based KAN variants for enhanced expressiveness
  • 📊 Comprehensive Benchmarks: Supports popular small molecule datasets (BBBP, BACE, SIDER, Tox21, etc.)
  • 🎯 Dual-task Support: Classification and regression tasks

Directory Structure

MVKAN/
├── main.py                          # Project entry point
├── molgraph/
│   ├── graphmodel.py               # Core graph neural network model
│   ├── fourier_kan.py              # Fourier-based KAN implementation
│   ├── gineconv.py                 # Graph Isomorphism Network layers
│   ├── training.py                 # Training pipeline
│   ├── testing.py                  # Single model evaluation
│   ├── testingconsensus.py         # Multi-view consensus evaluation
│   ├── interpret.py                # Model interpretation & visualization
│   ├── visualize.py                # Molecular graph visualization
│   ├── molgraphdisplay.py          # Graph display utilities
│   ├── fragmentation.py            # Molecular fragmentation
│   ├── substructurevocab.py        # Substructure vocabulary
│   ├── dataset.py                  # Data loading & preprocessing
│   ├── hyperparameter.py           # Default hyperparameters
│   └── experiment.py               # Experiment management
└── requirements.txt

Installation

Prerequisites

  • Python 3.8+
  • CUDA 11.0+ (optional, for GPU acceleration)

Setup

# Clone repository
git clone https://github.com/feiyangx883-ctrl/MVKAN.git
cd MVKAN

# Create virtual environment
conda create -n mvkan python=3.9 -y
conda activate mvkan

# Install dependencies
pip install -r requirements.txt

Key Dependencies

torch>=1.12.0
torch-geometric>=2.0.0
rdkit>=2021.09
numpy
pandas
matplotlib
scikit-learn

Datasets

The framework supports small molecule property prediction on multiple benchmarks:

Classification Tasks

Dataset Task # Samples # Features Download
BBBP Blood-Brain Barrier Penetration 2,050 2D structure MoleculeNet
BACE BACE Inhibition 1,513 2D structure MoleculeNet
SIDER Side Effect Prediction 1,427 2D structure MoleculeNet
Tox21 Toxicology Prediction 7,831 2D structure MoleculeNet

Regression Tasks

Dataset Task # Samples # Features Download
ESOL Water Solubility 1,128 2D structure MoleculeNet
Lipophilicity Octanol-Water Partition 4,200 2D structure MoleculeNet
FreeSolv Free Solvation Energy 642 2D structure MoleculeNet

Quick Start

1. Prepare Data

# Ensure the data directory structure:
# dataset/
# ├── BBBP.csv
# ├── BACE.csv
# ├── SIDER.csv
# └── Tox21.csv

2. Configure Hyperparameters

CUDA_VISIBLE_DEVICES=1
python main.py -f bbbp -m GAT --schema AR --reduced substructure functional
--mol_embedding 128  --batch_normalize --heads 5 --num_layers 3 --batch_size 64
--dropout 0.18 --fold 5 --seed 42 --use_kan_readout --kan_grid_size 3 --kan_readout_norm batchnorm

Results & Benchmarks

Expected performance on standard benchmarks (varies based on hyperparameters):

Dataset Task Metric Performance
BBBP Classification ROC-AUC ~0.93
BACE Classification ROC-AUC ~0.90
SIDER Classification ROC-AUC ~0.63
Tox21 Classification ROC-AUC ~0.84
ESOL Regression RMSE ~0.81
Lipophilicity Regression RMSE ~0.61
FreeSolv Regression RMSE ~1.97

Note: Results are approximate and may vary based on model configuration and training setup.

License

[MIT]


中文文档

项目概述

MVKAN(多视图Kolmogorov-Arnold网络)是一个用于分子性质预测的深度学习框架,结合了:

  • 多视图分子表示(原子/键、碎片、子结构)
  • Kolmogorov-Arnold网络(KAN) 与傅里叶特征扩展
  • 图神经网络(GNN) 用于分子结构编码

该框架支持分类和回归任务,适用于各种分子性质预测基准测试。

主要特性

  • 🧬 多视图学习:集成多种分子表示形式以实现鲁棒预测
  • 🔄 KAN架构:利用基于傅里叶的KAN变体提高模型表达能力
  • 📊 全面的基准测试:支持流行的小分子数据集(BBBP、BACE、SIDER、Tox21等)
  • 🎯 双重任务支持:分类和回归任务

目录结构

MVKAN/
├── main.py                          # 项目入口
├── molgraph/
│   ├── graphmodel.py               # 核心图神经网络模型
│   ├── fourier_kan.py              # 傅里叶基础KAN实现
│   ├── gineconv.py                 # 图同构网络层
│   ├── training.py                 # 训练流程
│   ├── testing.py                  # 单个模型评估
│   ├── testingconsensus.py         # 多视图共识评估
│   ├── interpret.py                # 模型解释与可视化
│   ├── visualize.py                # 分子图可视化
│   ├── molgraphdisplay.py          # 图表显示工具
│   ├── fragmentation.py            # 分子碎片化
│   ├── substructurevocab.py        # 子结构词表
│   ├── dataset.py                  # 数据加载与预处理
│   ├── hyperparameter.py           # 默认超参数
│   └── experiment.py               # 实验管理
└── requirements.txt

安装

系统要求

  • Python 3.8+
  • CUDA 11.0+(可选,用于GPU加速)

步骤

# 克隆仓库
git clone https://github.com/feiyangx883-ctrl/MVKAN.git
cd MVKAN

# 创建虚拟环境
conda create -n mvkan python=3.9 -y
conda activate mvkan

# 安装依赖
pip install -r requirements.txt

主要依赖

torch>=1.12.0
torch-geometric>=2.0.0
rdkit>=2021.09
numpy
pandas
matplotlib
scikit-learn

数据集

该框架支持多个基准数据集上的小分子性质预测:

分类任务

数据集 任务 样本数 特征 下载链接
BBBP 血脑屏障通透性预测 2,050 2D结构 MoleculeNet
BACE BACE抑制剂预测 1,513 2D结构 MoleculeNet
SIDER 药物副作用预测 1,427 2D结构 MoleculeNet
Tox21 毒性预测 7,831 2D结构 MoleculeNet

回归任务

数据集 任务 样本数 特征 下载链接
ESOL 水溶解度预测 1,128 2D结构 MoleculeNet
Lipophilicity 脂水分配系数预测 4,200 2D结构 MoleculeNet
FreeSolv 自由溶解能预测 642 2D结构 MoleculeNet

快速开始

1.准备数据集

# 保证数据文件结构:
# dataset/
# ├── BBBP.csv
# ├── BACE.csv
# ├── SIDER.csv
# └── Tox21.csv

2.配置超参数

CUDA_VISIBLE_DEVICES=1
python main.py -f bbbp -m GAT --schema AR --reduced substructure functional
--mol_embedding 128  --batch_normalize --heads 5 --num_layers 3 --batch_size 64
--dropout 0.18 --fold 5 --seed 42 --use_kan_readout --kan_grid_size 3 --kan_readout_norm batchnorm

基准结果

标准基准上的预期性能(根据超参数变化):

数据集 任务 指标 性能
BBBP 分类 ROC-AUC ~0.93
BACE 分类 ROC-AUC ~0.90
SIDER 分类 ROC-AUC ~0.63
Tox21 分类 ROC-AUC ~0.84
ESOL 回归 RMSE ~0.81
Lipophilicity 回归 RMSE ~0.61
FreeSolv 回归 RMSE ~1.97

注:结果为近似值,可能因模型配置和训练设置而异。

许可证

[MIT]

About

基于Kolmogorov-Arnold Networks(KAN)的多视图分子性质预测

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages