dismech · evidence model · design exploration

From evidence pointers
to experiment-grounded evidence

Is dismech's evidence model about evidence — or is it mostly guardrails against hallucination? A worked look at the pathograph of Familial Hypercholesterolemia, the best-evidenced mechanism in human biology.

cjmungall · 2026-07-30 · companion to docs/reports/fh-experiment-grounded-evidence-2026-07-30.md

The model today

An EvidenceItem is a validated pointer

evidence:
- reference: PMID:1301956      # real, resolvable
  supports: SUPPORT            # polarity
  evidence_source: HUMAN_CLINICAL
  snippet: "…mediates the uptake and
    lysosomal degradation of plasma LDL…"
  explanation: "curator prose"

The highlighted snippet must be an exact substring of the cited text — enforced by linkml-reference-validator.

  • What it does well: real ID + exact quote + validator = citation integrity. The reference exists and the text really appears in it.
  • The job it actually performs: "is this citation real, and does the quote exist?" — that is anti-fabrication, the project's core defense.
  • But two of the seven fields are the only ones carrying evidence semantics — and both are thin. →

The gap · 1

Only two fields carry evidence meaning — and both are coarse

supports

One value for any amount of support

A single case report and a 27,000-patient trial both collapse to one value:

supports: SUPPORT   # n=1 case report
supports: SUPPORT   # human knockout, 15-yr cohort
evidence_source

A coarse organism bucket

HUMAN_CLINICAL lumps every human observation together; IN_VITRO lumps a HeLa artifact with an iPSC organoid.

No record of what experiment ran, what was measured, what resulted, or how the claim was inferred.

The gap · 2 — seen in the FH file

A valid quote can still be evidence for the wrong arrow

Two FH head-nodes are both "supported" by the same GeneReviews sentence (PMID:24404629, 4× in the file):

"…pathogenic variants in APOB (variants that impair binding of LDL-C to the
 LDL receptor), LDLR, or PCSK9 (gain of function); or rarely… LDLRAP1."

# pasted onto:  APOB-LDLR Binding Defect  ·  PCSK9 Gain-of-Function
on-target for APOB

A real quote — and the parenthetical names the binding mechanism the APOB node claims. Fairly targeted there.

mis-targeted on PCSK9

But on the PCSK9 GoF → LDLR degradation edge it says nothing about degradation — a diagnostic-classification sentence standing in for the mechanism.

The clean, unambiguous example is the PCSK9 edge — the one this deck builds on.

The subject · FH pathograph

One convergent chain, four genetic entry points

LDLR defect APOB binding PCSK9 GoF LDLRAP1 ↓ hepatic LDL clearance ↑ circulating LDL-C atherosclerotic plaque premature ASCVD

We zoom into the PCSK9 → LDLR edge — where necessity, sufficiency, direct mechanism, and therapeutic rescue all converge.

The key realization

The experiment is already inside the snippet — just not structured

A real, already-validated snippet on the FH PCSK9 entry (DOI:10.1073/pnas.0409736102):

snippet: "Overexpression of PCSK9 in HepG2 cells caused a decrease in whole-cell
  and cell-surface LDLR levels. PCSK9 overexpression had no effect on LDLR
  synthesis but caused a dramatic increase in the degradation of the mature LDLR"
dimensioncarried in that one string
systemHepG2 cells (hepatocyte-like)
perturbationPCSK9 overexpression — a gain-of-function manipulation
readoutwhole-cell + surface LDLR; LDLR synthesis; LDLR degradation
resultLDLR ↓ · synthesis unchanged · degradation ↑
inferencePCSK9 acts post-translationallysufficiency, localized to degradation not synthesis

The model stores all of this as an opaque string with supports: SUPPORT. None of it is queryable.

The extension

Decompose the micropublication — keep the exact quote

evidence:
- reference: DOI:10.1073/pnas.0409736102
  supports: SUPPORT
  evidence_source: IN_VITRO
  snippet: "…"
  experiment:
    design: OVEREXPRESSION
    system:
      cell_type: {id: CL:0000182}  # hepatocyte
      background: HepG2 cell line
    perturbation:
      role: GAIN_OF_FUNCTION
      target_gene: {id: hgnc:20001}  # PCSK9
    readout:
      measured: LDLR protein; synthesis; degradation
    result:
      direction: DECREASED
      snippet: "…dramatic increase in the
        degradation of the mature LDLR"
    inference:
      role: SUFFICIENCY_GOF
      supports_edge: "PCSK9 Gain-of-Function#…"
  • The exact snippet now grounds a specific result — still validated as a substring.
  • A typed inference records how the edge is drawn from that result.
  • Strength is derived, not authored: read off design + inference.role — both constrained and snippet-anchored. No subjective certainty: HIGH to fabricate.
  • An OVEREXPRESSION design cannot license NECESSITY_LOF — the pair is mutually checkable.

