Published September 5, 2026 | Version 1.0.0

EraGene Knowledge Graph

  • 1. ROR icon Universidad Virtual del Estado de Guanajuato
  • 2. ROR icon Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional

Description

EraGene Knowledge Graph

This repository contains the annotations used to build the EraGene knowledge graph. The database is provided as a Neo4j dump (Version 2026.06.0), which can be easily imported into a Neo4j instance.

Once imported, the database can be explored by querying it using the Cypher query language. The following sections provide instructions and examples for interacting with the database.

Requeriments

  • Download and install Neo4j for Desktop 2.2.1 or later here.
  • Create an instance if none is available.

Getting started

Download the Dump File

  • Download the database dump file (eragene.dump).
  • Save it to a suitable location on your local machine.

Prepare the Database

  • Run Neo4j Desktop.
  • Stop the instance if it is running (important).
  • Identify the path where the instance is stored.

Example for windows:

Path = C:\Users\user\.Neo4jDesktop2\Data\dbmss\dbms-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx

Load the Database

Run the following command to load the dump file and populate the database.

{Path}/bin/neo4j-admin database load neo4j --from-path=/path/to/dump/eragene.dump --overwrite-destination=true

Replace {Path} with the path to your Neo4j instance's directory.

If no errors occur, the database has been successfully imported.

Database Structure

General Schema of Relationships Between Labels

The relationships between node labels are represented in the following figure.

CALL db.schema.visualization();

 

 

Node Properties

The nodes that constitute the graph database are described in the following table.

MATCH (n)
UNWIND labels(n) AS label
UNWIND keys(n) AS key
RETURN label,
       key AS property,
       collect(DISTINCT valueType(n[key])) AS types
ORDER BY label, property;
Label Property Type
Compound InChI STRING NOT NULL
Compound InChIKey STRING NOT NULL
Compound dg STRING NOT NULL
Compound formule STRING NOT NULL
Compound generic BOOLEAN NOT NULL
Compound html_name STRING NOT NULL
Compound id STRING NOT NULL
Compound mm STRING NOT NULL
Compound mw STRING NOT NULL
Compound pk STRING NOT NULL
Compound smile STRING NOT NULL
Compound ubiquitous BOOLEAN NOT NULL
Enzyme id STRING NOT NULL
Enzyme name STRING NOT NULL
ExternalLink db STRING NOT NULL
ExternalLink external_id STRING NOT NULL
ExternalLink id STRING NOT NULL
ExternalLink pk INTEGER NOT NULL, STRING NOT NULL
Gene id STRING NOT NULL
Gene name STRING NOT NULL
Gene pk STRING NOT NULL
Gene sequence STRING NOT NULL
Modification exclusion STRING NOT NULL
Modification id STRING NOT NULL
Modification modification_type STRING NOT NULL
Modification pk STRING NOT NULL
Modification sequence_optimized BOOLEAN NOT NULL
Modification sequence_substitution STRING NOT NULL
Organism id STRING NOT NULL
Organism name STRING NOT NULL
Plasmid genotype STRING NOT NULL
Plasmid id STRING NOT NULL
Plasmid name STRING NOT NULL
Plasmid pk STRING NOT NULL
Plasmid resistance LIST<STRING NOT NULL> NOT NULL, LIST<NOTHING> NOT NULL
Production biomass STRING NOT NULL, FLOAT NOT NULL
Production biomass_units STRING NOT NULL
Production fermentation STRING NOT NULL
Production heterologous BOOLEAN NOT NULL
Production id STRING NOT NULL
Production main BOOLEAN NOT NULL
Production pk STRING NOT NULL
Production production FLOAT NOT NULL
Production production_type STRING NOT NULL
Production production_units STRING NOT NULL
Production time STRING NOT NULL
Reaction dg STRING NOT NULL
Reaction direction STRING NOT NULL
Reaction id STRING NOT NULL
Reaction pk STRING NOT NULL
Reaction spontaneous BOOLEAN NOT NULL
Reference cite STRING NOT NULL
Reference doi STRING NOT NULL
Reference id STRING NOT NULL
Reference pk STRING NOT NULL
Strain genotype STRING NOT NULL
Strain id STRING NOT NULL
Strain mutagen_derived BOOLEAN NOT NULL
Strain name STRING NOT NULL
Strain pk STRING NOT NULL

