Few-Shot Graph Learning for Molecular Property Prediction

Overview

Few-shot Graph Learning for Molecular Property Prediction

Introduction

This is the source code and dataset for the following paper:

Few-shot Graph Learning for Molecular Property Prediction. In WWW 2021.

Contact Zhichun Guo ([email protected]), if you have any questions.

Datasets

The datasets uploaded can be downloaded to train our model directly.

The original datasets are downloaded from Data. We utilize Original_datasets/splitdata.py to split the datasets according to the molecular properties and save them in different files in the Original_datasets/[DatasetName]/new. Then run main.py, the datasets will be automatically preprocessed by loader.py and the preprocessed results will be saved in the Original_datasets/[DatasetName]/new/[PropertyNumber]/propcessed.

Usage

Installation

We used the following Python packages for the development by python 3.6.

- torch = 1.4.0
- torch-geometric = 1.6.1
- torch-scatter = 2.0.4
- torch-sparse = 0.6.1
- scikit-learn = 0.23.2
- tqdm = 4.50.0
- rdkit

Run code

Datasets and k (for k-shot) can be changed in the last line of main.py.

python main.py

Performance

The performance of meta-learning is not stable for some properties. We report two times results and the number of the iteration where we obtain the best results here for your reference.

Dataset k Iteration Property Results k Iteration Property Results
Sider 1 307/599 Si-T1 75.08/75.74 5 561/585 Si-T1 76.16/76.47
Si-T2 69.44/69.34 Si-T2 68.90/69.77
Si-T3 69.90/71.39 Si-T3 72.23/72.35
Si-T4 71.78/73.60 Si-T4 74.40/74.51
Si-T5 79.40/80.50 Si-T5 81.71/81.87
Si-T6 71.59/72.35 Si-T6 74.90/73.34
Ave. 72.87/73.82 Ave. 74.74/74.70
Tox21 1 1271/1415 SR-HS 73.72/73.90 5 1061/882 SR-HS 74.85/74.74
SR-MMP 78.56/79.62 SR-MMP 80.25/80.27
SR-p53 77.50/77.91 SR-p53 78.86/79.14
Ave. 76.59/77.14 Ave. 77.99/78.05

Acknowledgements

The code is implemented based on Strategies for Pre-training Graph Neural Networks.

Reference

@article{guo2021few,
  title={Few-Shot Graph Learning for Molecular Property Prediction},
  author={Guo, Zhichun and Zhang, Chuxu and Yu, Wenhao and Herr, John and Wiest, Olaf and Jiang, Meng and Chawla, Nitesh V},
  journal={arXiv preprint arXiv:2102.07916},
  year={2021}
}
You might also like...
This is a Pytorch implementation of the paper: Self-Supervised Graph Transformer on Large-Scale Molecular Data.

This is a Pytorch implementation of the paper: Self-Supervised Graph Transformer on Large-Scale Molecular Data.

SkipGNN: Predicting Molecular Interactions with Skip-Graph Networks (Scientific Reports)
SkipGNN: Predicting Molecular Interactions with Skip-Graph Networks (Scientific Reports)

SkipGNN: Predicting Molecular Interactions with Skip-Graph Networks Molecular interaction networks are powerful resources for the discovery. While dee

Few-shot Learning of GPT-3

Few-shot Learning With Language Models This is a codebase to perform few-shot "in-context" learning using language models similar to the GPT-3 paper.

Library of various Few-Shot Learning frameworks for text classification

FewShotText This repository contains code for the paper A Neural Few-Shot Text Classification Reality Check Environment setup # Create environment pyt

Few-shot Relation Extraction via Bayesian Meta-learning on Relation Graphs

Few-shot Relation Extraction via Bayesian Meta-learning on Relation Graphs This is an implemetation of the paper Few-shot Relation Extraction via Baye

True Few-Shot Learning with Language Models

This codebase supports using language models (LMs) for true few-shot learning: learning to perform a task using a limited number of examples from a single task distribution.

Adaptive Prototype Learning and Allocation for Few-Shot Segmentation (CVPR 2021)
Adaptive Prototype Learning and Allocation for Few-Shot Segmentation (CVPR 2021)

ASGNet The code is for the paper "Adaptive Prototype Learning and Allocation for Few-Shot Segmentation" (accepted to CVPR 2021) [arxiv] Overview data/

Code for 'Self-Guided and Cross-Guided Learning for Few-shot segmentation. (CVPR' 2021)'

