From 6d244521a19a6e4a6ef7e4a2356cc29ab1cf9917 Mon Sep 17 00:00:00 2001 From: toooooodo <1042178105@qq.com> Date: Mon, 16 Oct 2023 14:19:55 +0800 Subject: [PATCH] init --- .gitignore | 12 + LICENSE | 21 ++ README.md | 100 +++++ args_parse.py | 47 +++ configs/GOODHIV/base.yaml | 8 + configs/GOODHIV/scaffold/base.yaml | 11 + configs/GOODHIV/scaffold/concept/ERM.yaml | 13 + configs/GOODHIV/scaffold/concept/base.yaml | 6 + configs/GOODHIV/scaffold/covariate/ERM.yaml | 13 + configs/GOODHIV/scaffold/covariate/base.yaml | 6 + configs/GOODHIV/size/base.yaml | 11 + configs/GOODHIV/size/concept/ERM.yaml | 13 + configs/GOODHIV/size/concept/base.yaml | 6 + configs/GOODHIV/size/covariate/ERM.yaml | 13 + configs/GOODHIV/size/covariate/base.yaml | 6 + configs/GOODPCBA/base.yaml | 10 + configs/GOODPCBA/scaffold/base.yaml | 10 + configs/GOODPCBA/scaffold/concept/ERM.yaml | 12 + configs/GOODPCBA/scaffold/concept/base.yaml | 4 + configs/GOODPCBA/scaffold/covariate/ERM.yaml | 12 + configs/GOODPCBA/scaffold/covariate/base.yaml | 4 + configs/GOODPCBA/size/base.yaml | 10 + configs/GOODPCBA/size/concept/ERM.yaml | 12 + configs/GOODPCBA/size/concept/base.yaml | 4 + configs/GOODPCBA/size/covariate/ERM.yaml | 12 + configs/GOODPCBA/size/covariate/base.yaml | 4 + configs/GOODZINC/base.yaml | 10 + configs/GOODZINC/scaffold/base.yaml | 11 + configs/GOODZINC/scaffold/concept/ERM.yaml | 12 + configs/GOODZINC/scaffold/concept/base.yaml | 4 + configs/GOODZINC/scaffold/covariate/ERM.yaml | 12 + configs/GOODZINC/scaffold/covariate/base.yaml | 4 + configs/GOODZINC/size/base.yaml | 11 + configs/GOODZINC/size/concept/ERM.yaml | 12 + configs/GOODZINC/size/concept/base.yaml | 4 + configs/GOODZINC/size/covariate/ERM.yaml | 12 + configs/GOODZINC/size/covariate/base.yaml | 4 + configs/base.yaml | 33 ++ dataset/__init__.py | 1 + dataset/drugdataset.py | 115 ++++++ dataset/smiles2graph.py | 172 +++++++++ eval.py | 121 ++++++ exputils.py | 176 +++++++++ models/__init__.py | 1 + models/gnnconv.py | 356 ++++++++++++++++++ models/model.py | 147 ++++++++ resources/framework.png | Bin 0 -> 289412 bytes run.py | 203 ++++++++++ 48 files changed, 1801 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 args_parse.py create mode 100644 configs/GOODHIV/base.yaml create mode 100644 configs/GOODHIV/scaffold/base.yaml create mode 100644 configs/GOODHIV/scaffold/concept/ERM.yaml create mode 100644 configs/GOODHIV/scaffold/concept/base.yaml create mode 100644 configs/GOODHIV/scaffold/covariate/ERM.yaml create mode 100644 configs/GOODHIV/scaffold/covariate/base.yaml create mode 100644 configs/GOODHIV/size/base.yaml create mode 100644 configs/GOODHIV/size/concept/ERM.yaml create mode 100644 configs/GOODHIV/size/concept/base.yaml create mode 100644 configs/GOODHIV/size/covariate/ERM.yaml create mode 100644 configs/GOODHIV/size/covariate/base.yaml create mode 100644 configs/GOODPCBA/base.yaml create mode 100644 configs/GOODPCBA/scaffold/base.yaml create mode 100644 configs/GOODPCBA/scaffold/concept/ERM.yaml create mode 100644 configs/GOODPCBA/scaffold/concept/base.yaml create mode 100644 configs/GOODPCBA/scaffold/covariate/ERM.yaml create mode 100644 configs/GOODPCBA/scaffold/covariate/base.yaml create mode 100644 configs/GOODPCBA/size/base.yaml create mode 100644 configs/GOODPCBA/size/concept/ERM.yaml create mode 100644 configs/GOODPCBA/size/concept/base.yaml create mode 100644 configs/GOODPCBA/size/covariate/ERM.yaml create mode 100644 configs/GOODPCBA/size/covariate/base.yaml create mode 100644 configs/GOODZINC/base.yaml create mode 100644 configs/GOODZINC/scaffold/base.yaml create mode 100644 configs/GOODZINC/scaffold/concept/ERM.yaml create mode 100644 configs/GOODZINC/scaffold/concept/base.yaml create mode 100644 configs/GOODZINC/scaffold/covariate/ERM.yaml create mode 100644 configs/GOODZINC/scaffold/covariate/base.yaml create mode 100644 configs/GOODZINC/size/base.yaml create mode 100644 configs/GOODZINC/size/concept/ERM.yaml create mode 100644 configs/GOODZINC/size/concept/base.yaml create mode 100644 configs/GOODZINC/size/covariate/ERM.yaml create mode 100644 configs/GOODZINC/size/covariate/base.yaml create mode 100644 configs/base.yaml create mode 100644 dataset/__init__.py create mode 100644 dataset/drugdataset.py create mode 100644 dataset/smiles2graph.py create mode 100644 eval.py create mode 100644 exputils.py create mode 100644 models/__init__.py create mode 100644 models/gnnconv.py create mode 100644 models/model.py create mode 100644 resources/framework.png create mode 100644 run.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..882901f --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +dump/ +data/ +ogb-data/ +__pycache__/ +script/ +drugood-data*/ +drugood-data* +ogb-data +data +*.out +*.tar.gz +checkpoint \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5547bb5 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 todoooooo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..8affe0b --- /dev/null +++ b/README.md @@ -0,0 +1,100 @@ +# Learning Invariant Molecular Representation in Latent Discrete Space +This repository is the official implementation of our paper: + +**Learning Invariant Molecular Representation in Latent Discrete Space** + +_Xiang Zhuang, Qiang Zhang*, Keyan Ding, Yatao Bian, Xiao Wang, Jingsong Lv, Hongyang Chen, Huajun Chen* (* denotes correspondence)_ + +Advances in Neural Information Processing Systems (NeurIPS) 2023 + +
+
+ +## Environment +To run the code successfully, the following dependencies need to be installed: +``` +Python 3.8 +torch 1.10.1 +torch_geometric 2.0.4 +torch_scatter 2.0.9 +torch_cluster 1.6.0 +torch_sparse 0.6.13 +torch_spline_conv 1.2.1 +rdkit_pypi 2022.9.5 +vector_quantize_pytorch 1.0.7 +ogb 1.3.6 +``` + +This repo is also depended on `GOOD` and `DrugOOD`, please follow the installation methods provided for each package: +- GOOD (Version 1.1.1) + - Repository: https://github.com/divelab/GOOD/ + - Installation: Please follow the instructions provided in the repository to install. +- DrugOOD (Version 0.0.1) + - Repository: https://github.com/tencent-ailab/DrugOOD + - Installation: Please follow the instructions provided in the repository to install. + +## Data +The data used in the experiments can be downloaded from the following sources: + +1. GOOD + - [GOODPCBA](https://drive.google.com/file/d/1WGieOjtgNXtGoO6o1EGhKrZj0zWU7AJl/view?usp=sharing) + - [GOODHIV](https://drive.google.com/file/d/1CoOqYCuLObnG5M0D8a2P2NyL61WjbCzo/view?usp=sharing) + - [GOODZINC](https://drive.google.com/file/d/1CHR0I1JcNoBqrqFicAZVKU3213hbsEPZ/view?usp=sharing) + - Extract the downloaded files and save the contents in the `data` directory. +2. DrugOOD + - download from [link](https://drive.google.com/drive/folders/19EAVkhJg0AgMx7X-bXGOhD4ENLfxJMWC). + - Extract the downloaded file and save the contents in the `drugood-data-chembl30` directory. + +An example of the folder hierarchy after adding the data files: +``` +├── data +│ ├── GOODHIV +│ ├── GOODPCBA +│ ├── GOODZINC +├── drugood-data-chembl30 +│ ├── lbap_core_ec50_assay.json +│ └── ... +├── models +│ ├── model.py +│ └── ... +├── run.py +└── README.md +``` +## Running Script +#### Training +``` +python run.py --dataset GOODZINC --domain scaffold --shift concept --num_e 4000 --bs 256 --gamma 0.5 --inv_w 0.01 --reg_w 0.5 --gpu 0 --exp_name ZINC --exp_id scaffold-concept +``` +Running parameters and descriptions are as follows: +| Parameter | Description | Choices | +| --- | --- | --- | +| dataset | name of dataset | `GOODHIV`, `GOODZINC`, `GOODPCBA`, `ic50_assay`, `ic50_scaffold`, `ic50_size`, `ec50_assay`, `ec50_scaffold`, `ec50_size`.| +| domain | environment-splitting strategy | `scaffold`, `size`. Only need to be specified for datasets in `GOOD`. | +| shift | type of distribution shift | `covariate`, `concept`. Only need to be specified for datasets in `GOOD`. | +| num_e | code book size | - | +| bs | batch size | - | +| gamma | threshold $\gamma$ | - | +| inv_w | $\lambda_1$ | - | +| reg_w | $\lambda_2$ | - | +| gpu | which GPU to use | - | +| exp_name | experiment name | - | +| exp_id | experiment ID | - | + +#### Evaluation +We provide the hyperparameters for the training of each dataset in the Appendix, and provide the corresponding checkpoints in the [release page](https://github.com/HICAI-ZJU/iMoLD/releases). +``` +python eval.py --dataset GOODZINC --domain scaffold --shift concept --load_path checkpoint/GOODZINC-scaffold-concept.pkl +``` +The `load_path` parameter specifies the path to load the checkpoint. + +## Citation +If you use or extend our work, please cite the paper as follows: + +```bibtex +@InProceedings{zhuang2023learning, + title={Learning Invariant Molecular Representation in Latent Discrete Space}, + author={Xiang Zhuang and Qiang Zhang and Keyan Ding and Yatao Bian and Xiao Wang and Jingsong Lv and Hongyang Chen and Huajun Chen}, + booktile={Advances in Neural Information Processing Systems}, + year={2023} +} +``` \ No newline at end of file diff --git a/args_parse.py b/args_parse.py new file mode 100644 index 0000000..d8a5a2c --- /dev/null +++ b/args_parse.py @@ -0,0 +1,47 @@ +import argparse + + +def args_parser(): + parser = argparse.ArgumentParser() + # exp + parser.add_argument("--exp_name", default="run", type=str, + help="Experiment name") + parser.add_argument("--dump_path", default="dump/", type=str, + help="Experiment dump path") + parser.add_argument("--exp_id", default="", type=str, + help="Experiment ID") + parser.add_argument("--gpu", default='0', type=str) + parser.add_argument("--random_seed", default=0, type=int) + parser.add_argument("--load_path", default=None, type=str) + + # dataset + parser.add_argument("--data_root", default='data', type=str) + parser.add_argument("--config_path", default='configs', type=str) + parser.add_argument("--dataset", default='GOODHIV', type=str) + parser.add_argument("--domain", default='scaffold', type=str) + parser.add_argument("--shift", default='covariate', type=str) + + # VQ + parser.add_argument("--num_e", default=4000, type=int) + parser.add_argument("--commitment_weight", default=0.1, type=float) + + # Encoder + parser.add_argument("--emb_dim", default=128, type=int) + parser.add_argument("--layer", default=4, type=int) + parser.add_argument("--dropout", default=0.5, type=float) + parser.add_argument("--gnn_type", default='gin', type=str, choices=['gcn', 'gin']) + parser.add_argument("--pooling_type", default='mean', type=str) + + # Model + parser.add_argument("--inv_w", default=0.01, type=float) + parser.add_argument("--reg_w", default=0.5, type=float) + parser.add_argument("--gamma", default=0.9, type=float) + + # Training + parser.add_argument("--lr", default=0.001, type=float) + parser.add_argument("--bs", default=128, type=int) + parser.add_argument("--epoch", default=200, type=int) + + args = parser.parse_args() + + return args diff --git a/configs/GOODHIV/base.yaml b/configs/GOODHIV/base.yaml new file mode 100644 index 0000000..a152a5b --- /dev/null +++ b/configs/GOODHIV/base.yaml @@ -0,0 +1,8 @@ +includes: + - ../base.yaml +model: + model_layer: 3 + global_pool: mean +# train: +# num_steps: 10 +# mile_stones: [150] \ No newline at end of file diff --git a/configs/GOODHIV/scaffold/base.yaml b/configs/GOODHIV/scaffold/base.yaml new file mode 100644 index 0000000..d004719 --- /dev/null +++ b/configs/GOODHIV/scaffold/base.yaml @@ -0,0 +1,11 @@ +includes: + - ../base.yaml +dataset: + dataset_name: GOODHIV + domain: scaffold +train: + # max_epoch: 200 + train_bs: 32 + val_bs: 256 + test_bs: 256 + # weight_decay: 0 \ No newline at end of file diff --git a/configs/GOODHIV/scaffold/concept/ERM.yaml b/configs/GOODHIV/scaffold/concept/ERM.yaml new file mode 100644 index 0000000..618e6af --- /dev/null +++ b/configs/GOODHIV/scaffold/concept/ERM.yaml @@ -0,0 +1,13 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1.0 +train: + max_epoch: 300 + lr: 0.001 + weight_decay: 0.0 +log_file: lb_sweeping +num_workers: 0 diff --git a/configs/GOODHIV/scaffold/concept/base.yaml b/configs/GOODHIV/scaffold/concept/base.yaml new file mode 100644 index 0000000..18290e4 --- /dev/null +++ b/configs/GOODHIV/scaffold/concept/base.yaml @@ -0,0 +1,6 @@ +includes: + - ../base.yaml +dataset: + shift_type: concept +model: + model_name: vGIN \ No newline at end of file diff --git a/configs/GOODHIV/scaffold/covariate/ERM.yaml b/configs/GOODHIV/scaffold/covariate/ERM.yaml new file mode 100644 index 0000000..618e6af --- /dev/null +++ b/configs/GOODHIV/scaffold/covariate/ERM.yaml @@ -0,0 +1,13 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1.0 +train: + max_epoch: 300 + lr: 0.001 + weight_decay: 0.0 +log_file: lb_sweeping +num_workers: 0 diff --git a/configs/GOODHIV/scaffold/covariate/base.yaml b/configs/GOODHIV/scaffold/covariate/base.yaml new file mode 100644 index 0000000..ffef5ad --- /dev/null +++ b/configs/GOODHIV/scaffold/covariate/base.yaml @@ -0,0 +1,6 @@ +includes: + - ../base.yaml +dataset: + shift_type: covariate +model: + model_name: vGIN \ No newline at end of file diff --git a/configs/GOODHIV/size/base.yaml b/configs/GOODHIV/size/base.yaml new file mode 100644 index 0000000..f06360e --- /dev/null +++ b/configs/GOODHIV/size/base.yaml @@ -0,0 +1,11 @@ +includes: + - ../base.yaml +dataset: + dataset_name: GOODHIV + domain: size +train: + # max_epoch: 200 + train_bs: 32 + val_bs: 256 + test_bs: 256 + # weight_decay: 0 \ No newline at end of file diff --git a/configs/GOODHIV/size/concept/ERM.yaml b/configs/GOODHIV/size/concept/ERM.yaml new file mode 100644 index 0000000..618e6af --- /dev/null +++ b/configs/GOODHIV/size/concept/ERM.yaml @@ -0,0 +1,13 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1.0 +train: + max_epoch: 300 + lr: 0.001 + weight_decay: 0.0 +log_file: lb_sweeping +num_workers: 0 diff --git a/configs/GOODHIV/size/concept/base.yaml b/configs/GOODHIV/size/concept/base.yaml new file mode 100644 index 0000000..18290e4 --- /dev/null +++ b/configs/GOODHIV/size/concept/base.yaml @@ -0,0 +1,6 @@ +includes: + - ../base.yaml +dataset: + shift_type: concept +model: + model_name: vGIN \ No newline at end of file diff --git a/configs/GOODHIV/size/covariate/ERM.yaml b/configs/GOODHIV/size/covariate/ERM.yaml new file mode 100644 index 0000000..13b18d5 --- /dev/null +++ b/configs/GOODHIV/size/covariate/ERM.yaml @@ -0,0 +1,13 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1.0 +train: + max_epoch: 200 + lr: 0.001 + weight_decay: 0.0 +log_file: lb_sweeping +num_workers: 0 diff --git a/configs/GOODHIV/size/covariate/base.yaml b/configs/GOODHIV/size/covariate/base.yaml new file mode 100644 index 0000000..ffef5ad --- /dev/null +++ b/configs/GOODHIV/size/covariate/base.yaml @@ -0,0 +1,6 @@ +includes: + - ../base.yaml +dataset: + shift_type: covariate +model: + model_name: vGIN \ No newline at end of file diff --git a/configs/GOODPCBA/base.yaml b/configs/GOODPCBA/base.yaml new file mode 100644 index 0000000..13481aa --- /dev/null +++ b/configs/GOODPCBA/base.yaml @@ -0,0 +1,10 @@ +includes: + - ../base.yaml +model: + model_layer: 5 + global_pool: mean + model_name: vGIN +train: + # num_steps: 10 + test_bs: 128 + # mile_stones: [150] \ No newline at end of file diff --git a/configs/GOODPCBA/scaffold/base.yaml b/configs/GOODPCBA/scaffold/base.yaml new file mode 100644 index 0000000..269ae28 --- /dev/null +++ b/configs/GOODPCBA/scaffold/base.yaml @@ -0,0 +1,10 @@ +includes: + - ../base.yaml +dataset: + dataset_name: GOODPCBA + domain: scaffold +train: + # max_epoch: 200 + train_bs: 32 + val_bs: 128 + # weight_decay: 0 \ No newline at end of file diff --git a/configs/GOODPCBA/scaffold/concept/ERM.yaml b/configs/GOODPCBA/scaffold/concept/ERM.yaml new file mode 100644 index 0000000..96f3655 --- /dev/null +++ b/configs/GOODPCBA/scaffold/concept/ERM.yaml @@ -0,0 +1,12 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1. +train: + max_epoch: 200 + lr: 1e-3 + mile_stones: [150] + diff --git a/configs/GOODPCBA/scaffold/concept/base.yaml b/configs/GOODPCBA/scaffold/concept/base.yaml new file mode 100644 index 0000000..3fb650e --- /dev/null +++ b/configs/GOODPCBA/scaffold/concept/base.yaml @@ -0,0 +1,4 @@ +includes: + - ../base.yaml +dataset: + shift_type: concept \ No newline at end of file diff --git a/configs/GOODPCBA/scaffold/covariate/ERM.yaml b/configs/GOODPCBA/scaffold/covariate/ERM.yaml new file mode 100644 index 0000000..96f3655 --- /dev/null +++ b/configs/GOODPCBA/scaffold/covariate/ERM.yaml @@ -0,0 +1,12 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1. +train: + max_epoch: 200 + lr: 1e-3 + mile_stones: [150] + diff --git a/configs/GOODPCBA/scaffold/covariate/base.yaml b/configs/GOODPCBA/scaffold/covariate/base.yaml new file mode 100644 index 0000000..8804c14 --- /dev/null +++ b/configs/GOODPCBA/scaffold/covariate/base.yaml @@ -0,0 +1,4 @@ +includes: + - ../base.yaml +dataset: + shift_type: covariate \ No newline at end of file diff --git a/configs/GOODPCBA/size/base.yaml b/configs/GOODPCBA/size/base.yaml new file mode 100644 index 0000000..ad34209 --- /dev/null +++ b/configs/GOODPCBA/size/base.yaml @@ -0,0 +1,10 @@ +includes: + - ../base.yaml +dataset: + dataset_name: GOODPCBA + domain: size +train: + # max_epoch: 200 + train_bs: 32 + val_bs: 128 + # weight_decay: 0 \ No newline at end of file diff --git a/configs/GOODPCBA/size/concept/ERM.yaml b/configs/GOODPCBA/size/concept/ERM.yaml new file mode 100644 index 0000000..96f3655 --- /dev/null +++ b/configs/GOODPCBA/size/concept/ERM.yaml @@ -0,0 +1,12 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1. +train: + max_epoch: 200 + lr: 1e-3 + mile_stones: [150] + diff --git a/configs/GOODPCBA/size/concept/base.yaml b/configs/GOODPCBA/size/concept/base.yaml new file mode 100644 index 0000000..3fb650e --- /dev/null +++ b/configs/GOODPCBA/size/concept/base.yaml @@ -0,0 +1,4 @@ +includes: + - ../base.yaml +dataset: + shift_type: concept \ No newline at end of file diff --git a/configs/GOODPCBA/size/covariate/ERM.yaml b/configs/GOODPCBA/size/covariate/ERM.yaml new file mode 100644 index 0000000..96f3655 --- /dev/null +++ b/configs/GOODPCBA/size/covariate/ERM.yaml @@ -0,0 +1,12 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1. +train: + max_epoch: 200 + lr: 1e-3 + mile_stones: [150] + diff --git a/configs/GOODPCBA/size/covariate/base.yaml b/configs/GOODPCBA/size/covariate/base.yaml new file mode 100644 index 0000000..8804c14 --- /dev/null +++ b/configs/GOODPCBA/size/covariate/base.yaml @@ -0,0 +1,4 @@ +includes: + - ../base.yaml +dataset: + shift_type: covariate \ No newline at end of file diff --git a/configs/GOODZINC/base.yaml b/configs/GOODZINC/base.yaml new file mode 100644 index 0000000..7d5a0a8 --- /dev/null +++ b/configs/GOODZINC/base.yaml @@ -0,0 +1,10 @@ +includes: + - ../base.yaml +model: + model_layer: 3 + global_pool: mean + model_name: vGIN + +# train: +# num_steps: 10 +# mile_stones: [150] \ No newline at end of file diff --git a/configs/GOODZINC/scaffold/base.yaml b/configs/GOODZINC/scaffold/base.yaml new file mode 100644 index 0000000..fb2b308 --- /dev/null +++ b/configs/GOODZINC/scaffold/base.yaml @@ -0,0 +1,11 @@ +includes: + - ../base.yaml +dataset: + dataset_name: GOODZINC + domain: scaffold +train: + # max_epoch: 200 + train_bs: 32 + val_bs: 128 + test_bs: 128 + # weight_decay: 0 \ No newline at end of file diff --git a/configs/GOODZINC/scaffold/concept/ERM.yaml b/configs/GOODZINC/scaffold/concept/ERM.yaml new file mode 100644 index 0000000..96f3655 --- /dev/null +++ b/configs/GOODZINC/scaffold/concept/ERM.yaml @@ -0,0 +1,12 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1. +train: + max_epoch: 200 + lr: 1e-3 + mile_stones: [150] + diff --git a/configs/GOODZINC/scaffold/concept/base.yaml b/configs/GOODZINC/scaffold/concept/base.yaml new file mode 100644 index 0000000..3fb650e --- /dev/null +++ b/configs/GOODZINC/scaffold/concept/base.yaml @@ -0,0 +1,4 @@ +includes: + - ../base.yaml +dataset: + shift_type: concept \ No newline at end of file diff --git a/configs/GOODZINC/scaffold/covariate/ERM.yaml b/configs/GOODZINC/scaffold/covariate/ERM.yaml new file mode 100644 index 0000000..96f3655 --- /dev/null +++ b/configs/GOODZINC/scaffold/covariate/ERM.yaml @@ -0,0 +1,12 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1. +train: + max_epoch: 200 + lr: 1e-3 + mile_stones: [150] + diff --git a/configs/GOODZINC/scaffold/covariate/base.yaml b/configs/GOODZINC/scaffold/covariate/base.yaml new file mode 100644 index 0000000..8804c14 --- /dev/null +++ b/configs/GOODZINC/scaffold/covariate/base.yaml @@ -0,0 +1,4 @@ +includes: + - ../base.yaml +dataset: + shift_type: covariate \ No newline at end of file diff --git a/configs/GOODZINC/size/base.yaml b/configs/GOODZINC/size/base.yaml new file mode 100644 index 0000000..85c3378 --- /dev/null +++ b/configs/GOODZINC/size/base.yaml @@ -0,0 +1,11 @@ +includes: + - ../base.yaml +dataset: + dataset_name: GOODZINC + domain: size +train: + # max_epoch: 200 + train_bs: 32 + val_bs: 128 + test_bs: 128 + # weight_decay: 0 \ No newline at end of file diff --git a/configs/GOODZINC/size/concept/ERM.yaml b/configs/GOODZINC/size/concept/ERM.yaml new file mode 100644 index 0000000..96f3655 --- /dev/null +++ b/configs/GOODZINC/size/concept/ERM.yaml @@ -0,0 +1,12 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1. +train: + max_epoch: 200 + lr: 1e-3 + mile_stones: [150] + diff --git a/configs/GOODZINC/size/concept/base.yaml b/configs/GOODZINC/size/concept/base.yaml new file mode 100644 index 0000000..3fb650e --- /dev/null +++ b/configs/GOODZINC/size/concept/base.yaml @@ -0,0 +1,4 @@ +includes: + - ../base.yaml +dataset: + shift_type: concept \ No newline at end of file diff --git a/configs/GOODZINC/size/covariate/ERM.yaml b/configs/GOODZINC/size/covariate/ERM.yaml new file mode 100644 index 0000000..96f3655 --- /dev/null +++ b/configs/GOODZINC/size/covariate/ERM.yaml @@ -0,0 +1,12 @@ +includes: + - base.yaml +model: + model_name: vGIN +ood: + ood_alg: ERM + ood_param: -1. +train: + max_epoch: 200 + lr: 1e-3 + mile_stones: [150] + diff --git a/configs/GOODZINC/size/covariate/base.yaml b/configs/GOODZINC/size/covariate/base.yaml new file mode 100644 index 0000000..8804c14 --- /dev/null +++ b/configs/GOODZINC/size/covariate/base.yaml @@ -0,0 +1,4 @@ +includes: + - ../base.yaml +dataset: + shift_type: covariate \ No newline at end of file diff --git a/configs/base.yaml b/configs/base.yaml new file mode 100644 index 0000000..5d553b3 --- /dev/null +++ b/configs/base.yaml @@ -0,0 +1,33 @@ +# task: train +random_seed: 123 +# exp_round: null +# log_file: default +# gpu_idx: 0 +# ckpt_root: null +# ckpt_dir: null +# save_tag: null +# pytest: False +# pipeline: Pipeline +num_workers: 1 +# train: +# weight_decay: 0. + # save_gap: 10 + # tr_ctn: False + # ctn_epoch: 0 + # epoch: 0 + # alpha: 0.2 # parameter for DANN + # stage_stones: [] +model: + dim_hidden: 300 + dim_ffn: 300 + dropout_rate: 0.5 +dataset: + dataloader_name: BaseDataLoader + # dataset_root: null + generate: False + # dim_node: null + # dim_edge: null + # num_classes: null + # num_envs: null +# ood: +# extra_param: null \ No newline at end of file diff --git a/dataset/__init__.py b/dataset/__init__.py new file mode 100644 index 0000000..63a1198 --- /dev/null +++ b/dataset/__init__.py @@ -0,0 +1 @@ +from .drugdataset import DrugOODDataset diff --git a/dataset/drugdataset.py b/dataset/drugdataset.py new file mode 100644 index 0000000..f194249 --- /dev/null +++ b/dataset/drugdataset.py @@ -0,0 +1,115 @@ +import os +import os.path as osp +import json +import pickle + + +import torch +from torch_geometric.data import InMemoryDataset, Data, DataLoader +from rdkit import Chem +from tqdm import tqdm + +from .smiles2graph import smile2graph4drugood + + + +class DrugOODDataset(InMemoryDataset): + def __init__(self, name, version='chembl30', type='lbap', root='data', drugood_root='drugood-data', + transform=None, pre_transform=None, pre_filter=None): + self.name = name + self.root = root + # self.dir_name = '_'.join(name.split('-')) + self.drugood_root = drugood_root + self.version = version + self.type = type + super(DrugOODDataset, self).__init__(root, transform, pre_transform, pre_filter) + self.data, self.slices = torch.load(self.processed_paths[0]) + self.data_cfg = pickle.load(open(self.processed_paths[1], 'rb')) + self.data_statistics = pickle.load(open(self.processed_paths[2], 'rb')) + self.train_index, self.valid_index, self.test_index = pickle.load(open(self.processed_paths[3], 'rb')) + self.num_tasks = 1 + + @property + def raw_dir(self): + # return osp.join(self.ogb_root, self.dir_name, 'mapping') + # return self.drugood_root + return self.drugood_root + '-' + self.version + + @property + def raw_file_names(self): + # return 'lbap_core_' + self.name + '.json' + return f'{self.type}_core_{self.name}.json' + # return 'mol.csv.gz' + # return f'{self.names[self.name][2]}.csv' + + @property + def processed_dir(self): + # return osp.join(self.root, self.name, f'{self.decomp}-processed') + # return osp.join(self.root, self.dir_name, f'{self.decomp}-processed') + # return osp.join(self.root, f'{self.name}-{self.version}') + return osp.join(self.root, f'{self.type}-{self.name}-{self.version}') + + @property + def processed_file_names(self): + return 'data.pt', 'cfg.pt', 'statistics.pt', 'split.pt' + + def __subprocess(self, datalist): + processed_data = [] + for datapoint in tqdm(datalist): + # ['smiles', 'reg_label', 'assay_id', 'cls_label', 'domain_id'] + smiles = datapoint['smiles'] + x, edge_index, edge_attr = smile2graph4drugood(smiles) + y = torch.tensor([datapoint['cls_label']]).unsqueeze(0) + if self.type == 'lbap': + data = Data(x=x, edge_index=edge_index, edge_attr=edge_attr, y=y, smiles=smiles, + reg_label=datapoint['reg_label'], assay_id=datapoint['assay_id'], + domain_id=datapoint['domain_id']) + else: + protein = datapoint['protein'] + data = Data(x=x, edge_index=edge_index, edge_attr=edge_attr, y=y, smiles=smiles, protein=protein, + reg_label=datapoint['reg_label'], assay_id=datapoint['assay_id'], + domain_id=datapoint['domain_id']) + + data.batch_num_nodes = data.num_nodes + # if self.pre_filter is not None and not self.pre_filter(data): + # continue + + if self.pre_transform is not None: + data = self.pre_transform(data) + processed_data.append(data) + return processed_data, len(processed_data) + + def process(self): + # data_list = [] + json_data = json.load(open(self.raw_paths[0], 'r', encoding='utf-8')) + data_cfg, data_statistics = json_data['cfg'], json_data['statistics'] + train_data = json_data['split']['train'] + valid_data = json_data['split']['ood_val'] + test_data = json_data['split']['ood_test'] + train_data_list, train_num = self.__subprocess(train_data) + valid_data_list, valid_num = self.__subprocess(valid_data) + test_data_list, test_num = self.__subprocess(test_data) + data_list = train_data_list + valid_data_list + test_data_list + train_index = list(range(train_num)) + valid_index = list(range(train_num, train_num + valid_num)) + test_index = list(range(train_num + valid_num, train_num + valid_num + test_num)) + torch.save(self.collate(data_list), self.processed_paths[0]) + pickle.dump(data_cfg, open(self.processed_paths[1], 'wb')) + pickle.dump(data_statistics, open(self.processed_paths[2], 'wb')) + pickle.dump([train_index, valid_index, test_index], open(self.processed_paths[3], 'wb')) + + + def __repr__(self): + return '{}({})'.format(self.name, len(self)) + + +# if __name__ == '__main__': +# dataset = DrugOODDataset(name='ic50_assay', root='../data', drugood_root='../drugood-data') +# # data = json.load(open('../drugood-data/lbap_core_ec50_size.json', 'r', encoding='utf-8')) +# train_set = dataset[dataset.train_index] +# test_set = dataset[dataset.test_index] +# loader = DataLoader(train_set, batch_size=4, shuffle=True) +# for data in loader: +# import pdb; +# +# pdb.set_trace() diff --git a/dataset/smiles2graph.py b/dataset/smiles2graph.py new file mode 100644 index 0000000..fbac01d --- /dev/null +++ b/dataset/smiles2graph.py @@ -0,0 +1,172 @@ +# import dgl +import numpy as np +import rdkit +import torch +from rdkit import Chem + + +def get_atom_features(atom): + # The usage of features is along with the Attentive FP. + feature = np.zeros(39) + + # Symbol + symbol = atom.GetSymbol() + symbol_list = ['B', 'C', 'N', 'O', 'F', 'Si', 'P', 'S', 'Cl', 'As', 'Se', 'Br', 'Te', 'I', 'At'] + if symbol in symbol_list: + loc = symbol_list.index(symbol) + feature[loc] = 1 + else: + feature[15] = 1 + + # Degree + degree = atom.GetDegree() + if degree > 5: + print("atom degree larger than 5. Please check before featurizing.") + raise RuntimeError + + feature[16 + degree] = 1 + + # Formal Charge + charge = atom.GetFormalCharge() + feature[22] = charge + + # radical electrons + radelc = atom.GetNumRadicalElectrons() + feature[23] = radelc + + # Hybridization + hyb = atom.GetHybridization() + hybridization_list = [rdkit.Chem.rdchem.HybridizationType.SP, + rdkit.Chem.rdchem.HybridizationType.SP2, + rdkit.Chem.rdchem.HybridizationType.SP3, + rdkit.Chem.rdchem.HybridizationType.SP3D, + rdkit.Chem.rdchem.HybridizationType.SP3D2] + if hyb in hybridization_list: + loc = hybridization_list.index(hyb) + feature[loc + 24] = 1 + else: + feature[29] = 1 + + # aromaticity + if atom.GetIsAromatic(): + feature[30] = 1 + + # hydrogens + hs = atom.GetNumImplicitHs() + feature[31 + hs] = 1 + + # chirality, chirality type + if atom.HasProp('_ChiralityPossible'): + # TODO what kind of error + feature[36] = 1 + + try: + chi = atom.GetProp('_CIPCode') + chi_list = ['R', 'S'] + loc = chi_list.index(chi) + feature[37 + loc] = 1 + except KeyError: + feature[37] = 0 + feature[38] = 0 + + return feature + + +def get_bond_features(bond): + feature = np.zeros(10) + + # bond type + type = bond.GetBondType() + bond_type_list = [rdkit.Chem.rdchem.BondType.SINGLE, + rdkit.Chem.rdchem.BondType.DOUBLE, + rdkit.Chem.rdchem.BondType.TRIPLE, + rdkit.Chem.rdchem.BondType.AROMATIC] + if type in bond_type_list: + loc = bond_type_list.index(type) + feature[0 + loc] = 1 + else: + print("Wrong type of bond. Please check before feturization.") + raise RuntimeError + + # conjugation + conj = bond.GetIsConjugated() + feature[4] = conj + + # ring + ring = bond.IsInRing() + feature[5] = ring + + # stereo + stereo = bond.GetStereo() + stereo_list = [rdkit.Chem.rdchem.BondStereo.STEREONONE, + rdkit.Chem.rdchem.BondStereo.STEREOANY, + rdkit.Chem.rdchem.BondStereo.STEREOZ, + rdkit.Chem.rdchem.BondStereo.STEREOE] + if stereo in stereo_list: + loc = stereo_list.index(stereo) + feature[6 + loc] = 1 + else: + print("Wrong stereo type of bond. Please check before featurization.") + raise RuntimeError + + return feature + + +def smile2graph4drugood(smile): + mol = Chem.MolFromSmiles(smile) + # if (mol is None): + # return None + src = [] + dst = [] + atom_feature = [] + bond_feature = [] + + for atom in mol.GetAtoms(): + one_atom_feature = get_atom_features(atom) + atom_feature.append(one_atom_feature) + atom_feature = np.array(atom_feature) + atom_feature = torch.tensor(atom_feature).float() + + if len(mol.GetBonds()) > 0: # mol has bonds + for bond in mol.GetBonds(): + i = bond.GetBeginAtomIdx() + j = bond.GetEndAtomIdx() + one_bond_feature = get_bond_features(bond) + src.append(i) + dst.append(j) + bond_feature.append(one_bond_feature) + src.append(j) + dst.append(i) + bond_feature.append(one_bond_feature) + + src = torch.tensor(src).long() + dst = torch.tensor(dst).long() + bond_feature = np.array(bond_feature) + bond_feature = torch.tensor(bond_feature).float() + edge_index = torch.vstack([src, dst]) + # graph_cur_smile = dgl.graph((src, dst), num_nodes=len(mol.GetAtoms())) + # graph_cur_smile.ndata['x'] = atom_feature + # graph_cur_smile.edata['x'] = bond_feature + else: + edge_index = torch.empty((2, 0)).long() + bond_feature = torch.empty((0, 10)).float() + + return atom_feature, edge_index, bond_feature + + +def featurize_atoms(mol): + feats = [] + for atom in mol.GetAtoms(): + feats.append(atom.GetAtomicNum()) + return {'atomic': torch.tensor(feats).reshape(-1).to(torch.int64)} + + +def featurize_bonds(mol): + feats = [] + bond_types = [Chem.rdchem.BondType.SINGLE, Chem.rdchem.BondType.DOUBLE, + Chem.rdchem.BondType.TRIPLE, Chem.rdchem.BondType.AROMATIC] + for bond in mol.GetBonds(): + btype = bond_types.index(bond.GetBondType()) + # One bond between atom u and v corresponds to two edges (u, v) and (v, u) + feats.extend([btype, btype]) + return {'type': torch.tensor(feats).reshape(-1).to(torch.int64)} diff --git a/eval.py b/eval.py new file mode 100644 index 0000000..61b552d --- /dev/null +++ b/eval.py @@ -0,0 +1,121 @@ +import os +import logging +from tqdm import tqdm +from munch import Munch, munchify + +import torch +import torch.nn.functional as F +from torch.utils.tensorboard import SummaryWriter +from torch_geometric.loader import DataLoader +import numpy as np + +from GOOD import register +from GOOD.utils.config_reader import load_config +from GOOD.utils.metric import Metric +from GOOD.data.dataset_manager import read_meta_info +from GOOD.utils.evaluation import eval_data_preprocess, eval_score +from GOOD.utils.train import nan2zero_get_mask + +from args_parse import args_parser +from exputils import initialize_exp, set_seed, get_dump_path, describe_model, save_model, load_model +from models import MyModel +from dataset import DrugOODDataset + +logger = logging.getLogger() + + +class Runner: + def __init__(self, args, logger_path): + self.args = args + self.device = torch.device(f'cuda') + + if args.dataset.startswith('GOOD'): + # for GOOD, load Config + cfg_path = os.path.join(args.config_path, args.dataset, args.domain, args.shift, 'base.yaml') + cfg, _, _ = load_config(path=cfg_path) + cfg = munchify(cfg) + cfg.device = self.device + dataset, meta_info = register.datasets[cfg.dataset.dataset_name].load(dataset_root=args.data_root, + domain=cfg.dataset.domain, + shift=cfg.dataset.shift_type, + generate=cfg.dataset.generate) + read_meta_info(meta_info, cfg) + # cfg.dropout + # cfg.bs + # update dropout & bs + cfg.model.dropout_rate = args.dropout + cfg.train.train_bs = args.bs + cfg.random_seed = args.random_seed + + loader = register.dataloader[cfg.dataset.dataloader_name].setup(dataset, cfg) + self.train_loader = loader['train'] + self.valid_loader = loader['val'] + self.test_loader = loader['test'] + + self.metric = Metric() + self.metric.set_score_func(dataset['metric'] if type(dataset) is dict else getattr(dataset, 'metric')) + self.metric.set_loss_func(dataset['task'] if type(dataset) is dict else getattr(dataset, 'task')) + cfg.metric = self.metric + else: + # DrugOOD + dataset = DrugOODDataset(name=args.dataset, root=args.data_root) + self.train_set = dataset[dataset.train_index] + self.valid_set = dataset[dataset.valid_index] + self.test_set = dataset[dataset.test_index] + + self.train_loader = DataLoader(self.train_set, batch_size=args.bs, shuffle=True, drop_last=True) + self.valid_loader = DataLoader(self.valid_set, batch_size=args.bs, shuffle=False) + self.test_loader = DataLoader(self.test_set, batch_size=args.bs, shuffle=False) + self.metric = Metric() + self.metric.set_loss_func(task_name='Binary classification') + self.metric.set_score_func(metric_name='ROC-AUC') + cfg = Munch() + cfg.metric = self.metric + cfg.model = Munch() + cfg.model.model_level = 'graph' + + self.model = MyModel(args=args, config=cfg).to(self.device) + self.model.load_state_dict(load_model(args.load_path, map_location=self.device)) + self.logger_path = logger_path + + self.cfg = cfg + + + def run(self): + train_score = self.test_step(self.train_loader) + val_score = self.test_step(self.valid_loader) + test_score = self.test_step(self.test_loader) + logger.info(f"TRAIN={train_score:.5f}, VAL={val_score:.5f}, TEST={test_score:.5f}") + + + @torch.no_grad() + def test_step(self, loader): + + self.model.eval() + y_pred, y_gt = [], [] + for data in loader: + data = data.to(self.device) + logit, _, _, _, _ = self.model(data) + mask, _ = nan2zero_get_mask(data, 'None', self.cfg) + pred, target = eval_data_preprocess(data.y, logit, mask, self.cfg) + y_pred.append(pred) + y_gt.append(target) + + score = eval_score(y_pred, y_gt, self.cfg) + + return score + +def main(): + args = args_parser() + torch.cuda.set_device(int(args.gpu)) + + logger = initialize_exp(args) + set_seed(args.random_seed) + logger_path = get_dump_path(args) + + runner = Runner(args, logger_path) + runner.run() + + +if __name__ == '__main__': + main() diff --git a/exputils.py b/exputils.py new file mode 100644 index 0000000..4555e4e --- /dev/null +++ b/exputils.py @@ -0,0 +1,176 @@ +import os +import re +import sys +import time +import json +import torch +import pickle +import random +import getpass +import logging +import argparse +import subprocess +import numpy as np +from datetime import timedelta, date, datetime + + +class LogFormatter: + def __init__(self): + self.start_time = time.time() + + def format(self, record): + elapsed_seconds = round(record.created - self.start_time) + + prefix = "%s - %s - %s" % ( + record.levelname, + time.strftime('%x %X'), + timedelta(seconds=elapsed_seconds) + ) + message = record.getMessage() + message = message.replace('\n', '\n' + ' ' * (len(prefix) + 3)) + return "%s - %s" % (prefix, message) if message else '' + + +def create_logger(filepath, rank): + """ + Create a logger. + Use a different log file for each process. + """ + # create log formatter + log_formatter = LogFormatter() + + # create file handler and set level to debug + if filepath is not None: + if rank > 0: + filepath = '%s-%i' % (filepath, rank) + file_handler = logging.FileHandler(filepath, "a", encoding='utf-8') + file_handler.setLevel(logging.DEBUG) + file_handler.setFormatter(log_formatter) + + # create console handler and set level to info + console_handler = logging.StreamHandler() + console_handler.setLevel(logging.INFO) + console_handler.setFormatter(log_formatter) + + # create logger and set level to debug + logger = logging.getLogger() + logger.handlers = [] + logger.setLevel(logging.DEBUG) + logger.propagate = False + if filepath is not None: + logger.addHandler(file_handler) + logger.addHandler(console_handler) + + # reset logger elapsed time + def reset_time(): + log_formatter.start_time = time.time() + + logger.reset_time = reset_time + + return logger + + +def initialize_exp(params): + """ + Initialize the experiment: + - dump parameters + - create a logger + """ + # dump parameters + exp_folder = get_dump_path(params) + json.dump(vars(params), open(os.path.join(exp_folder, 'params.pkl'), 'w'), indent=4) + + # get running command + command = ["python", sys.argv[0]] + for x in sys.argv[1:]: + if x.startswith('--'): + assert '"' not in x and "'" not in x + command.append(x) + else: + assert "'" not in x + if re.match('^[a-zA-Z0-9_]+$', x): + command.append("%s" % x) + else: + command.append("'%s'" % x) + command = ' '.join(command) + params.command = command + ' --exp_id "%s"' % params.exp_id + + # check experiment name + assert len(params.exp_name.strip()) > 0 + + # create a logger + logger = create_logger(os.path.join(exp_folder, 'train.log'), rank=getattr(params, 'global_rank', 0)) + logger.info("============ Initialized logger ============") + logger.info("\n".join("%s: %s" % (k, str(v)) + for k, v in sorted(dict(vars(params)).items()))) + + logger.info("The experiment will be stored in %s\n" % exp_folder) + logger.info("Running command: %s" % command) + return logger + + +def get_dump_path(params): + """ + Create a directory to store the experiment. + """ + assert len(params.exp_name) > 0 + assert not params.dump_path in ('', None), \ + 'Please choose your favorite destination for dump.' + dump_path = params.dump_path + + # create the sweep path if it does not exist + when = date.today().strftime('%m%d-') + sweep_path = os.path.join(dump_path, when + params.exp_name) + if not os.path.exists(sweep_path): + subprocess.Popen("mkdir -p %s" % sweep_path, shell=True).wait() + + # create an random ID for the job if it is not given in the parameters. + if params.exp_id == '': + # exp_id = time.strftime('%H-%M-%S') + exp_id = datetime.now().strftime('%H-%M-%S.%f')[:-3] + exp_id += ''.join(random.sample('abcdefghijklmnopqrstuvwxyz', 3)) + # chars = 'abcdefghijklmnopqrstuvwxyz0123456789' + # while True: + # exp_id = ''.join(random.choice(chars) for _ in range(10)) + # if not os.path.isdir(os.path.join(sweep_path, exp_id)): + # break + params.exp_id = exp_id + + # create the dump folder / update parameters + exp_folder = os.path.join(sweep_path, params.exp_id) + if not os.path.isdir(exp_folder): + subprocess.Popen("mkdir -p %s" % exp_folder, shell=True).wait() + return exp_folder + + +def describe_model(model, path, name='model'): + file_path = os.path.join(path, f'{name}.describe') + with open(file_path, 'w') as fout: + print(model, file=fout) + + +def set_seed(seed): + """ + Freeze every seed for reproducibility. + torch.cuda.manual_seed_all is useful when using random generation on GPUs. + e.g. torch.cuda.FloatTensor(100).uniform_() + """ + random.seed(seed) + np.random.seed(seed) + torch.manual_seed(seed) + torch.cuda.manual_seed(seed) + torch.cuda.manual_seed_all(seed) + + +def save_model(model, save_dir, epoch=None, model_name='model'): + model_to_save = model.module if hasattr(model, "module") else model + if epoch is None: + save_path = os.path.join(save_dir, f'{model_name}.pkl') + else: + save_path = os.path.join(save_dir, f'{model_name}-{epoch}.pkl') + os.makedirs(save_dir, exist_ok=True) + torch.save(model_to_save.state_dict(), save_path) + + +def load_model(path, map_location): + return torch.load(path, map_location=map_location) diff --git a/models/__init__.py b/models/__init__.py new file mode 100644 index 0000000..7d58437 --- /dev/null +++ b/models/__init__.py @@ -0,0 +1 @@ +from .model import MyModel diff --git a/models/gnnconv.py b/models/gnnconv.py new file mode 100644 index 0000000..ddc88ea --- /dev/null +++ b/models/gnnconv.py @@ -0,0 +1,356 @@ +import torch +from torch import nn +from torch_geometric.nn import MessagePassing +import torch.nn.functional as F +from torch_geometric.nn import global_mean_pool, global_add_pool +from ogb.graphproppred.mol_encoder import AtomEncoder, BondEncoder +from torch_geometric.utils import degree + +import math + + +class MLP(nn.Module): + """MLP with linear output""" + + def __init__(self, num_layers, input_dim, hidden_dim, output_dim): + """MLP layers construction + + Paramters + --------- + num_layers: int + The number of linear layers + input_dim: int + The dimensionality of input features + hidden_dim: int + The dimensionality of hidden units at ALL layers + output_dim: int + The number of classes for prediction + + """ + super(MLP, self).__init__() + self.linear_or_not = True # default is linear model + self.num_layers = num_layers + self.output_dim = output_dim + + if num_layers < 1: + raise ValueError("number of layers should be positive!") + elif num_layers == 1: + # Linear model + self.linear = nn.Linear(input_dim, output_dim) + else: + # Multi-layer model + self.linear_or_not = False + self.linears = torch.nn.ModuleList() + self.batch_norms = torch.nn.ModuleList() + + self.linears.append(nn.Linear(input_dim, hidden_dim)) + for _ in range(num_layers - 2): + self.linears.append(nn.Linear(hidden_dim, hidden_dim)) + self.linears.append(nn.Linear(hidden_dim, output_dim)) + + for _ in range(num_layers - 1): + self.batch_norms.append(nn.BatchNorm1d(hidden_dim)) + + def forward(self, x): + if self.linear_or_not: + # If linear model + return self.linear(x) + else: + # If MLP + h = x + for i in range(self.num_layers - 1): + h = F.relu(self.batch_norms[i](self.linears[i](h))) + return self.linears[-1](h) + + +# GIN convolution along the graph structure +class GINConv(MessagePassing): + def __init__(self, emb_dim): + ''' + emb_dim (int): node embedding dimensionality + ''' + + super(GINConv, self).__init__(aggr="add") + + self.mlp = torch.nn.Sequential( + torch.nn.Linear(emb_dim, 2 * emb_dim), + torch.nn.BatchNorm1d(2 * emb_dim), + torch.nn.ReLU(), + torch.nn.Linear(2 * emb_dim, emb_dim) + ) + self.eps = torch.nn.Parameter(torch.Tensor([0])) + # if datatype == 'ogb': + # self.bond_encoder = BondEncoder(emb_dim=emb_dim) + # else: + self.bond_encoder = MLP(num_layers=1, input_dim=10, output_dim=emb_dim, hidden_dim=emb_dim) + + def forward(self, x, edge_index, edge_attr): + edge_embedding = self.bond_encoder(edge_attr) + out = self.mlp( + (1 + self.eps) * x + + self.propagate(edge_index, x=x, edge_attr=edge_embedding) + ) + + return out + + def message(self, x_j, edge_attr): + return F.relu(x_j + edge_attr) + + def update(self, aggr_out): + return aggr_out + + +# GCN convolution along the graph structure + + +class GCNConv(MessagePassing): + def __init__(self, emb_dim): + super(GCNConv, self).__init__(aggr='add') + + self.linear = torch.nn.Linear(emb_dim, emb_dim) + self.root_emb = torch.nn.Embedding(1, emb_dim) + # if datatype == 'ogb': + # self.bond_encoder = BondEncoder(emb_dim=emb_dim) + # else: + self.bond_encoder = MLP(num_layers=1, input_dim=10, output_dim=emb_dim, hidden_dim=emb_dim) + + def forward(self, x, edge_index, edge_attr): + x = self.linear(x) + edge_embedding = self.bond_encoder(edge_attr) + + row, col = edge_index + + # edge_weight = torch.ones((edge_index.size(1), ), device=edge_index.device) + deg = degree(row, x.size(0), dtype=x.dtype) + 1 + deg_inv_sqrt = deg.pow(-0.5) + deg_inv_sqrt[deg_inv_sqrt == float('inf')] = 0 + + norm = deg_inv_sqrt[row] * deg_inv_sqrt[col] + + return self.propagate( + edge_index, x=x, edge_attr=edge_embedding, norm=norm + ) + F.relu(x + self.root_emb.weight) * 1. / deg.view(-1, 1) + + def message(self, x_j, edge_attr, norm): + return norm.view(-1, 1) * F.relu(x_j + edge_attr) + + def update(self, aggr_out): + return aggr_out + + +# GNN to generate node embedding +class GNN_node(torch.nn.Module): + """ + Output: + node representations + """ + + def __init__( + self, num_layer, emb_dim, drop_ratio=0.5, + JK="last", residual=False, gnn_type='gin' + ): + ''' + emb_dim (int): node embedding dimensionality + num_layer (int): number of GNN message passing layers + + ''' + + super(GNN_node, self).__init__() + self.num_layer = num_layer + self.drop_ratio = drop_ratio + self.JK = JK + # add residual connection or not + self.residual = residual + + # if self.num_layer < 2: + # raise ValueError("Number of GNN layers must be greater than 1.") + # if datatype == 'ogb': + # self.atom_encoder = AtomEncoder(emb_dim) + # else: + self.atom_encoder = MLP(input_dim=39, hidden_dim=emb_dim, output_dim=emb_dim, num_layers=2) + + # List of GNNs + self.convs = torch.nn.ModuleList() + self.batch_norms = torch.nn.ModuleList() + + for layer in range(num_layer): + if gnn_type == 'gin': + self.convs.append(GINConv(emb_dim)) + elif gnn_type == 'gcn': + self.convs.append(GCNConv(emb_dim)) + else: + raise ValueError( + 'Undefined GNN type called {}'.format(gnn_type)) + + self.batch_norms.append(torch.nn.BatchNorm1d(emb_dim)) + + def forward(self, *argv): + + # computing input node embedding + if len(argv) == 4: + x, edge_index, edge_attr, batch = argv[0], argv[1], argv[2], argv[3] + elif len(argv) == 1: + batched_data = argv[0] + x, edge_index = batched_data.x, batched_data.edge_index + edge_attr, batch = batched_data.edge_attr, batched_data.batch + else: + raise ValueError("unmatched number of arguments.") + + h_list = [self.atom_encoder(x)] + for layer in range(self.num_layer): + + h = self.convs[layer](h_list[layer], edge_index, edge_attr) + h = self.batch_norms[layer](h) + + if layer == self.num_layer - 1: + # remove relu for the last layer + h = F.dropout(h, self.drop_ratio, training=self.training) + # h = h + else: + h = F.dropout( + F.relu(h), self.drop_ratio, training=self.training + ) + + if self.residual: + h += h_list[layer] + + h_list.append(h) + + # Different implementations of Jk-concat + if self.JK == "last": + node_representation = h_list[-1] + elif self.JK == "sum": + node_representation = 0 + for layer in range(self.num_layer + 1): + node_representation += h_list[layer] + + return node_representation + + +# Virtual GNN to generate node embedding +class GNN_node_Virtualnode(torch.nn.Module): + """ + Output: + node representations + """ + + def __init__( + self, num_layer, emb_dim, drop_ratio=0.5, + JK="last", residual=False, gnn_type='gin' + ): + ''' + emb_dim (int): node embedding dimensionality + ''' + + super(GNN_node_Virtualnode, self).__init__() + self.num_layer = num_layer + self.drop_ratio = drop_ratio + self.JK = JK + # add residual connection or not + self.residual = residual + + if self.num_layer < 2: + raise ValueError("Number of GNN layers must be greater than 1.") + + # self.atom_encoder = AtomEncoder(emb_dim) + # if datatype == 'ogb': + # self.atom_encoder = AtomEncoder(emb_dim) + # else: + self.atom_encoder = MLP(input_dim=39, hidden_dim=emb_dim, output_dim=emb_dim, num_layers=2) + + + # set the initial virtual node embedding to 0. + self.virtualnode_embedding = torch.nn.Embedding(1, emb_dim) + torch.nn.init.constant_(self.virtualnode_embedding.weight.data, 0) + + # List of GNNs + self.convs = torch.nn.ModuleList() + # batch norms applied to node embeddings + self.batch_norms = torch.nn.ModuleList() + + # List of MLPs to transform virtual node at every layer + self.mlp_virtualnode_list = torch.nn.ModuleList() + + for layer in range(num_layer): + if gnn_type == 'gin': + self.convs.append(GINConv(emb_dim)) + elif gnn_type == 'gcn': + self.convs.append(GCNConv(emb_dim)) + else: + raise ValueError(f'Undefined GNN type called {gnn_type}') + + self.batch_norms.append(torch.nn.BatchNorm1d(emb_dim)) + + for layer in range(num_layer - 1): + self.mlp_virtualnode_list.append(torch.nn.Sequential( + torch.nn.Linear(emb_dim, 2 * emb_dim), + torch.nn.BatchNorm1d(2 * emb_dim), + torch.nn.ReLU(), + torch.nn.Linear(2 * emb_dim, emb_dim), + torch.nn.BatchNorm1d(emb_dim), + torch.nn.ReLU() + )) + + def forward(self, batched_data): + + x, edge_index = batched_data.x, batched_data.edge_index + edge_attr, batch = batched_data.edge_attr, batched_data.batch + # virtual node embeddings for graphs + virtualnode_embedding = self.virtualnode_embedding(torch.zeros( + batch[-1].item() + 1).to(edge_index.dtype).to(edge_index.device)) + + h_list = [self.atom_encoder(x)] + for layer in range(self.num_layer): + # add message from virtual nodes to graph nodes + h_list[layer] = h_list[layer] + virtualnode_embedding[batch] + + # Message passing among graph nodes + h = self.convs[layer](h_list[layer], edge_index, edge_attr) + + h = self.batch_norms[layer](h) + if layer == self.num_layer - 1: + # remove relu for the last layer + h = F.dropout(h, self.drop_ratio, training=self.training) + else: + h = F.dropout( + F.relu(h), self.drop_ratio, training=self.training + ) + + if self.residual: + h = h + h_list[layer] + + h_list.append(h) + + # update the virtual nodes + if layer < self.num_layer - 1: + # add message from graph nodes to virtual nodes + virtualnode_embedding_temp = global_add_pool( + h_list[layer], batch) + virtualnode_embedding + # transform virtual nodes using MLP + + if self.residual: + virtualnode_embedding = virtualnode_embedding + F.dropout( + self.mlp_virtualnode_list[layer]( + virtualnode_embedding_temp + ), self.drop_ratio, training=self.training + ) + else: + virtualnode_embedding = F.dropout( + self.mlp_virtualnode_list[layer]( + virtualnode_embedding_temp + ), self.drop_ratio, training=self.training + ) + + # Different implementations of Jk-concat + if self.JK == "last": + node_representation = h_list[-1] + elif self.JK == "sum": + node_representation = 0 + for layer in range(self.num_layer + 1): + node_representation += h_list[layer] + + return node_representation + + +if __name__ == "__main__": + pass diff --git a/models/model.py b/models/model.py new file mode 100644 index 0000000..815d127 --- /dev/null +++ b/models/model.py @@ -0,0 +1,147 @@ +import torch +from torch import nn +import torch.nn.functional as F +from torch_geometric.nn import global_mean_pool +from torch_scatter import scatter_add, scatter_mean +import numpy as np + +from GOOD.networks.models.GINs import GINFeatExtractor +from GOOD.networks.models.GINvirtualnode import vGINFeatExtractor + +from vector_quantize_pytorch import VectorQuantize +# from .vq_update import VectorQuantize + +from .gnnconv import GNN_node + + +class Separator(nn.Module): + def __init__(self, args, config): + super(Separator, self).__init__() + if args.dataset.startswith('GOOD'): + # GOOD + if config.model.model_name == 'GIN': + self.r_gnn = GINFeatExtractor(config, without_readout=True) + else: + self.r_gnn = vGINFeatExtractor(config, without_readout=True) + emb_d = config.model.dim_hidden + else: + self.r_gnn = GNN_node(num_layer=args.layer, emb_dim=args.emb_dim, + drop_ratio=args.dropout, gnn_type=args.gnn_type) + emb_d = args.emb_dim + + self.separator = nn.Sequential(nn.Linear(emb_d, emb_d * 2), + nn.BatchNorm1d(emb_d * 2), + nn.ReLU(), + nn.Linear(emb_d * 2, emb_d), + nn.Sigmoid()) + self.args = args + + def forward(self, data): + if self.args.dataset.startswith('GOOD'): + # DrugOOD + node_feat = self.r_gnn(data=data) + else: + # GOOD + node_feat = self.r_gnn(data) + score = self.separator(node_feat) # [n, d] + + # reg on score + + pos_score_on_node = score.mean(1) # [n] + pos_score_on_batch = scatter_add(pos_score_on_node, data.batch, dim=0) # [B] + neg_score_on_batch = scatter_add((1 - pos_score_on_node), data.batch, dim=0) # [B] + return score, pos_score_on_batch + 1e-8, neg_score_on_batch + 1e-8 + + +class DiscreteEncoder(nn.Module): + def __init__(self, args, config): + super(DiscreteEncoder, self).__init__() + self.args = args + self.config = config + if args.dataset.startswith('GOOD'): + emb_dim = config.model.dim_hidden + if config.model.model_name == 'GIN': + self.gnn = GINFeatExtractor(config, without_readout=True) + else: + self.gnn = vGINFeatExtractor(config, without_readout=True) + self.classifier = nn.Sequential(*( + [nn.Linear(emb_dim, config.dataset.num_classes)] + )) + else: + emb_dim = args.emb_dim + self.gnn = GNN_node(num_layer=args.layer, emb_dim=args.emb_dim, + drop_ratio=args.dropout, gnn_type=args.gnn_type) + self.classifier = nn.Sequential(nn.Linear(emb_dim, emb_dim * 2), + nn.BatchNorm1d(emb_dim * 2), + nn.ReLU(), + nn.Dropout(), + nn.Linear(emb_dim * 2, 1)) + + self.pool = global_mean_pool + + self.vq = VectorQuantize(dim=emb_dim, + codebook_size=args.num_e, + commitment_weight=args.commitment_weight, + decay=0.9) + + self.mix_proj = nn.Sequential(nn.Linear(emb_dim * 2, emb_dim), + nn.BatchNorm1d(emb_dim), + nn.ReLU(), + nn.Dropout(), + nn.Linear(emb_dim, emb_dim)) + + self.simsiam_proj = nn.Sequential(nn.Linear(emb_dim, emb_dim * 2), + nn.BatchNorm1d(emb_dim * 2), + nn.ReLU(), + nn.Linear(emb_dim * 2, emb_dim)) + + def vector_quantize(self, f, vq_model): + v_f, indices, v_loss = vq_model(f) + + return v_f, v_loss + + def forward(self, data, score): + if self.args.dataset.startswith('GOOD'): + # DrugOOD + node_feat = self.gnn(data=data) + else: + # GOOD + node_feat = self.gnn(data) + + node_v_feat, cmt_loss = self.vector_quantize(node_feat.unsqueeze(0), self.vq) + node_v_feat = node_v_feat.squeeze(0) + node_res_feat = node_feat + node_v_feat + c_node_feat = node_res_feat * score + s_node_feat = node_res_feat * (1 - score) + + c_graph_feat = self.pool(c_node_feat, data.batch) + s_graph_feat = self.pool(s_node_feat, data.batch) + + c_logit = self.classifier(c_graph_feat) + + return c_logit, c_graph_feat, s_graph_feat, cmt_loss + + +class MyModel(nn.Module): + def __init__(self, args, config): + super(MyModel, self).__init__() + self.args = args + self.config = config + + self.separator = Separator(args, config) + self.encoder = DiscreteEncoder(args, config) + + def forward(self, data): + score, pos_score, neg_score = self.separator(data) + c_logit, c_graph_feat, s_graph_feat, cmt_loss = self.encoder(data, score) + # reg on score + loss_reg = torch.abs(pos_score / (pos_score + neg_score) - self.args.gamma * torch.ones_like(pos_score)).mean() + return c_logit, c_graph_feat, s_graph_feat, cmt_loss, loss_reg + + def mix_cs_proj(self, c_f: torch.Tensor, s_f: torch.Tensor): + n = c_f.size(0) + perm = np.random.permutation(n) + mix_f = torch.cat([c_f, s_f[perm]], dim=-1) + proj_mix_f = self.encoder.mix_proj(mix_f) + return proj_mix_f + diff --git a/resources/framework.png b/resources/framework.png new file mode 100644 index 0000000000000000000000000000000000000000..29401399a13a06e52806f9b611e78c74c1af29f2 GIT binary patch literal 289412 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 h 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