Worked example · one edge, four experiments

Why FH is the gold standard: convergence, made explicit

experimentdesignsourceperturbationinference role
A · HepG2 overexpression in repoOVEREXPRESSIONIN_VITROGoFSUFFICIENCY_GOF
B · Pcsk9-null mouse KNOCKOUTMODEL_ORGANISMLoFNECESSITY_LOF
C · human nonsense carriers HUMAN_GENETIC_LOFHUMAN_CLINICALnatural LoFNECESSITY_LOF
D · evolocumab / FOURIER RANDOMIZED_TRIALHUMAN_CLINICALpharmacologic LoFTHERAPEUTIC_RESCUE

Four orthogonal method classes agreeing on one arrow. That agreement is the evidence a biologist actually believes.

canonical papers to fetch & snippet-validate before commit (Cohen-Hobbs NEJM 2006 · Abifadel Nat Genet 2003 · Sabatine NEJM 2017). Today the model records only causal_link_type: DIRECT + SUPPORT, four times over.

Why it's worth it

Questions the KB can suddenly answer

query

"Show every causal edge whose only evidence is CORRELATIVE." — a curation-quality worklist that is impossible today.

query

"Which edges have convergent necessity + sufficiency + human-genetic support?" — surface the well-anchored backbone.

query

"Where does a human phenotype rest on model-organism evidence alone?" — the translation-gap audit, structured.

The appraisal layer becomes computable precisely because strength is derived from typed, snippet-anchored structure — not from a curator's opinion field.

Fits what's already there

Two enums, closed and small — dismech house style

experiment.design

how it was shown

CORRELATIVE_OBSERVATION · OVEREXPRESSION · KNOCKDOWN · KNOCKOUT · HUMAN_GENETIC_LOF/GOF · RESCUE_COMPLEMENTATION · EPISTASIS · DIRECT_BIOCHEMICAL · RANDOMIZED_TRIAL · PHARMACOLOGIC_PERTURBATION

inference.role

what it licenses about the edge

CORRELATIVE · NECESSITY_LOF · SUFFICIENCY_GOF · RESCUE · EPISTASIS_ORDERING · DIRECT_PHYSICAL · THERAPEUTIC_RESCUE

  • causal_link_type stays — it is topology (steps). inference.role is epistemics (how well established). Orthogonal.
  • target_mechanisms already links drug → node; let that surface as confirmatory edge evidence (experiment D, no new plumbing).
  • association_signals.statistics is the existing structured-effect model — experiment.result generalizes it to any item.

Design boundaries

Bespoke enum, not ECO. SEPIO at the export layer.

Not ECO

ECO types the assay behind an annotation of an entity to a term — its GO heritage. dismech's unit is a supported assertion in a causal graph; the axis it needs is the inferential role of the experiment for that edge, which ECO doesn't model.

SEPIO — the right shape, later

assertion ↔ evidence-line ↔ evidence-item ↔ provenance is the correct ontology-backed shape (and Monarch-lineage) — but heavy for a curation surface. Treat it as an export target, as BioLink already is; keep the closed enums as the thing curators touch.

Guardrails preserved: exact snippets stay mandatory · strength is derived not authored · the causal-inference vocabulary is claim-type-local to pathophysiology edges.

Where this goes

Next steps

  • 1 · Float it on the design register. Open an issue for experiment.design + inference.role before any schema change.
  • 2 · Prototype on the FH PCSK9 sub-graph only — fetch & validate the experiment B–D references first (Pcsk9-null mouse, Abifadel, Cohen-Hobbs, FOURIER; experiment A is already in the repo).
  • 3 · Independent current-schema fix: re-point the mis-targeted PCSK9 GeneReviews snippet to a real degradation-mechanism paper — valuable regardless of the extension.

The additions aren't more citations — the node counts are fine. They're the necessity / sufficiency / human-knockout / therapeutic-rescue structure that actually establishes each edge, made typed and queryable.

Full write-up: docs/reports/fh-experiment-grounded-evidence-2026-07-30.md

evidence pointers → experiment-grounded evidence · dismech 01 / 12
↑ ↓ / space to navigate