graphB³ is a Graph Convolutional Network (GCN)-based model designed to predict the Blood-Brain Barrier (BBB) permeability of chemical compounds. In addition to predictions, graphB³ highlights the substructures within a compound that contribute to its permeability status (BBB+ or BBB-) using GNNExplainer.
- BBB+ (permeable) substructures are highlighted in red.
- BBB- (non-permeable) substructures are highlighted in blue.
- Accurate BBB permeability prediction using graph neural networks.
- Explainability via GNNExplainer to highlight contributing substructures.
- Simple CLI usage for batch predictions.
graphB³ has been tested on Ubuntu 22.04.5 LTS.
Ensure the following packages are installed:
pip install numpy pandas matplotlib torch torchmetrics torch_geometric mxnet deepchem rdkitVerified versions:
numpy: 1.26.4pandas: 1.5.3logging: 0.5.1.2matplotlib: 3.8.2rdkit: 2022.09.5torch: 2.2.0+cu121mxnet: 1.9.1torchmetrics: 1.3.0.post0torch_geometric: 2.5.0
To use graphB³, download and place the following files in the same directory:
deepchem_utils.py- Feature extraction from SMILES input.best_mcc_model_weights.pth- Pretrained graphB³ model weights.graphb³.py- Main script for running graphB³.bbb_test_smiles_sample.csv- Input file containing SMILES data.
Use the following command to run graphB³:
python graphb3.py \
--input_csv /path/to/bbb_test_smiles_sample.csv \
--model_weights /path/to/best_mcc_model_weights.pth \
--results_csv /path/to/results/bbb_example_results.csv \
--output_dir /path/to/results \
> output.log &- Input molecules must be in SMILES format and stored in a
.csvfile. - The progress can be monitored via
output.log.
- Prediction results will be saved in
bbb_example_results.csv. - Highlighted substructures will be stored in the
GraphB3_figures/directory.
- The data folder contains the BBB smiles data, which was used to train the model for graphB³
- Here is the link for the webserver: https://webs.iiitd.edu.in/dhanjal/graphB3/
If you would like to contribute to graphB³, feel free to submit an issue or a pull request.
If you use graphB³ in your research, please cite the relevant paper (paper link and citation).
For questions or issues, please open a GitHub issue or contact the maintainers.