Skip to main content

Graphium: Scaling molecular GNNs to infinity.

Project description

Scaling molecular GNNs to infinity


Run on Gradient PyPI Conda PyPI - Downloads Conda license GitHub Repo stars GitHub Repo stars test test-ipu release code-check doc codecov hydra

A deep learning library focused on graph representation learning for real-world chemical tasks.

  • ✅ State-of-the-art GNN architectures.
  • 🐍 Extensible API: build your own GNN model and train it with ease.
  • ⚗️ Rich featurization: powerful and flexible built-in molecular featurization.
  • 🧠 Pretrained models: for fast and easy inference or transfer learning.
  • ⮔ Read-to-use training loop based on Pytorch Lightning.
  • 🔌 Have a new dataset? Graphium provides a simple plug-and-play interface. Change the path, the name of the columns to predict, the atomic featurization, and you’re ready to play!

Documentation

Visit https://graphium-docs.datamol.io/.

Run on Gradient

You can try running Graphium on Graphcore IPUs for free on Gradient by clicking on the button above.

Installation for developers

For CPU and GPU developers

Use mamba:

# Install Graphium's dependencies in a new environment named `graphium`
mamba env create -f env.yml -n graphium

# Install Graphium in dev mode
mamba activate graphium
pip install --no-deps -e .

For IPU developers

mkdir ~/.venv                               # Create the folder for the environment
python3 -m venv ~/.venv/graphium_ipu        # Create the environment
source ~/.venv/graphium_ipu/bin/activate    # Activate the environment

# Install the PopTorch wheel
pip install PATH_TO_SDK/poptorch-3.2.0+109946_bb50ce43ab_ubuntu_20_04-cp38-cp38-linux_x86_64.whl

# Enable Poplar SDK (including Poplar and PopART)
source PATH_TO_SDK/enable

# Install the IPU specific and graphium requirements
pip install -r requirements_ipu.txt

# Install Graphium in dev mode
pip install --no-deps -e .

Training a model

To learn how to train a model, we invite you to look at the documentation, or the jupyter notebooks available here.

If you are not familiar with PyTorch or PyTorch-Lightning, we highly recommend going through their tutorial first.

Running an experiment

We have setup Graphium with hydra for managing config files. To run an experiment go to the expts/ folder. For example, to benchmark a GCN on the ToyMix dataset run

python main_run_multitask.py dataset=toymix model=gcn

To change parameters specific to this experiment like switching from fp16 to fp32 precision, you can either override them directly in the CLI via

python main_run_multitask.py dataset=toymix model=gcn trainer.trainer.precision=32

or change them permamently in the dedicated experiment config under expts/hydra-configs/toymix_gcn.yaml. Integrating hydra also allows you to quickly switch between accelerators. E.g., running

python main_run_multitask.py dataset=toymix model=gcn accelerator=gpu

automatically selects the correct configs to run the experiment on GPU. To use a config file you built from scratch you can run

python main_run_multitask.py --config-path [PATH] --config-name [CONFIG]

Thanks to the modular nature of hydra you can reuse many of our config settings for your own experiments with Graphium.

License

Under the Apache-2.0 license. See LICENSE.

Documentation

  • Diagram for data processing in molGPS.
Data Processing Chart
  • Diagram for Muti-task network in molGPS
Full Graph Multi-task Network

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graphium-2.2.0.tar.gz (2.9 MB view details)

Uploaded Source

Built Distribution

graphium-2.2.0-py3-none-any.whl (874.6 kB view details)

Uploaded Python 3

File details

Details for the file graphium-2.2.0.tar.gz.

File metadata

  • Download URL: graphium-2.2.0.tar.gz
  • Upload date:
  • Size: 2.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for graphium-2.2.0.tar.gz
Algorithm Hash digest
SHA256 1b2641753ef0935ee98337969c9db66ca6524385649d7623f0e6cc601aace3af
MD5 125270f8c279581aa7cbd14d7f8bdafe
BLAKE2b-256 9c71787768da2f9c200a94a98ec1f6e688d83b0e1a8d51b944231d1c5fa10551

See more details on using hashes here.

File details

Details for the file graphium-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: graphium-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 874.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for graphium-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd1b8673886817ca82450321a5d9d4db7f7db020e452cace1b7886a29d866a81
MD5 e458cadae3b5bcf0098fa62b3d4e6861
BLAKE2b-256 8f2cbb2c72f8e18e1e4f9da621fa75c254e7ecf84b9b44dce19b0f09170c4e8e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page