Methods for building layered graphs and running graph traversal algorithms for analyzing networks in genetics.
LayeredGraphAPI/LayeredGraph.py contains an API for building a graph containing multiple types or "layers" of nodes (for example, genes and HPO terms). The
following graphs are all built using this API. For details on how the API works, refer to the README within the LayeredGraph subdirectory.
- Python - developed and tested using Python 3.6.2.
- Python packages - numpy, scipy, pronto, networkx
- Docker and Docker Compose
- Docker needs to have at least 4GB of RAM allocated to it from the host machine
- At minimum Docker needs 2 CPUs allocated to it
- At minimum DOcker needs 64GB of disk allocated to it
Human Phenotype Ontology (HPO)
The first graph contains two layers: a phenotype layer and a gene layer. The intent of the graph is to provide a mechanism for obtaining genes that are closely related to a particular set of phenotypes. The graph is built using the full HPO database and weights are calculated between HPO nodes based on the number of shared gene associations. Phenotype-to-gene edges are built using a combination of HPO annotations and a scaling weight from PubTator.
Protein-Protein Interaction (PPI)
The second graph contains a single layer for genes. The intent of the graph is to provide a mechanism for identifying genes that are interacting with a set of other genes. The graph is built using protein-protein interactions provided by ConsensusPathDB where the proteins have been translated into the corresponding human gene label. Gene-to-gene edge weights are calculated based on the maximum confidence provided by ConsensusPathDB for the particular relationship.
Official Demo Server
We offer an official demo server stood up at http://pyxis.hudsonalpha.org. This is an up-to-date instance of the latest release PyxisMap. This instance can be used to validate a local deployment of the application.
Assuming you have docker installed on your machine it's fairly simple to build and run the server within docker (IMPORTANT: Docker needs at least 4GB of memory allocated for building the images). Here are the instructions for a local build and deployment:
git clone https://github.com/HudsonAlpha/LayeredGraph.git cd LayeredGraph/docker/application ./buildApplicationContainer.sh cd ../fixtures ./buildFixturesContainer.sh cd ../.. docker-compose up -d