Welcome to MVP-MP: a Multi-view Graph Learning Framework Augmented by Pathway-aware Representation Losses for Multi-label Metabolic Pathway Prediction
Accurate inference of metabolic pathway categories for unannotated small molecules is a key step for pathway-centric metabolomics interpretation and is increasingly relevant to drug discovery and lead optimization. In this study, we propose MVP-MP, a multi-view graph learning framework augmented by pathway-aware representation losses for multi-label metabolic pathway prediction. MVP-MP integrates a molecular graph branch and a fingerprint branch through a Bi-Gate fusion module for adaptive cross-view integration. In the graph branch, MVPool scores node importance from feature, structure, and diffusion perspectives, selects a top-k induced subgraph, and performs subgraph-to-global refinement, enabling explicit substructure focusing and propagating substructure evidence into global representations. At the objective level, we train the model end to end with a multi-label classification loss together with two pathway-aware regularizers. A pathway-aware contrastive loss exploits label overlap to structure compound relations in the embedding space, while a prototype-aware loss forms pathway prototypes to promote pathway-discriminative, pathway-centric embeddings. In performance evaluation, MVP-MP consistently outperforms existing state-of-the-art methods on the independent test set. Moreover, prototype-centered latent analysis and MVPool-driven substructure interpretation provide pathway-centric interpretability by linking predictions to enriched substructures and reusable pathway-associated chemotypes.
- Clone the repository
git clone https://github.com/GGCL7/MVP-MP.git
cd MVP-MP- Set up the Python environment
conda create -n mvpmp python=3.10
conda activate mvpmp
pip install -r requirements.txtTrain the model from scratch:
python main.py \
--csv_path Data/kegg_dataset.csv \
--index_path Data/data_index.txt \
--num_labels 11 \
--batch_size 64 \
--epochs 200 \
--lr 1e-3 \
--seed 42 \
--lambda_contrast 0.7 \
--lambda_proto 0.4 \
--select_metric f1 \
--ckpt_path best_model.pth
The training script will automatically save the model with the best validation F1 to best_model.pth.
Evaluate the trained model:
python evaluation.pyThe script reports the following metrics:
- Accuracy
- Precision
- Recall
- F1 score
Run prediction:
python predict.py \
--smiles "NC(=O)c1ccc[n+](C2OC(COP(=O)(O)OP(=O)(O)OCC3OC(n4cnc5c(N)ncnc54)C(O)C3O)C(O)C2O)c1" \
--checkpoint best_model.pth \
--threshold 0.5Example output::
[00] Carbohydrate metabolism prob=0.0008 pred=0
[01] Energy metabolism prob=0.9593 pred=1
[02] Lipid metabolism prob=0.0010 pred=0
[03] Nucleotide metabolism prob=0.0000 pred=0
[04] Amino acid metabolism prob=0.0293 pred=0
[05] Metabolism of other amino acids prob=0.0055 pred=0
[06] Glycan metabolism prob=0.0000 pred=0
[07] Cofactors and vitamins prob=0.9271 pred=1
[08] Terpenoids and polyketides metabolism prob=0.0011 pred=0
[09] Biosynthesis of other secondary metabolites prob=0.0013 pred=0
[10] Xenobiotics biodegradation and metabolism prob=0.6966 pred=1