Skip to content

Closed-world coverage — RNAi obesity landscape

What this measures

Ogur was pointed at the RNAi obesity space and allowed to search public sources only — it never sees the deck. For each of the deck's 20 assets and 15 companies, we then ask one question: did Ogur independently surface a signal for it?

Think of this as a coverage ceiling — "does the evidence exist anywhere in what Ogur pulled in?" The deck is the answer key; this measures how much of a landscape an analyst already knows Ogur can reconstruct from the open record. (It is the best-case-scenario recall metric.) This deck has no deal axis — it tracks assets and companies only — so unlike the siRNA cardiometabolic run there is no deal recall to report.

Headline result

Recovered
Assets 18 / 20 90%
Companies 15 / 15 100%

In one line: Ogur reconstructs nine-tenths of the asset map and the entire company map of this landscape from public data alone. It reliably finds anything that has reached a trial, a regulatory filing, or a patent; the only two misses are a private stealth program and one asset whose development code appears in no source Ogur reads.

Recall trajectory (the recall-gated loop). Core-asset recall over five source-integration passes, earliest first — the fitness metric was the 14 core assets:

Pass Lever added Core assets Core companies
0 baseline 6/14 (43%) 7/11
1 Lens pacing (lens_min_interval_sec) 9/14 11/11
2 target-axis Lens + patent-# code-blank 10/14 11/11
3 miR-22 alias + microRNA code-blank 11/14 11/11
4 SEC code-fulltext axis 12/14 (85.7%) 11/11

On the full 20-row deck this is 18/20 (90%) assets · 15/15 (100%) companies; the 2 residual misses are both core.


⚠️ Key finding: sources map companies, not asset codes

The single most important thing to take from this run. Every company in the landscape is recovered (15/15) — including the two whose asset is missed — yet 2 of 20 assets don't bind, and the reason is structural, not a tuning problem: a molecule's clinical development code (CCT-217, OLX702C) appears in no public document Ogur ingested. Canary Cure the company and OliX the company are both covered; their specific assets are not.

A patent or a filing names the company (assignee / filer) and the target biology (INHBE, ACVR1C, ANGPTL3…); it does not always carry the code an analyst uses to identify a specific asset. The two layers answer different questions:

  • Patents (Lens/gpatents)who is in the field and what targets — near-complete coverage of the players.
  • Trial registries (CT.gov, China CDE) + filings (SEC, HKEX) → which specific asset — these carry the code.

This is exactly why the loop's four winning levers were all about getting the code to bind: blanking WO/US/CN patent numbers so a patent binds on company+target, and a SEC code-fulltext pass that proves a code like BF-114 is in the filing body. Where no source carries the code (CCT-217, OLX702C), the asset stays unbound even though its company is found. Use patents as a company / landscape map; use registries and filings for asset identity.


Where Ogur is strong — and where it isn't

  • Companies — complete (15/15). Every player in the deck carries a public footprint — a patent assignee, a trial sponsor, or a filer — usually across several sources. This is the clean part of the picture.
  • Clinical-stage, US-public, and China-patent-stage assets — reliably found. The US front-runners (Arrowhead ARO-INHBE/ARO-ALK7, Wave WVE-007) are richly covered by SEC + CT.gov; the China INHBE cluster (Alnylam, Argo, SiranBio, Amgen FAM13A, Resalis miR-22) is carried by Lens patents. This is the bulk of the recovered 18.
  • The gap is the code-only / stealth tail. The two misses are a private US biotech with no public footprint of its asset (Canary Cure / CCT-217) and a Korean asset whose code lives only in a DART filing / trade press Ogur doesn't ingest (OliX / OLX702C). No amount of source tuning binds a code that isn't disclosed anywhere Ogur reads.

The takeaway for landscape work: Ogur gives you the complete company map and the clinical-and-patent-stage asset picture with high confidence, and flags the frontier it can't yet see — rather than silently missing it.


What each source contributes

Coverage is not one engine — different sources recover different slices, and several recover an asset nothing else can:

Source Assets it recovers Recovers uniquely (only source)
Lens (patents) 10 6 — the China INHBE / FAM13A / miR-22 cluster (A12/A13/A16/A17/A18/A19)
ClinicalTrials.gov 7 1 — A01 (Sirnaomics, Cotsiranib)
SEC 6 1 — A10 (BullFrog BF-114, via the code-fulltext axis)
OpenAlex 4 0 (corroborates the US front-runners)
gpatents (BigQuery) 3 0 (Lens already carries these rows in the closed-world corpus)
CDE (China NMPA) 1 0 (A06 BaseCure, shared with OpenAlex)

