EraGene Knowledge Graph
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