Skip to content

31 Slice Target Technology Identity

Pipeline Slice: Target / Mechanism / Technology Identity Spine

Section titled “Pipeline Slice: Target / Mechanism / Technology Identity Spine”

Status: SHARP. The deterministic source-to-query spine and optional default-off review-only missing-target task are implemented and fixture-replay verified. Real external-source smoke and paid semantic task evaluation remain activation gates, not modelling gaps. Denoising state: sharp (noise -> rough -> sharp -> converged) Updated: 2026-07-25

Own the shared identities and relations that answer:

  • what biological target does a drug act on;
  • how does it act on that target;
  • what therapeutic modality describes the drug;
  • which payload component belongs to a drug.

This spine does not own drug identity (29), disease/biomarker identity (30), or publication facts (23). It references their stable keys and never mints replacements.

flowchart LR
  Demand["accepted drug identity claims"]
  HGNC["HGNC complete catalog"]
  ChEML["ChEMBL molecule / mechanism / target"]
  Catalog["versioned technology + payload catalog"]
  Raw["immutable source artifacts + active pointers"]
  Norm["normalized source rows"]
  Evidence["typed evidence claims"]
  Resolve["deterministic candidates"]
  Canon["canonical target / relation / modality / payload"]
  Query["8 q_* views"]
  Publications["captured publication evidence"]
  Suggest["optional LLM candidate task"]
  Review["review queue"]

  Demand --> ChEML
  HGNC --> Raw
  ChEML --> Raw
  Catalog --> Raw
  Raw --> Norm --> Evidence --> Resolve --> Canon --> Query
  Publications --> Suggest --> Review
  Suggest -. "never automatic" .-> Canon

The solid path is deterministic and free. The dashed path creates review candidates only and is not upstream of canonical or query assets.

SourceAccess and roleCaptured grain
HGNC complete datasetFree official authority for approved human gene symbols, names, aliases, and cross-references. The complete JSON is captured as one versioned artifact.one complete-catalog artifact; one row per HGNC record
ChEMBL REST APIFree molecule, mechanism, and target records. Exact molecule lookup drives the mechanism demand generated from accepted drugs.one artifact per normalized drug lookup; one row per mechanism
Checked-in technology catalogProject-owned, reviewed modality hierarchy and exact source-label mappings. It is versioned content, not an external claim.one catalog artifact; one row per technology/mapping
Checked-in payload catalogProject-owned payload identities and explicit drug-payload assignments with reference URLs.one catalog artifact; one row per payload/assignment

The current implementation does not claim UniProt, GO, or NCIt as separately ingested authorities. ChEMBL target components may carry UniProt accessions; HGNC is the deterministic human gene grounding authority.

target_authority_source owns the fixture/live choice. Assets never branch on environment flags.

fixture mode
-> read checked-in HGNC, ChEMBL, and catalog artifacts
live mode
-> fetch the HGNC complete catalog
-> discover all pending accepted drug names
-> call ChEMBL for the selected drug lookups
-> read the same checked-in modality/payload catalog

max_live_records is only a live-call safety bound:

  • unset: process every pending live drug lookup;
  • positive integer: process only that many live lookups for a smoke run;
  • fixture mode: ignored;
  • zero or negative: rejected.

The full pending demand is computed before the bound, so metadata reports both observed and captured request counts.

  • Raw artifacts are append-only and content-addressed.
  • active_capture_artifacts selects the current artifact per (artifact_kind, scope_key).
  • missing_only and bounded live captures merge new scopes into the active set.
  • A fixture capture or complete unbounded refresh_all capture may replace the active set.
  • Downstream assets read active artifacts only, so historical source rows cannot reappear as current claims.
  • Replaying identical bytes is idempotent.

This separates immutable history from current source selection without deleting either.

ConceptCanonical tableGrain
Targetcanonical.targetone HGNC-grounded target
Target aliascanonical.target_aliasone alias for one target
Target external idcanonical.target_external_idone authority id for one target
Drug-target actioncanonical.drug_target_actionone drug x target x action x mutation qualifier
Technologycanonical.technologyone modality/platform/format concept
Technology aliascanonical.technology_aliasone alias for one technology
Technology hierarchycanonical.technology_hierarchyone ancestor x descendant path
Drug technologycanonical.drug_technologyone drug x technology assignment
Payloadcanonical.payloadone payload component
Payload aliascanonical.payload_aliasone alias for one payload
Drug payloadcanonical.drug_payloadone drug x payload assignment

There is deliberately no payload_target fact. Payload target meaning is contextual and can be derived through accepted drug-payload plus drug-target relations when justified; this spine does not invent a direct biological action for a payload.