Relationships

The relationships that connect the nodes in the database are the following.

MATCH (a)-[r]->(b)
RETURN DISTINCT
       labels(a) AS source_labels,
       type(r) AS relationship,
       labels(b) AS target_labels
ORDER BY relationship, source_labels, target_labels;
Source Label Relationship Target Label
Modification AFFECT_GENE Gene
Modification AFFECT_REACTION Reaction
Production CARBON_SOURCE Compound
Enzyme CATALYZES Reaction
Gene ENCODES Enzyme
Gene EXTERNAL_DATABASE ExternalLink
Gene GENE_FROM Organism
Compound EXTERNAL_DATABASE ExternalLink
Reaction EXTERNAL_DATABASE ExternalLink
Reaction HAS_LEFT Compound
Reaction HAS_RIGHT Compound
Reaction SUPPORTED_BY Reference
Strain HAS_MODIFICATION Modification
Strain HAS_PLASMID Plasmid
Strain PARENT_OF Strain
Strain PRODUCES Production
Strain SUPPORTED_BY Reference
Plasmid INTRODUCED_BY_PLASMID Modification
Plasmid SUPPORTED_BY Reference
Organism SUPPORTED_BY Reference
Production SUPPORTED_BY Reference
Production TARGET Compound

Usage Examples

Metabolites in the Database

MATCH (m:Compound)
RETURN 
  m.pk AS ID,
  m.html_name AS Name;
ID Name
"C7751" "dGTP"
"C7823" "dADP"
"C7783" "dATP"

...

L-Tryptophan Production Levels Across Different Strains

MATCH (s:Strain)-[:PRODUCES]->(p:Production)-[ :TARGET]->(c:Compound {html_name:"L-tryptophan"})
RETURN
  s.name AS Strain,
  p.production AS Production,
  p.production_units AS Units,
  p.fermentation AS Scale,
  c.html_name AS Metabolite;
Strain Production Units Scale Metabolite
"Escherichia coli KW006" 0.6 "g/L" "Flask" "L-tryptophan"
"Escherichia coli KW007" 0.8 "g/L" "Flask" "L-tryptophan"
"Escherichia coli KW008" 1.39 "g/L" "Flask" "L-tryptophan"
"Escherichia coli KW010" 0.59 "g/L" "Flask" "L-tryptophan"

...

Genetic Modifications Introduced into Strains to Enhance L-Tryptophan Production

MATCH (tryptophan:Compound {html_name: "L-tryptophan"})
MATCH (tryptophan)<-[:TARGET]-(prod:Production {main:TRUE})
MATCH (prod)<-[:PRODUCES]-(strain:Strain)
MATCH (strain)-[:HAS_MODIFICATION]->(mod:Modification {exclusion : ''})
MATCH (mod)-[:AFFECT_GENE]->(gene:Gene)
RETURN DISTINCT 
    mod.modification_type AS modification_type,
    gene.name AS gene_name
ORDER BY gene.name, modification_type;
modification_type gene_name organism
"Overexpression" "TRP1" "Saccharomyces cerevisiae"
"Overexpression" "TRP2" "Saccharomyces cerevisiae"
"Overexpression" "aceB" "Escherichia coli"
"Silencing" "ackA" "Escherichia coli"

 

Files

Files (34.5 MB)

Name Size
md5:d06ac8dc862e17c97921fa196df3f05d
34.5 MB Download

Additional details

Related works

Is derived from
Journal article: 10.3390/a17070282 (DOI)
Is supplemented by
Journal article: 10.3390/synbio4040023 (DOI)

Dates

Submitted
2026-09-05

Software

Repository URL
https://eragene.com
Programming language
Python
Development Status
Concept