Skip to content

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.