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.
- 🧬 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
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
- Python 3.8+
- CUDA 11.0+ (optional, for GPU acceleration)
# 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.txttorch>=1.12.0
torch-geometric>=2.0.0
rdkit>=2021.09
numpy
pandas
matplotlib
scikit-learn
The framework supports small molecule property prediction on multiple benchmarks:
| 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 |
| 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 |
# Ensure the data directory structure:
# dataset/
# ├── BBBP.csv
# ├── BACE.csv
# ├── SIDER.csv
# └── Tox21.csvCUDA_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
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.
[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.txttorch>=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 |
# 保证数据文件结构:
# dataset/
# ├── BBBP.csv
# ├── BACE.csv
# ├── SIDER.csv
# └── Tox21.csvCUDA_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]