GraphB3 is a Graph Convolutional Network (GCN)-based model designed to predict the Blood-Brain Barrier (BBB) permeability of chemical compounds. In addition to predictions, GraphB3 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.
GraphB3 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 rdkit
Verified 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 GraphB3, download and place the following files in the same directory:
deepchem_utils.py
- Feature extraction from SMILES input.best_mcc_model_weights.pth
- Pretrained GraphB3 model weights.graphb3.py
- Main script for running GraphB3.bbb_test_smiles_sample.csv
- Input file containing SMILES data.
Use the following command to run GraphB3:
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
.csv
file. - 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.
If you would like to contribute to GraphB3, feel free to submit an issue or a pull request.
If you use GraphB3 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.