Code Monkey home page Code Monkey logo

graphconv's Introduction

graphConv.py

alt text

Implementation of two types of graph convolution layers, and application of them on TCGA RNA-seq data and a graph defined over genes by BioGrid PPI.

Code

Graph convolution without self connection:

def convolutionGraph(inputs,
                     num_outputs,
                     glap,
                     activation_fn=nn.relu,
                     weights_initializler=initializers.xavier_initializer(),
                     biases_initializer=init_ops.zeros_initializer(),
                     reuse=None,
                     scope=None)

convlolutionGraph() implements a graph convolution layer defined by Kipf et al.

  • inputs is a 2d tensor that goes into the layer.
  • num_outputs specifies the number of channels wanted on the output tensor.
  • glap is an instance of tf.SparseTensor that defines a graph laplacian matrix DAD.

Graph convolution with self connection:

def convolutionGraph_sc(inputs,
                     num_outputs,
                     glap,
                     activation_fn=nn.relu,
                     weights_initializler=initializers.xavier_initializer(),
                     biases_initializer=init_ops.zeros_initializer(),
                     reuse=None,
                     scope=None):

convlolutionGraph_sc() implements a graph convolution layer defined by Kipf et al, except that self-connection of nodes are allowed.

  • inputs is a 2d tensor that goes into the layer.
  • num_outputs specifies the number of channels wanted on the output tensor.
  • glap is an instance of tf.SparseTensor that defines a graph laplacian matrix DAD.

inits.py:

This file contains 4 common initialization methods for network weights, i.e., uniform(), glorot(), zeros(), and ones(). We currently do not use it.

utils.py:

This file contains

  • Two versions of DataFeeder instances.
  • Helper functions for data processing. See ipynb/DataProcessing.ipynb for how to use them.
  • A class definition for intx.

Test Data Files

We have ppi matrix extracted from BioGrid in March 2018. This defines a graph. We also have TCGA RNA-seq data for approx 9000 samples. This is the data that are getting convolved over the graph. You can download datafiles from here.

Models

See ipynb/runningGraphConv.py for implemention and training of the models. It is should be straight forward.

For any question, e-mail me at hiranumn at cs dot washington dot edu.

graphconv's People

Contributors

hiranumn avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.