Early preview · illustrative figures & sample data — not the live database yet.
3 edits this session
Open · MIT · FDA public-domain · never-launder

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.

2,410 cited relationships · 100% cited · 0 fabrications · 71% of the 300 most-prescribed drugs (→ 98% goal)
A real answer — it shows its work Canonical · L2
Clarithromycin ⇌ Simvastatin
Critical
DailyMed SET_ID a7f3b0c9 · LOINC 34073-7
“Concomitant use of simvastatin with clarithromycin is contraindicated due to increased risk of myopathy, including rhabdomyolysis.”
clarithromycin ⊣ inhibits CYP3A4
simvastatin — substrate of → CYP3A4
false_proofs0

How you can help

Breadth is a community + time problem — FOSS is how the map gets made.
1 · Add a cited interaction

Fill in a drug pair, paste the label sentence, confirm the auto-drafted knowledge test. Two minutes, no PR.

2 · Confirm others’ work

Review proposed relationships — check the citation and the Given/When/Then test. Two confirmations promote it.

3 · Close the Wanted List

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.
Never-launder

Every relationship must cite its source and abstains when it doesn’t know. No fabricated “safe.” Ever — verified 0 fabrications.

Mechanism-DAG + 3+-drug

We store drug→enzyme mechanism links and derive interactions a flat pair-table structurally can’t hold.

Knowledge-tested (KBDD)

Each relationship ships a Given/When/Then test and promotes only by passing it — the knowledge itself is behaviorally tested.

Open formats + verify-yourself

Download it as Parquet, RDF, JSON-LD, FHIR, OWL — plus SHACL shapes so you can validate our never-launder claim yourself.

Reference catalogs

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

RxCUI 36567 ·HMG-CoA reductase inhibitor (statin) ·14 interactions 7 critical
CYP3A4 enzyme hub Clarithromycin Itraconazole Amiodarone Verapamil Digoxin Simvastatin
critical major proposed abstained

Add an interaction

Easy as a form — but every relationship ships cited and knowledge-tested. No PR required.
Drug not in OpenDrugGraph yet? No dead ends.
we pre-fill it

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.

Sotorasib — KRAS G12C inhibitor (oncology)RxNorm RxCUI 2374729 · not in graph yet
3 candidate interactions extracted from its FDA label — confirm to propose
Sotorasib ⇌ acid-reducing agents (PPIs)
DailyMed SPL · “avoid coadministration…reduced sotorasib exposure”
candidate
Sotorasib ⇌ strong CYP3A4 inducers
DailyMed SPL · “avoid…may decrease sotorasib efficacy”
candidate
Sotorasib ⇌ P-gp substrates (e.g. digoxin)
DailyMed SPL · “sotorasib is a P-gp inhibitor…increased substrate concentration”
candidate

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)

1
The two drugs
ClarithromycinRxCUI 21212 · verified ✓
SimvastatinRxCUI 36567 · verified ✓
2
Type & severity
3
Evidence * — the never-launder gate
Grounded. SET_ID resolves · both drugs normalize to RxCUI · CYP3A4 mechanism corroborated by RxClass. This relationship can be proposed.
4
Knowledge test (KBDD — auto-drafted, editable)
Given a patient taking clarithromycin + simvastatin,
when interactions are checked,
then return Critical with the cited proof + CYP3A4 mechanism —
and never report this pair as safe.
Adds to your changeset · reviewer ≠ author
Why the two gates

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.”

What happens next
now
Enters as Proposed (L1) — visible, dashed, in the graph
auto
KBDD battery runs: never-launder + your CQ must pass
community
2 of 3 reviewers (a verified clinician counts double) confirm
then
Promotes L1→L2 Canonical — no sign-off needed, the evidence ratifies

Review queue

