Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Concepts & Terms

This chapter defines the vocabulary you need to read the data. If you already know bioinformatics, skim the Data Model section.

Entity types & identifiers

  • Protein — a protein from UniProt/Swiss-Prot (the curated, reviewed set). Identified by a UniProt accession, a short alphanumeric code such as P38398. lmmol includes proteins from all organisms.
  • Trial — a study registered on ClinicalTrials.gov. Identified by its NCT id, e.g. NCT00001496.
  • Disease — a disease or condition, normalized to the Mondo disease ontology. Identified by a Mondo id written with an underscore, e.g. MONDO_0016419 (hereditary breast carcinoma). Normalizing to Mondo is what lets a protein's disease and a trial's condition meet at the same node.
  • Gene — a gene, identified by its gene symbol, e.g. BRCA1.
  • GO term — a Gene Ontology term describing a molecular function, biological process, or cellular component. Identified by a GO id, e.g. GO:0006281 (DNA repair).

Other terms you'll meet

  • Cross-reference (xref) — a link from one entity to another (protein → disease, trial → condition, gene → disease, …). The backbone of the graph.
  • Pathogenic / Likely pathogenic — clinical-significance labels from ClinVar that mark gene–disease associations supported by disease-causing variants. lmmol surfaces these as gene ↔ disease links.
  • Accession / NCT / Mondo id / GO id — the stable identifiers above. Stable ids are how you address and link records.

The data model

Everything is JSON. There are two layers:

1. Nodes — the entities themselves

A node lives at nodes/<type>/<id>.json and looks like this (abridged, real shape):

{
  "type": "protein",
  "id": "P38398",
  "name": "Breast cancer type 1 susceptibility protein",
  "search_text": "Breast cancer type 1 susceptibility protein  E3 ubiquitin-protein ligase ...",
  "synonyms": ["BRCA1", "RNF53", "..."],
  "native_xrefs": [ { "...": "..." } ],
  "outbound_source_links": [ "https://www.uniprot.org/uniprotkb/P38398" ],
  "attributes": { "organism": "9606", "...": "..." },
  "normalized": true,
  "edges": [
    { "relation": "protein_disease",
      "source": { "type": "protein", "id": "P38398" },
      "target": { "type": "disease", "id": "MONDO_0016419" } }
  ]
}

Key fields:

FieldMeaning
id, typethe identifier and entity type
namehuman-readable name / title
search_textthe text used for semantic matching (good for display/snippets too)
synonymsalternative names / symbols
native_xrefsreferences to the upstream source databases
outbound_source_linksURLs to the authoritative record(s)
attributestype-specific metadata (e.g. protein organism, trial phase)
edgesforward cross-references — see below

2. Edges — the cross-references

Each edge is directional and carries a relation:

{ "relation": "protein_disease",
  "source": { "type": "protein", "id": "P38398" },
  "target": { "type": "disease", "id": "MONDO_0016419" } }

Relations you will see include protein_disease, protein_has_gene, protein_annotated_with_go, protein_references_paper, trial_disease, and trial_references_paper. Edges stored on a node are its forward links. To go the other way (e.g. which proteins and trials point at this disease?), use the cross-reference indexes described in Browsing the Index — that is where the graph becomes fully navigable in both directions.

Disease nodes: canonical vs. raw

Most disease nodes are canonical ("normalized": true, a MONDO_* id). A few may be raw/unmapped terms when no Mondo mapping exists; those are flagged "normalized": false. Prefer canonical Mondo ids when you link or merge.