The headline here: Lens (patents) is the asset workhorse — 10 of 18, 6 of them uniquely — because the China obesity-RNAi field is overwhelmingly patent-stage. SEC is load-bearing for the US public front-runners (Arrowhead A02 sec:25, Wave A04 sec:48) and uniquely binds BullFrog through the code-fulltext lever. (Note: this is the seeded closed-world corpus, where Lens leads; in the cold Explore run the broad gpatents-db concept corpus is the workhorse instead — see the explore report.)

Company discovery (beyond matched assets)

All 15 deck companies are covered. Beyond the deck, the loop's off-thesis scan flags ~19 on-thesis RNAi companies the deck missed (e.g. Visirna/VSA003 ANGPTL3, Pfizer, Lipigon, Eli Lilly, CSPC) — candidate deck additions, the closed-world analogue of the Explore run's honorable-mention tier. Full net-new list is in the loop's off_deck_findings output.


The remaining gap — where to look next

This deck has no deal axis, so the entire residual gap is 2 assets:

  • A07 — Canary Cure (CCT-217, ZNF423+CNR1) — private US biotech; the company is named in the corpus but the asset code appears in no source Ogur currently ingests — no trial, no regulatory filing, no patent names CCT-217. It is not absent from the public record: the deck's own primary source is a dated company announcement (19 Aug 2024), and the deck notes independent coverage followed (bioRxiv Dec 2024, BioWorld Jan 2025). Recovery path: a company-IR / trade-press channel. Recoverable source-coverage gap, not a ceiling of public data.
  • A15 — OliX (OLX702C, APOC3) — OliX the company is covered (patents + filings), but the asset code OLX702C is disclosed only on the Korean DART registry and trade press, neither an Ogur source. Recovery path: a Korean-registry (DART/MFDS) source that carries the code with its target.

This is the actionable read: both remaining misses are tunable source-coverage gaps, and neither is a limit of public data. Each was publicly disclosed before the snapshot — A07 by company announcement (with bioRxiv/BioWorld follow-on), A15 in trade press — through two channels the current source set does not read. Max reachable is therefore 20/20: a Korean-registry (DART/MFDS) source recovers A15, and an IR / trade-press channel recovers A07. This deck has not demonstrated a ceiling on what public sources can show; it has measured which channels are wired.


Bottom line

From public sources alone and with no sight of the deck, Ogur reconstructs 18 of 20 assets (90%) and 15 of 15 companies (100%) of the RNAi obesity landscape. The recovered set is everything with a real public footprint — trials, filings, patents — and the company map is complete. The two misses are honest and explainable, and both were publicly disclosed — one via a company announcement and later bioRxiv/BioWorld coverage, one in trade press — through channels this source set does not ingest. Coverage is carried by a spread of sources, with Lens patents doing the heavy lifting on the China patent-stage cluster, SEC anchoring the US front-runners and uniquely reaching BullFrog, and every deck company recovered. The clearest next gains are wiring the Korean drug registry and an IR / trade-press channel; on this deck those two would take coverage to 20/20, so nothing here measures a ceiling on public data.


Appendix — methodology & technical notes

For the technical reader. None of this changes the headline numbers above.

What "coverage ceiling" means precisely

We seed the landscape from public sources into a copy DB, then for each deck row ask whether any ingested signal matches it (via a fixed matcher, scripts/utils/sirna_match.py, reused byte-identically by scripts/eval/obesity_coverage.py). The deck and matcher are held constant across passes; only the corpus changes, so every recall delta is attributable to one source/lever. This is the best-case "does the evidence exist" question — separate from the cold open-world discovery test (the Explore report), which measures whether Ogur finds these entities unprompted and ranked (16/20 assets, 11/15 companies from a cold thesis).

The recall-gated loop — what each lever unlocked (all opt-in → zero cross-deck regression)

  • P1 — Lens pacing: the free Lens trial tier (10 req/min) 429-stormed the ~30-query sweep at the default 200 ms cadence, dropping the whole patent layer. A per-landscape lens_min_interval_sec (obesity = 7 s) fixed it → +509 patents → recovered A12/A13/A14 (undisclosed INHBE: Alnylam / Argo / SiranBio) via the applicant axis.
  • P2 — target-axis + code-blank: a per-target full-text Lens pass retrieves patent-stage rows; blanking WO/US/CN/EP/JP/KR patent numbers binds them via the two-factor company+target backstop. → A19 (Amgen FAM13A).
  • P3 — miR-22: normalize the deck target to the hyphenated miR-22 patents actually write (not HGNC MIR22) + blank codes for microRNA-target rows. → A16 (Resalis).
  • P4 — SEC code-fulltext: the SEC source ingests filing metadata, not body; BullFrog's BF-114 lives only in the body. A phrase-quoted EFTS full-text pass over asset codes proves the code is in the filing and stamps it onto the signal. → A10 (BullFrog).

