Metadata-Version: 2.1
Name: proteingraph
Version: 0.2.1
Summary: A package for making graph representations of proteinstructures.
Home-page: http://github.com/ericmjl/protein-interaction-network/
Author: Eric J. Ma
Author-email: ericmajinglong@gmail.com
License: MIT
Keywords: protein,biochemistry,structural biology,graph theory
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown

NOTICE: This package is going to be deprecated in favour of a peer-reviewed package, [`get-contacts`](https://getcontacts.github.io/). Please use that package going forward.

# protein-graph

Computes a molecular graph for protein structures.

## why?

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:

```bash
$ 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.

```python
from proteingraph import ProteinInteractionNetwork

p = 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.


