Computes a molecular graph for protein structures.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
examples/hiv added examples using protein graphs Apr 29, 2016
proteingraph Renamed package "proteingraph" Feb 23, 2018
.gitignore removed sublimeworkspace from version control Apr 27, 2016
.travis.yml copied over travis build scripts from other project that is working May 15, 2016
LICENSE Initial commit Mar 3, 2016 Updated setup script. Feb 23, 2018
build-env.yml fixed scikit-learn dependency error May 15, 2016
requirements.txt updated requirements May 15, 2016 Renamed package "proteingraph" Feb 23, 2018


Computes a molecular graph for protein structures.


Proteins fold into 3D structures, and have a natural graph representation: amino acids are nodes, and biochemical interactions are edges.

I wrote this package as part of a larger effort to do graph convolutional neural networks on protein structures (represented as graphs). However, that's not the only thing I can foresee doing with this.

One may be interested in the topology of proteins across species and over evolutionary time. This package can aid in answering this question.

how do I install this package?

Currently only pip-installable:

$ pip install proteingraph

how do I use this package?

This package assumes that you have a standard protein structure file (e.g. a PDB file). This may be a file generated after solving the NMR or crystal structure of a protein, or it may be generated from homology modelling.

Once that has been generated, the molecular graph can be generated using Python code.

from pin import ProteinInteractionNetwork

p = pin.ProteinInteractionNetwork('my_model.pdb')

Because the ProteinInteractionNetwork class inherits from NetworkX's Graph class, all methods that Graph has are inherited by ProteinInteractionNetwork, and it behaves just as a NetworkX graph does.

What this means is that all graph-theoretic metrics (e.g. degree centrality, betweenness centrality etc.) can be computed on the ProteinInteractionNetwork object.

See the HIV1 homology model example in the examples/ directory for a minimal example.