One ChEMBL target is accepted only when its target component maps to exactly one active HGNC record. Missing or ambiguous grounding is quarantined/reviewed. A target and a biomarker may share a biological name but remain different contextual roles.

A relation is accepted only when:

  1. the drug resolves exactly to the drug spine;
  2. the target resolves to one accepted HGNC target;
  3. the source action maps to the controlled action vocabulary.

The source action label, mechanism prose, binding site, and mutation qualifier are retained. Fuzzy matches never auto-link.

Technology and payload identities come from the versioned project catalog. Assignments require an exact accepted drug plus an exact catalog mapping. Hierarchy self-loops are forbidden.

Deterministic authority data is the publication path. The optional task exists for edge cases where:

  • a drug is already canonical;
  • it has no accepted deterministic drug-target action;
  • captured publication evidence links exactly to that drug.

resolution.target_suggestion_inputs builds one current input per eligible drug with at most five captured publication documents. The LLM task uses direct structured output and must return:

  • an explicit asset-identity status;
  • exact identity quotes from named source artifacts, with the matched identity equal to one supplied canonical name or alias;
  • direct drug-target candidates only;
  • an exact supporting quote for every candidate.

Deterministic validation checks the schema, gate conditions, artifact ids, and literal quote containment. It does not prove biomedical truth. Every valid output therefore remains needs_review; candidates are appended to resolution.target_suggestions and resolution.review_queue. No suggestion is read by canonical assets.

resolution.target_candidate_suggestions is independently spend-gated: enabled=false by default, max_inputs is constrained to 1..1000 and defaults to one under a retry-inclusive $2 ceiling; resolved_drug_keys can name the exact edge-case cohort. The llm concurrency pool protects the provider across runs. Direct asset selection without explicit enabling returns before reading inputs or constructing the runtime.

Active task missing_target_candidate_suggestion@v4 requires declared-artifact citations, binds each identity match to both its exact quote and the input’s known-name set, requires verbatim target names, and explicitly excludes biomarkers, pathways, synthetic dependencies, uptake transporters, metabolizing enzymes, diseases, endpoints, platform labels, and regimen components unless the evidence states a direct drug-target action. Every valid result remains review-only. Multi-model consensus and repeated sampling are deferred until provider-backed evaluations show that they improve review yield enough to justify their cost. Those paid evaluations have not yet run.

ModelGrain
q_targetsone canonical target
q_target_aliasesone target alias
q_drug_target_actionsone accepted drug-target-action relation
q_technologiesone technology concept
q_technology_hierarchyone hierarchy path
q_drug_technologiesone drug-technology assignment
q_payloadsone payload component
q_drug_payloadsone drug-payload assignment

The target spine is the sole owner of q_drug_target_actions. The drug spine does not publish a transitional duplicate.

Stable keys are:

target:<slug>
technology:<slug>
payload:<slug>
drug:<slug> # referenced from owner 29

Every view has a checked-in schema contract, blocking schema/provenance checks, database comments, and a stable provenance row key.

  • target symbol/name maps to one HGNC-grounded identity;
  • target and biomarker roles do not collapse;
  • accepted relations reference existing canonical drugs and targets;
  • source action and normalized action are both retained;
  • mutation qualifiers remain part of relation identity;
  • technology hierarchy has no self-loop;
  • all query rows satisfy schema and provenance coverage;
  • fixture and bounded-live tests use the same resource interface;
  • replay keeps active row counts stable;
  • a bounded missing_only capture cannot erase previously selected scopes;
  • optional suggestions remain review state and have no canonical dependency.

Automated tests cover fixture/live resource behavior with mocked HTTP, the live-call bound, active-cache merge semantics, resolution guards, contracts, LLM citation gates, and Dagster asset ownership. A local Postgres replay materializes the complete fixture vertical twice and validates all eight query schemas and provenance gates.

The remaining operator gate is a bounded live HGNC/ChEMBL capture against the external services. It must be run explicitly because definition loading and the default test suite make no network or paid-model calls.

Legacy Data Gov established that targets, actions, technologies, and payloads are important product concepts. The greenfield design intentionally rejects its implementation accidents:

Legacy tendencyProduct intentGreenfield correction
target fields mixed with drug forms and inferred enrichmentsexplain a direct biological actionseparate target identity from the drug-target relation
manually accumulated target rowsretain useful hard-won coverageuse HGNC/ChEMBL as current authority and review unsupported gaps
payload-target shortcutsnavigate ADC composition and mechanismmodel drug-payload and drug-target grains separately
missing-target LLM output treated like enrichmentrecover difficult edge casessource-cited candidate only, always reviewed
global fixture/live branching in assetsdeterministic development plus real captureone configurable source resource with identical persistence