/hetio

Hetnets in Python

Primary LanguagePythonCreative Commons Zero v1.0 UniversalCC0-1.0

Hetnets in Python

Latest DOI GitHub issues

Background

Hetnets: Hetnets, also called heterogeneous information networks, are graphs with multiple node and edge types. Hetnets are both multipartite and multirelational. They provide a scalable, intuitive, and frictionless structure for data integration.

Purpose: This package provides data structures for hetnets and algorithms for edge prediction. It only supports hetnets, which is its primary advantage compared to other network software. Node/edge attributes and edge directionality are supported.

Impetus: Development originated with a study to predict disease-associated genes and continues with a successive study to repurpose drugs.

Caution: Documentation is currently lacking, testing coverage is poor, and the API is unstable. Contributions are welcome. Please use GitHub Issues for feedback, questions, or troubleshooting.

Installation

PyPI

Please use Python 3.4 or higher. To install the current PyPI version (recommended), run:

pip install hetio

For the latest GitHub version, run:

pip install git+https://github.com/dhimmel/hetio.git#egg=hetio

For development, clone or download-and-extract the repository. Then run pip install -e . from the repository's root directory. The -e flag specifies editable mode, so updating the source updates your installation.

Once installed, tests can be executed by running py.test test/ from the repository's root directory.

Design

A Graph object stores a heterogeneous network and relies on the following classes:

  1. Graph
  2. MetaGraph
  3. Edge
  4. MetaEdge