• Stars
    star
    442
  • Rank 98,018 (Top 2 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created over 6 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Graph convolutional neural network for multirelational link prediction

Decagon: Representation Learning on Multimodal Graphs

Author: Marinka Zitnik ([email protected])

Project website

Overview

This repository contains code necessary to run the Decagon algorithm. Decagon is a method for learning node embeddings in multimodal graphs, and is especially useful for link prediction in highly multi-relational settings. See our paper for details on the algorithm.

Usage: Polypharmacy

Decagon is used to address a burning question in pharmacology, which is that of predicting safety of drug combinations.

We construct a multimodal graph of protein-protein interactions, drug-protein target interactions, and polypharmacy side effects, which are represented as drug-drug interactions, where each side effect is an edge of a different type.

Decagon uses graph convolutions to embed the multimodal graph in a compact vector space and then uses the learned embeddings to predict side effects of drug combinations.

Running the code

The setup for the polypharmacy problem on a synthetic dataset is outlined in main.py. It uses a small synthetic network example with five edge types. Run the code as following:

$ python main.py

The full polypharmacy dataset (described in the paper) is available on the project website. To run the code on the full dataset first download all data files from the project website. The polypharmacy dataset is already preprocessed and ready to use. After cloning the project, replace the synthetic example in main.py with the polypharmacy dataset and run the model.

Citing

If you find Decagon useful for your research, please consider citing this paper:

@article{Zitnik2018,
  title     = {Modeling polypharmacy side effects with graph convolutional networks.},
  author    = {Zitnik, Marinka and Agrawal, Monica and Leskovec, Jure},
  journal   = {Bioinformatics},
  volume    = {34},
  number    = {13},
  pages     = {457โ€“466},
  year      = {2018}
}

Miscellaneous

Please send any questions you might have about the code and/or the algorithm to [email protected].

This code implements several different edge decoders (innerproduct, distmult, bilinear, dedicom) and loss functions (hinge loss, cross entropy). Many deep variants are possible and what works best might depend on a concrete use case.

Requirements

Decagon is tested to work under Python 2 and Python 3.

Recent versions of Tensorflow, sklearn, networkx, numpy, and scipy are required. All the required packages can be installed using the following command:

$ pip install -r requirements.txt

License

Decagon is licensed under the MIT License.

More Repositories

1

TDC

Therapeutics Commons (TDC-2): Multimodal Foundation for Therapeutic Science
Jupyter Notebook
979
star
2

nimfa

Nimfa: Nonnegative matrix factorization in Python
Python
535
star
3

TFC-pretraining

Self-supervised contrastive learning for time series via time-frequency consistency
Python
405
star
4

UniTS

A unified multi-task time series model.
Python
386
star
5

PrimeKG

Precision Medicine Knowledge Graph (PrimeKG)
Jupyter Notebook
364
star
6

graphml-tutorials

Tutorials for Machine Learning on Graphs
Jupyter Notebook
204
star
7

SubGNN

Subgraph Neural Networks (NeurIPS 2020)
Python
187
star
8

Raindrop

Graph Neural Networks for Irregular Time Series
Python
162
star
9

GraphXAI

GraphXAI: Resource to support the development and evaluation of GNN explainers
Python
151
star
10

scikit-fusion

scikit-fusion: Data fusion via collective latent factor models
Python
143
star
11

G-Meta

Graph meta learning via local subgraphs (NeurIPS 2020)
Python
119
star
12

Raincoat

Domain Adaptation for Time Series Under Feature and Label Shifts
Jupyter Notebook
105
star
13

ohmnet

OhmNet: Representation learning in multi-layer graphs
Python
78
star
14

PINNACLE

Contextualizing protein representations using deep learning on protein networks and single-cell data
Python
62
star
15

TxGNN

TxGNN: Zero-shot prediction of therapeutic use with geometric deep learning and clinician centered design
Jupyter Notebook
61
star
16

GNNGuard

Defending graph neural networks against adversarial attacks (NeurIPS 2020)
Python
57
star
17

SHEPHERD

SHEPHERD: Few shot learning for phenotype-driven diagnosis of patients with rare genetic diseases
HTML
41
star
18

GNNDelete

General Strategy for Unlearning in Graph Neural Networks
Python
36
star
19

crank

Prioritizing network communities
C++
28
star
20

TimeX

Time series explainability via self-supervised model behavior consistency
Python
25
star
21

SPECTRA

Spectral Framework For AI Model Evaluation
Roff
23
star
22

pathways

Disease pathways in the human interactome
Python
22
star
23

fastGNMF

Fast graph-regularized matrix factorization
Python
19
star
24

PDGrapher

Combinatorial prediction of therapeutic perturbations using causally-inspired neural networks
Python
17
star
25

fusenet

Network inference by fusing data from diverse distributions
Python
14
star
26

medusa

Jumping across biomedical contexts using compressive data fusion
Python
7
star
27

life-tree

Evolution of protein interactomes across the tree of life
C++
7
star
28

patient-safety

Population-scale patient safety data reveal inequalities in adverse events before and during COVID-19 pandemic
Jupyter Notebook
7
star
29

nimfa-ipynb

IPython notebooks demonstrating Nimfa's functionality
6
star
30

scCIPHER

scCIPHER: Contextual deep learning on single-cell-enriched knowledge graphs in neurological disorders
Jupyter Notebook
5
star
31

ngmc

Network-guided matrix completion
Python
3
star
32

BMI702

Biomedical Artificial Intelligence
HTML
3
star
33

AWARE

AWARE: Contextualizing protein representations using deep learning on interactomes and single-cell experiments
Python
3
star
34

data-mining-unipv

Short Course on Data Mining at University of Pavia
Jupyter Notebook
2
star
35

collage-dicty

Gene prioritization by compressive data fusion and chaining
Python
2
star
36

copacar

Collective pairwise classification for multi-way (multi-relational) data analysis
Python
1
star
37

mims-harvard.github.io

Lab website
HTML
1
star