Cv$MSOkw3Tc>j>TCdoMpaWz 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 best_valid_score: + if (valid_score > best_valid_score and self.metric.lower_better == -1) or \ + (valid_score < best_valid_score and self.metric.lower_better == 1): + test_score = self.test_step(self.test_loader) + best_valid_score = valid_score + best_test_score = test_score + logger.info(f"UPDATE test-score={best_test_score:.5f}") + + + logger.info(f"test-score={best_test_score:.5f}") + + def train_step(self, epoch): + self.model.train() + if epoch % 4 in range(1): + # train separator + set_requires_grad([self.model.separator], requires_grad=True) + set_requires_grad([self.model.encoder], requires_grad=False) + else: + # train classifier + set_requires_grad([self.model.separator], requires_grad=False) + set_requires_grad([self.model.encoder], requires_grad=True) + + pbar = tqdm(self.train_loader, desc=f"E [{epoch}]") + + for data in pbar: + data = data.to(self.device) + c_logit, c_f, s_f, cmt_loss, reg_loss = self.model(data) + # classification loss on c + mask, target = nan2zero_get_mask(data, 'None', self.cfg) + cls_loss = self.metric.loss_func(c_logit, target.float(), reduction='none') * mask + cls_loss = cls_loss.sum() / mask.sum() + + mix_f = self.model.mix_cs_proj(c_f, s_f) + inv_loss = self.simsiam_loss(c_f, mix_f) + # inv_w: lambda_1 + # reg_w: lambda_2 + loss = cls_loss + cmt_loss + self.args.inv_w * inv_loss + self.args.reg_w * reg_loss + + self.opt.zero_grad() + loss.backward() + torch.nn.utils.clip_grad_norm_(self.model.parameters(), 5) + self.opt.step() + + pbar.set_postfix_str(f"loss={loss.item():.4f}") + self.writer.add_scalar('loss', loss.item(), self.total_step) + self.writer.add_scalar('cls-loss', cls_loss.item(), self.total_step) + self.writer.add_scalar('cmt-loss', cmt_loss.item(), self.total_step) + self.writer.add_scalar('reg-loss', reg_loss.item(), self.total_step) + + self.total_step += 1 + + + @torch.no_grad() + def test_step(self, loader): + + self.model.eval() + y_pred, y_gt = [], [] + for data in loader: + data = data.to(self.device) + logit, _, _, _, _ = self.model(data) + mask, _ = nan2zero_get_mask(data, 'None', self.cfg) + pred, target = eval_data_preprocess(data.y, logit, mask, self.cfg) + y_pred.append(pred) + y_gt.append(target) + + score = eval_score(y_pred, y_gt, self.cfg) + + return score + + def simsiam_loss(self, causal_rep, mix_rep): + causal_rep = causal_rep.detach() + causal_rep = F.normalize(causal_rep, dim=1) + mix_rep = F.normalize(mix_rep, dim=1) + return -(causal_rep * mix_rep).sum(dim=1).mean() + + +def main(): + args = args_parser() + torch.cuda.set_device(int(args.gpu)) + + logger = initialize_exp(args) + set_seed(args.random_seed) + logger_path = get_dump_path(args) + writer = SummaryWriter(log_dir=os.path.join(logger_path, 'tensorboard')) + + runner = Runner(args, writer, logger_path) + runner.run() + writer.close() + + +if __name__ == '__main__': + main()