Promotion runs the KBDD ratification battery — shown per relationship. The battery is the approval.
Verapamil ⇌ Simvastatin Under review
proposed by m_reyes · cited to DailyMed 34073-7 · 4h ago
Never-launder · cited + grounded CQ passes (with proof) Consensus 2 / 3
JDRP+1
Grapefruit ⇌ Atorvastatin Ready to promote
proposed by pharmd_lena · cited to FDA label + DOI · 1d ago
Never-launder · cited + grounded CQ passes (with proof) Consensus 3 / 3
JDRPAL
Lisinopril ⇌ Ibuprofen Blocked
proposed by newuser_88 · no citation attached · 20m ago
Never-launder · no source — cannot enter the graph

Recent changes

Every submission and status change, in the open — like a wiki, not a git log.
Site-wide feed
6 min ago
Grapefruit ⇌ Atorvastatin promoted L1 → L2 canonical (3/3 consensus)
22 min ago
pharmd_lena confirmed Verapamil ⇌ Simvastatin — CQ passed with proof
1 h ago
m_reyes proposed Verapamil ⇌ Simvastatin · cited DailyMed SET_ID
1 h ago
Lisinopril ⇌ Ibuprofen auto-blocked — no citation (never-launder)
3 h ago
a_okafor added a CYP2C9 mechanism fact to Warfarin · 12 relationships re-derived
Edge history — Clarithromycin ⇌ Simvastatin
2026-05-02
Promoted L2 canonical — 4/4 consensus, 2 verified clinicians
2026-05-01
Mechanism proof attached: clarithromycin ⊣ CYP3A4 ← simvastatin
2026-04-30
CQ authored + passed · severity graded Critical from label span
2026-04-29
a_okafor proposed · cited DailyMed 34073-7

Is the database getting better?

Every number traces to on-disk evidence — the developer-scientist discipline, shipped as a feature.
71%of Top-300
Coverage — the north star

≥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.

71% now · target 98% · +6 pts in 30 days
Never-launder
0
fabricated relationships — ever (live)
Fully cited
100%
every relationship shows its source
Precision vs gold
0.994
target ≥ 0.99 · CQ-pass 99.1%
Mechanism-derived
34%
depth FDB can’t represent
3+-drug findings
1,204
polypharmacy — no pair table holds these
Edges / week
+188
42 contributors · 9 verified

Head-to-head vs FDB

Honest — where we lead, and where we’re still growing.
We lead
  • 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
We’re growing
  • 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.
Top contributors — this month
1
a_okafor
verified pharmacist · 18 mechanism facts
4,120
2
pharmd_lena
verified clinician · 96 confirmations
3,540
3
m_reyes
contributor · 61 cited relationships
2,880
4
j_darrow
contributor · 44 cited relationships
1,910
Wanted list — closes the 98% gap
87 drugs left

Most-prescribed drugs still missing interactions, ranked by prescription volume.

#12
Empagliflozin
17.4M scripts/yr
#28
Apixaban
12.1M scripts/yr
#41
Semaglutide
9.8M scripts/yr
#55
Rivaroxaban
8.2M scripts/yr

Download the whole graph

Cited, versioned, yours — MIT / FDA public-domain. Only Confirmed + grounded relationships export.
Current release

v2026.07 · 2,410 relationships · 100% cited

pinned to RxNorm spine 2026-07 · regenerates from cargo test · Zenodo DOI 10.5281/zenodo.…
never-launder verified
Reference catalogs — the drugs people actually want

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.

Active ingredients~1,500

Every distinct active ingredient in active US use — the ingredient anchor the whole graph hangs from.

Orderable products RxNorm SCD/SBD~35,000

Ingredient + strength + dose form (e.g. “lisinopril 10 mg oral tablet”) — the level a pharmacy orders, and where dosing + interaction logic attach.

Corner-pharmacy stock~2,500

The line items a typical retail pharmacy actually keeps on the shelf — the practical working set.

Oncology — all cancer drugscomplete set

The full antineoplastic catalog (RxClass) — chemo, targeted, immuno, hormonal — a first-class curated list.

The interaction graph — pick your stack
Parquet2.1 MB

Columnar bulk data — pandas · Polars · DuckDB. Our native format.

RDF · Turtle4.8 MB

FHIR-RDF semantic graph, SPARQL-ready. Every node cited.

JSON-LD5.3 MB

