The drug-interaction graph the world builds together.
OpenDrugGraph is a free, proof-carrying drug-interaction database. Every interaction shows its evidence — the exact FDA-label sentence and the mechanism path — and it abstains out loud rather than ever guess a pair is safe.
“Concomitant use of simvastatin with clarithromycin is contraindicated due to increased risk of myopathy, including rhabdomyolysis.”
simvastatin — substrate of → CYP3A4
How you can help
Breadth is a community + time problem — FOSS is how the map gets made.Fill in a drug pair, paste the label sentence, confirm the auto-drafted knowledge test. Two minutes, no PR.
Review proposed relationships — check the citation and the Given/When/Then test. Two confirmations promote it.
87 of the most-prescribed drugs still need interactions. Pick one and give it a proof.
What makes OpenDrugGraph different
Not another pairwise table — a proof-carrying, community-tested graph.Every relationship must cite its source and abstains when it doesn’t know. No fabricated “safe.” Ever — verified 0 fabrications.
We store drug→enzyme mechanism links and derive interactions a flat pair-table structurally can’t hold.
Each relationship ships a Given/When/Then test and promotes only by passing it — the knowledge itself is behaviorally tested.
Download it as Parquet, RDF, JSON-LD, FHIR, OWL — plus SHACL shapes so you can validate our never-launder claim yourself.
Download the ~1,500 active ingredients, the ~35k orderable products (RxNorm SCD/SBD), the corner-pharmacy shelf, or every cancer drug — anchored on RxNorm, the lists people actually want.
Simvastatin
Add an interaction
Easy as a form — but every relationship ships cited and knowledge-tested. No PR required.Search RxNorm or the FDA, pick the drug, and OpenDrugGraph extracts its interactions from the FDA label and pre-fills them — each cited. You just confirm. Nothing is asserted until you do.
Confirmed candidates enter as L1 proposals through the same never-launder gate + KBDD battery — the machine proposes, you ratify. (extraction runs off the live path)
when interactions are checked,
then return Critical with the cited proof + CYP3A4 mechanism —
and never report this pair as safe.
Wikidata makes a reference optional. We don't. Every OpenDrugGraph relationship must cite its source and pass a Given/When/Then knowledge test before it can become canonical — so “anyone can edit” never means “anyone can guess.”
Review queue
Promotion runs the KBDD ratification battery — shown per relationship. The battery is the approval.Recent changes
Every submission and status change, in the open — like a wiki, not a git log.Is the database getting better?
Every number traces to on-disk evidence — the developer-scientist discipline, shipped as a feature.≥98% of the most-prescribed drugs, cited
213 of the ClinCalc/MEPS Top-300 most-prescribed US drugs now carry at least one cited interaction. The remaining 87 are the community Wanted List. This is the breadth axis of the “provably better than FDB” gate — not catalog parity, but the interactions that matter.
Head-to-head vs FDB
Honest — where we lead, and where we’re still growing.- Per-edge FDA-label citation (they’re a black box)
- Mechanism-DAG + 3+-drug interactions they exclude
- Never-launder: abstains, never fabricates “safe”
- MIT / free / auditable — regenerates from tests
- Breadth: 71% → 98% of most-prescribed (community)
- Severity depth on UNKNOWN-graded pairs
- Validated recall vs ONSIDES / DrugBank (in progress)
Build the graph together
Breadth isn’t an impossible bar — it’s a community and time. FOSS is how the map got made.Most-prescribed drugs still missing interactions, ranked by prescription volume.
Download the whole graph
Cited, versioned, yours — MIT / FDA public-domain. Only Confirmed + grounded relationships export.v2026.07 · 2,410 relationships · 100% cited
Anchored on RxNorm (ingredient → SCD → SBD) — coverage is asserted against the maintained terminology, not a flat snapshot that drifts every approval cycle. For a lot of people, these lists are the download. Browse online, or download.
Every distinct active ingredient in active US use — the ingredient anchor the whole graph hangs from.
Ingredient + strength + dose form (e.g. “lisinopril 10 mg oral tablet”) — the level a pharmacy orders, and where dosing + interaction logic attach.
The line items a typical retail pharmacy actually keeps on the shelf — the practical working set.
The full antineoplastic catalog (RxClass) — chemo, targeted, immuno, hormonal — a first-class curated list.
Columnar bulk data — pandas · Polars · DuckDB. Our native format.
FHIR-RDF semantic graph, SPARQL-ready. Every node cited.
JSON that’s also linked data — the friendliest bridge to RDF.
ClinicalUseDefinition R5 — drop straight into an EHR / CDS.
The flat pairwise table — drug · drug · severity · citation.
Query the graph in place — no download.
:simvastatin :interactsWith ?b }
The vocabulary — classes (Drug, Enzyme, Interaction, Contraindication) and predicates (inhibits, substrate_of, contraindicated_with). Load it in your reasoner.
Validate never-launder yourself. The shapes enforce that every relationship carries a citation (SET_ID + LOINC + span). Run them over the graph — it passes; inject an uncited relationship — it fails. You don’t have to take our word for it.
Sign in or create an account
Browsing the graph is open to all. Sign in to download the data, propose interactions, and confirm others’ work — one account, either way.
Continuing with any provider creates your account if you’re new. Every change you make to the drug database is cited, logged, and reversible — you can’t launder an edit, and neither can we.
Your profile
Signed in via GitHubDr. A. Okafor
A small ladder — most people are the first two. The invariant below holds for all of them.
everyone
credential
curator
platform
org
Not a maintained table — a live reasoner over a proof-carrying graph.
Every OpenDrugGraph answer is computed by a neurosymbolic engine: a language model proposes, a symbolic gate disposes, and the result is either Proven with a full provenance trace, Heuristic (clearly labelled), or a loud abstention. The same engine — NuSy, open source — runs guideline CDS, terminology, and any domain where a wrong answer is unacceptable.
The engine, by mechanism
Each is real, open code — not a slogan.An LLM proposes; a symbolic gate decides. Every answer is Proven / Heuristic / Abstain, computed from a proof trace — never set. nusy-reasoner · Provability
No relationship enters the graph without a complete FDA-label citation + verified codes, or it’s flagged. nusy-drug-graph · emit::gate_edge
drug→enzyme/transporter links + forward-chaining derive interactions a pair-table can’t hold. nusy-forward-chain · reason.rs
The graph is columnar Arrow / Parquet — fast to query, trivial to export as RDF, SPARQL, FHIR. nusy-arrow-core · turtle.rs
Every relationship ships a Given/When/Then competency question and promotes only by passing it. nusy-kbdd
Every change — by anyone, any role — is cited, logged, and reversible into review. nusy-provenance-ledger
Every answer is a data structure you can inspect
The same proof the UI shows, over the API.OpenDrugGraph is one instance of a general engine.
The same proof-carrying, never-launder reasoning runs guideline CDS, clinical terminology, and any regulated-domain decision support. The reasoners are MIT-licensed and open — build on them, or have us build your domain.