# HOD-GNN: Increasing GNN Expressivity via High-Order Model Derivatives

For the code, we make use of the GraphGPS framework (https://github.com/rampasek/GraphGPS/tree/main). 


### Python environment setup with Conda

```bash
conda create -n hod python=3.10
conda activate hod

conda install pytorch=1.13 torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
conda install pyg=2.2 -c pyg -c conda-forge
pip install pyg-lib -f https://data.pyg.org/whl/torch-1.13.0+cu117.html
  
conda install openbabel fsspec rdkit -c conda-forge

pip install pytorch-lightning yacs torchmetrics
pip install performer-pytorch
pip install tensorboardX
pip install ogb
pip install wandb

conda clean --all
```


### Running HOD-GNN
To reproduce the results on real-world benchmarks reported in our experimental section, please run `main.py` providing the desired yaml config file via the `cfg` argument (they are all found in folder `configs/`). For example:
```bash
conda activate hod

# Running HOD-GNN  on MolHiv
python main.py --cfg configs/molhiv.yaml



```