JSON that’s also linked data — the friendliest bridge to RDF.

FHIR Bundle7.0 MB

ClinicalUseDefinition R5 — drop straight into an EHR / CDS.

CSV1.4 MB

The flat pairwise table — drug · drug · severity · citation.

SPARQLlive

Query the graph in place — no download.

SELECT ?b WHERE {
  :simvastatin :interactsWith ?b }
Schema & validation — check our work, don’t trust it
OWL ontology·owl / ·ttl

The vocabulary — classes (Drug, Enzyme, Interaction, Contraindication) and predicates (inhibits, substrate_of, contraindicated_with). Load it in your reasoner.

SHACL shapes your download passes

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.

OpenDrugGraph

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.

or

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 GitHub
AO

Dr. A. Okafor

@a_okafor · joined Apr 2026
Verified reviewer
Cited relationships added61
Mechanism facts18
Confirmations142
Reputation4,120
CredentialPharmD · verified 2026-05
Every edit you make to the graph is recorded in the public provenance ledger with your handle, the citation, and a timestamp — reversible into review, never silently applied.
Roles & what each can do

A small ladder — most people are the first two. The invariant below holds for all of them.

Regular user
everyone
Browse, search, download, and — signed in — propose relationships and comment.
Verified reviewer
credential
Confirmed clinician/pharmacist. Their confirmation carries ratification weight (counts toward promotion L1→L2).
Drug admin
curator
Curate the graph: merge duplicates, retire bad relationships, manage the vocabulary + the Wanted List, resolve disputes.
System admin
platform
Users, role grants, reviewer verification, releases, config — the bigger platform actions.
Repo owner
org
Repo-level controls and governance.
The invariant: no role — not even the repo owner — can change the drug database without it being cited, logged, and auditable. Power scales; accountability doesn’t bend.
Your recent contributions
2 days ago
Added CYP2C9 mechanism fact to Warfarin — 12 interactions re-derived · promoted L2
4 days ago
Confirmed Verapamil ⇌ Simvastatin — CQ passed with proof
6 days ago
Proposed Fluconazole ⇌ Warfarin · cited DailyMed 34073-7 · canonical
last week
Reviewed 9 pregnancy-contraindications in the drug-disease screen
How it works · powered by NuSy

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 request path — propose → dispose → prove
1 · LLM proposes
extracts candidate interactions from FDA labels — never trusted on its own
2 · Symbolic gate disposes
must cite + ground + compile, or it’s flagged · false_assert=0
3 · Reasoner proves
mechanism-DAG derivation over Arrow — the 2-hop path is the proof
4 · Proven · Heuristic · Abstain
every answer carries its status + provenance — the reasoner cannot lie

The engine, by mechanism

Each is real, open code — not a slogan.
Proof-carrying reasoning

An LLM proposes; a symbolic gate decides. Every answer is Proven / Heuristic / Abstain, computed from a proof trace — never set. nusy-reasoner · Provability

Never-launder gate

No relationship enters the graph without a complete FDA-label citation + verified codes, or it’s flagged. nusy-drug-graph · emit::gate_edge

Mechanism-DAG derivation

drug→enzyme/transporter links + forward-chaining derive interactions a pair-table can’t hold. nusy-forward-chain · reason.rs

Arrow-native store

The graph is columnar Arrow / Parquet — fast to query, trivial to export as RDF, SPARQL, FHIR. nusy-arrow-core · turtle.rs

Knowledge-tested (KBDD)

Every relationship ships a Given/When/Then competency question and promotes only by passing it. nusy-kbdd

Provenance ledger

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.
GET /api/edge/clari { "pair": "Clarithromycin ⇌ Simvastatin", "verdict": "Proven", "kind": "Mechanism (2-hop DAG) + cited label", "proof": { "premises": [ "clarithromycin CYP3A4", "simvastatin substrate_of CYP3A4" ] }, "citation": { "set_id": "a7f3b0c9", "loinc": "34073-7", "span": "…contraindicated…rhabdomyolysis." }, "false_proofs": 0 }
Powered by NuSy — the reasoning platform

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.