just_dna_format.resolution¶
just_dna_format.resolution ¶
The source-independent resolution table (0.5).
resolution.csv is a persisted table of already-resolved variant facts (rsid ↔ coordinate) that the
compiler consumes instead of querying any reference — so the compiler owns no source convention
(Ensembl, DuckDB, provisioning) and stays strictly inject-only (CONSTITUTION Principle 2). The table
is filled before compilation by anything: an on-disk cache, a live query, or a human. Filling it is
the job of the separate just-dna-enricher network tier; the compiler only reads it.
Three parties share this one definition (why it lives in the schema tier, like manifest.FileEntry):
the compiler consumes it, the enricher produces it, and a verify-only client may re-check it. It
is dependency-light — pydantic + the stdlib vocab leaf, no polars/duckdb/httpx.
A one-to-many rsid (one authored variant_key expanding to several loci) is encoded as several rows
sharing variant_key with distinct locus_index, so the compiler reproduces the expansion without
any source knowledge. The fact columns feed integrity.resolution_signature; the provenance columns
are deliberately excluded from it (a human-filled and an Ensembl-filled table with identical facts
must hash equal — see RESOLUTION_FACT_FIELDS).
ResolutionRow ¶
Bases: BaseModel
One resolved (or attempted) locus for an authored variant, keyed by the frozen variant_key.
Standalone (not an AuthoredModel/VariantRow subclass): a resolution fact is not an annotation
row and must not inherit VariantRow's annotation validators. It reuses the shared rsid grammar so
an rsid here obeys the same rule everywhere, and closes its namespace with extra="forbid" like
the authored models so a typo'd column in resolution.csv is caught, not silently dropped.