Integrity — anti-gaming

All 12 core binds were evidence-verified; zero phantoms. The two-factor matcher did real work: 477 SPTBN1 patents exist but 0 from BullFrog, and it correctly refused that code-only collision rather than gaming A10. Every lever is opt-in / default-preserving, so the prior siRNA-cardio deck is byte-for-byte unaffected. Live ogur.db was byte-identical throughout; all work on copy DBs, branch-per-pass.

Cross-check: the broad Explore corpus does not lift closed-world (2026-07-09)

Re-scoring with the broad, deck-agnostic gpatents-db concept corpus built for the Explore path (obesity_concept_gpatents_v2.jsonl, +8,185 signals) added on top of the Pass-5 DB leaves core recall unchanged at 12/14 (companies 11/11). The same corpus that lifted the Explore path 55% → 80% adds nothing here: closed-world was already at its reachable ceiling via the seeded Lens/SEC/miR-22 levers, and the 2 residual misses are code/stealth-level, not volume-of-patents-level. The broad concept corpus is an Explore lever, not a closed-world one.

Per-asset × source matrix (the 18 recovered)

Asset Code Company Tier Sources (signal count)
A01 Cotsiranib Sirnaomics questionable clinicaltrials:1
A02 ARO-INHBE Arrowhead core sec:25, clinicaltrials:3, openalex:1
A03 ARO-ALK7 Arrowhead core sec:19, clinicaltrials:2, openalex:1
A04 WVE-007 Wave Life Sciences core sec:48, clinicaltrials:1, openalex:1
A05 ALN-4324 Alnylam metabolic-adjacent sec:5, clinicaltrials:4
A06 BC-006 BaseCure core openalex:3, cde:1
A08 SiranBio core clinicaltrials:2, lens:1
A09 ALN-2232 Alnylam core clinicaltrials:3, sec:3
A10 BF-114 BullFrog AI core sec:8 (unique — code-fulltext)
A11 Shenzhen Salubris metabolic-adjacent lens:1, gpatents:1
A12 Alnylam (INHBE) core lens:8 (unique)
A13 Shanghai Argo core lens:2 (unique)
A14 SiranBio (INHBE) core lens:1, gpatents:1
A16 Resalis (miR-22) core lens:2 (unique)
A17 Alnylam (ANGPTL4) metabolic-adjacent lens:1 (unique)
A18 Hadasit (CD59) metabolic-adjacent lens:1 (unique)
A19 Amgen (FAM13A) core lens:9 (unique)
A20 Sirius (AGT) metabolic-adjacent gpatents:4, lens:2

Missed (2): A07 (Canary Cure, CCT-217, core) · A15 (OliX, OLX702C, core).

Binding quality

Company coverage uses token-substring matching (looser than asset binding), which is why all 15 companies bind including the two whose asset misses. Asset binds are stricter (code, or two-factor company+target). The China patent-stage binds (Lens) are company+target with code-blanking — real, two-factor, not code-phantoms. The SEC front-runner binds (Arrowhead/Wave) are richly corroborated (sec:25–48). No text-ungrounded phantom code bind survives the matcher.

Data-hygiene fixes flagged during the runs (none alter the headline)

  • ClinicalTrials harvest bug — a malformed trial record (a KeyError 'name') could abort the entire CT.gov pull, zeroing the trial layer; flagged for a standalone defensive fix.
  • OpenTargets returns nothing / stale EFO IDs for some obesity disease codes (the API now returns null for the relevant IDs) — immaterial to the deck's preclinical assets, but flagged since it silently affects other landscapes.
  • Isolation verified — every pass and the 2026-07-09 cross-check ran on a copy DB; the production ogur.db was confirmed byte-identical before and after.
    export OGUR_LANDSCAPE_ID=obesity-rnai-001
    export OGUR_GAP_ASSETS_CSV=/abs/benchmark_ogur_vs_sleuth_obesity_v1_2026-06-25.csv
    export DATABASE_URL="sqlite:///$PWD/ogur_obesity_rerun.db"
    uv run --extra dev python scripts/eval/obesity_coverage.py   # → core X/14, GATE PASS|FAIL