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
coreassets:
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 namesCCT-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 codeOLX702Cis 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-22patents actually write (not HGNCMIR22) + blank codes for microRNA-target rows. → A16 (Resalis). - P4 — SEC code-fulltext: the SEC source ingests filing metadata, not body; BullFrog's
BF-114lives 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.dbwas confirmed byte-identical before and after.