Hetionet is a hetnet — network with multiple node and edge (relationship) types — which encodes biology. The hetnet was designed for Project Rephetio, which aims to systematically identify why drugs work and predict new therapies for drugs. The research article describing Project Rephetio and Hetionet v1.0 is:
Systematic integration of biomedical knowledge prioritizes drugs for repurposing
Daniel Scott Himmelstein, Antoine Lizee, Christine Hessler, Leo Brueggeman, Sabrina L Chen, Dexter Hadley, Ari Green, Pouya Khankhanian, Sergio E Baranzini
eLife (2017-09-22) https://git.dhimmel.com/rephetio-manuscript/
DOI: 10.7554/elife.26726 · PMID: 28936969 · PMCID: PMC5640425
Version 1.0 contains 47,031 nodes of 11 types and 2,250,197 relationships of 24 types. This repository is currently only a download location for Hetionet. The data integration and hetnet creation occurs in a separate repository (dhimmel/integrate
) and is imported to this repository by import.ipynb
.
# Docker and Docker Compose are prerequisites
docker login
bash init.sh
- Neo4j Browser: http://localhost:7474 (for interactive querying via the web browser)
- Bolt Protocol: bolt://localhost:7687 (for programmatic access using drivers like Python, Java, etc.)
- No Authentication Required
Customized GPT to ask questions and generate Cypher queries for Neo4j: Hetionet Neo4j GPT
Convert natural language queries into Cypher scripts using an AI agent framework: Text-to-Cypher
The network is available in four formats:
- CSV — see
hetnet/csv
- JSON — see
hetnet/json
- Neo4j — see
hetnet/neo4j
- TSV — see
hetnet/tsv
- matrix — see
hetnet/matrix
The JSON and Neo4j formats contain node and edge properties, which are absent in the TSV and matrix formats, including licensing information.
Therefore the recommended formats are JSON and Neo4j.
Our hetio
package in Python reads the JSON format, but it is otherwise a simple yet new format.
The Neo4j graph database has an established and thriving ecosystem.
However, if you would like to access Hetionet without Neo4j, then we suggest the JSON format.
The matrix format refers to HetMat archives, which store edge adjacency matrices on disk.
Additional usage information is available at the corresponding download locations.
This section contains networks that are derived, at least in part from Hetionet, but are not identical.
- BEL:
see
pybel/hetionet-bel
for Hetionet converted to Biological Expression Language (BEL). BEL expresses biological relationships in a machine-readable format. Changes or omission of certain nodes and edges were made to properly represent Hetionet in BEL, as documented in thehetionet-bel
README. Currently, the repository contains exports of the BEL representation in multiple formats: as a BEL Script, as Nodelink JSON, and as GraphDati JSON. Contributed by Charles Tapley Hoyt.
We've created five permuted derivatives of Hetionet. The permutation randomizes edges while preserving node degree. Permuted hetnets are available in hetnet/permuted
in JSON and Neo4j 2.3 formats. Relationship properties are omitted from the permuted hetnets.
Large files in this repository are stored using Git LFS. If cloning this repository, please make sure that Git LFS is installed on your system. Otherwise, git will checkout text pointers for large files rather than the large files themselves!
describe
contains summary statistics on the hetnet.
See describe/nodes/metanodes.tsv
for details on the node types in the hetnet.
See describe/edges/metaedges.tsv
for details on the edge types.
See describe/definitions.json
for definitions of metanodes, metaedges, and node/edge properties.
See describe/styles.json
for the standard colors to be used for displaying metanodes.
Below, we provide two hetnet visualizations. Panel A shows the metagraph (graph of types) for Hetionet. Panel B shows the actual hetnet with nodes laid out in circles by type. Color denotes edge type.
All original content in this repository is released as CC0. However, the hetnet integrates data from many resources and users should consider the licensing of each source (see this table). We apply a license
attribute on a per node and per edge basis for sources with defined licenses. However, some resources don't provide any license, so for those we've requested permission. More information is available on Thinklab.