Grence

Graph Schema

Node types, edge types, relation taxonomy, and properties in OptimusKG.

OptimusKG is a Labeled Property Graph where every node has the schema (id, label, properties) and every edge has the schema (from, to, label, relation, undirected, properties).

All node and edge properties include a sources struct with direct: List(String) and indirect: List(String) fields for provenance tracking. This is omitted from the individual property tables below for brevity.

Node Types

Node TypeLabelPrimary Sources
GeneGENOpenTargets, Bgee, DisGeNET
DiseaseDISOpenTargets, DrugCentral, MONDO
DrugDRGOpenTargets, DrugBank, DrugCentral, OnSIDES
PhenotypePHEOpenTargets, HPO, MedDRA
Biological ProcessBPOGO
AnatomyANAUBERON
Molecular FunctionMFNGO
Cellular ComponentCCOGO
PathwayPWYReactome, OpenTargets
ExposureEXPCTD, MeSH

Node IDs use standard ontology prefixes (e.g., MONDO:, ENSG, DrugBank:, HP:, GO:, UBERON:, R-HSA-).

Node Schema

{
    "id": "MONDO:0005015",       # Unique identifier with ontology prefix
    "label": "DIS",              # 3-letter node type code
    "properties": {
        "sources": {
            "direct": ["opentargets"],
            "indirect": ["mondo"]
        },
        "name": "diabetes mellitus",
        "description": "A metabolic disease ...",
        # ... type-specific properties
    }
}

Edge Types

Edge TypeLabelRelation TypesDir.Primary Sources
Disease - ProteinDIS-PROASSOCIATED_WITHundirectedOpenTargets, DisGeNET
Anatomy - ProteinANA-PROEXPRESSION_PRESENT, EXPRESSION_ABSENTundirectedBgee
Drug - DrugDRG-DRGSYNERGISTIC_INTERACTION, PARENTdirectedDrugBank, OpenTargets
Phenotype - ProteinPHE-PROASSOCIATED_WITHdirectedOpenTargets, DisGeNET
Protein - ProteinPRO-PROINTERACTS_WITHdirectedPrimeKG
Biological Process - ProteinBPO-PROINTERACTS_WITHundirectedOpenTargets
Disease - PhenotypeDIS-PHEPHENOTYPE_PRESENT, PHENOTYPE_ABSENTundirectedOpenTargets
Cellular Component - ProteinCCO-PROINTERACTS_WITHundirectedOpenTargets
Molecular Function - ProteinMFN-PROINTERACTS_WITHundirectedOpenTargets
Drug - DiseaseDRG-DISINDICATION, OFF_LABEL_USE, CONTRAINDICATIONundirectedOpenTargets, DrugCentral
Drug - ProteinDRG-PROTARGET, ENZYME, INHIBITOR, AGONIST, + moredirectedDrugBank, OpenTargets
Drug - PhenotypeDRG-PHEADVERSE_DRUG_REACTION, INDICATION, CONTRAINDICATIONundirectedOnSIDES, OpenTargets, DrugCentral
Pathway - ProteinPWY-PROINTERACTS_WITHundirectedOpenTargets, Reactome
Disease - DiseaseDIS-DISPARENTdirectedOpenTargets
Anatomy - AnatomyANA-ANAPARENTdirectedUBERON
Biological Process - Biological ProcessBPO-BPOIS_AdirectedGO
Cellular Component - Cellular ComponentCCO-CCOIS_AdirectedGO
Molecular Function - Molecular FunctionMFN-MFNIS_AdirectedGO
Phenotype - PhenotypePHE-PHEPARENTdirectedHPO
Pathway - PathwayPWY-PWYPARENTdirectedReactome
Protein - ProteinPRO-PROINTERACTS_WITHdirectedPrimeKG
Exposure - ProteinEXP-PROINTERACTS_WITHdirectedCTD, OpenTargets
Exposure - DiseaseEXP-DISLINKED_TOdirectedCTD, MONDO
Exposure - ExposureEXP-EXPPARENTdirectedCTD
Exposure - Biological ProcessEXP-BPOINTERACTS_WITHundirectedCTD, GO
Exposure - Molecular FunctionEXP-MFNINTERACTS_WITHundirectedCTD, GO
Exposure - Cellular ComponentEXP-CCOINTERACTS_WITHundirectedCTD, GO

Edge Schema

{
    "from": "DrugBank:DB00945",
    "to": "MONDO:0005015",
    "label": "DRG-DIS",              # Source-Target type code
    "relation": "indication",        # Standardized relation type
    "undirected": False,
    "properties": { ... }
}

Relation Taxonomy

Relations are standardized across all data sources using a controlled vocabulary:

CategoryRelations
HierarchyPARENT, IS_A
AssociationINTERACTS_WITH, ASSOCIATED_WITH, LINKED_TO
ExpressionEXPRESSION_PRESENT, EXPRESSION_ABSENT
PhenotypePHENOTYPE_PRESENT, PHENOTYPE_ABSENT
Drug - DiseaseINDICATION, OFF_LABEL_USE, CONTRAINDICATION
Drug - PhenotypeADVERSE_DRUG_REACTION
Drug - DrugSYNERGISTIC_INTERACTION
Drug - Protein (roles)TARGET, ENZYME, TRANSPORTER, CARRIER
Drug - Protein (actions)ACTIVATOR, AGONIST, ANTAGONIST, INHIBITOR, MODULATOR, SUBSTRATE, BLOCKER, INVERSE_AGONIST, PARTIAL_AGONIST, DEGRADER, and more

When multiple relations exist for the same entity pair, a priority system resolves to the most specific relation.

On this page