SCL Introduction Code for 'Self-Guided and Cross-Guided Learning for Few-shot segmentation. (CVPR' 2021)' We evaluated our approach using two baseline

 Spatial Contrastive Learning for Few-Shot Classification (SCL)
Spatial Contrastive Learning for Few-Shot Classification (SCL)

This repo contains the official implementation of Spatial Contrastive Learning for Few-Shot Classification (SCL), which presents of a novel contrastive learning method applied to few-shot image classification in order to learn more general purpose embeddings, and facilitate the test-time adaptation to novel visual categories.

Comments
  • Question about sampling dataset

    Question about sampling dataset

    Hi @zhichunguo

    I am confused about the meaning of obtain_distr_list. Does it stand for [training, testing] or [query, support] ?

    Besides, what's support_list += random.sample(range(distri_list[task][0],len(data)), m_support) for in https://github.com/zhichunguo/Meta-MGNN/blob/b76c04057ebbf19e164cb101e8a9b9b758f9f008/samples.py#L17 and https://github.com/zhichunguo/Meta-MGNN/blob/b76c04057ebbf19e164cb101e8a9b9b758f9f008/samples.py#L32

    which doubles the support set.

    what I think is that obtain_distr_list pre-define the set of query and support in each task and will not change in the entire training process. For each training loop, query dataset and support dataset should be sampled from these two sets based on the defined query and support number. Please let me know if I was wrong.

    opened by LucyLu-LX 2
  • Code Error of the file

    Code Error of the file "meta_model.py "

    In the line 240 in meta_mode.py, the computation loss of "add_masking" module should be updated based on loss_query (loss_q), not on loss_support (loss).

    Is it my misunderstanding or code error?

    opened by CheriseZhu 0
Owner
Zhichun Guo
Zhichun Guo is a Ph.D. student at University of Notre Dame.
Zhichun Guo
Fast and scalable uncertainty quantification for neural molecular property prediction, accelerated optimization, and guided virtual screening.

Evidential Deep Learning for Guided Molecular Property Prediction and Discovery Ava Soleimany*, Alexander Amini*, Samuel Goldman*, Daniela Rus, Sangee

Alexander Amini 75 Dec 15, 2022
Official implementation of "Motif-based Graph Self-Supervised Learning forMolecular Property Prediction"

Motif-based Graph Self-Supervised Learning for Molecular Property Prediction Official Pytorch implementation of NeurIPS'21 paper "Motif-based Graph Se

zaixi 71 Dec 20, 2022
Molecular Sets (MOSES): A benchmarking platform for molecular generation models

Molecular Sets (MOSES): A benchmarking platform for molecular generation models Deep generative models are rapidly becoming popular for the discovery

Neelesh C A 3 Oct 14, 2022
Molecular Sets (MOSES): A Benchmarking Platform for Molecular Generation Models

Molecular Sets (MOSES): A benchmarking platform for molecular generation models Deep generative models are rapidly becoming popular for the discovery

MOSES 656 Dec 29, 2022
We envision models that are pre-trained on a vast range of domain-relevant tasks to become key for molecule property prediction

We envision models that are pre-trained on a vast range of domain-relevant tasks to become key for molecule property prediction. This repository aims to give easy access to state-of-the-art pre-trained models.

GMUM 90 Jan 8, 2023
Code for T-Few from "Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning"

T-Few This repository contains the official code for the paper: "Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learni

null 220 Dec 31, 2022
Few-NERD: Not Only a Few-shot NER Dataset

Few-NERD: Not Only a Few-shot NER Dataset This is the source code of the ACL-IJCNLP 2021 paper: Few-NERD: A Few-shot Named Entity Recognition Dataset.

THUNLP 319 Dec 30, 2022
Pytorch Implementation for CVPR2018 Paper: Learning to Compare: Relation Network for Few-Shot Learning

LearningToCompare Pytorch Implementation for Paper: Learning to Compare: Relation Network for Few-Shot Learning Howto download mini-imagenet and make

Jackie Loong 246 Dec 19, 2022
face property detection pytorch

This is the face property train code of project face-detection-project

i am x 2 Oct 18, 2021
chainladder - Property and Casualty Loss Reserving in Python

chainladder (python) chainladder - Property and Casualty Loss Reserving in Python This package gets inspiration from the popular R ChainLadder package

Casualty Actuarial Society 130 Dec 7, 2022