This chapter explains internal behavior that affects what users see.
samples: sample identity, filter state, report history.variants: SNV/indel events for DNA.cnvs: CNV events.transloc: translocation events.annotation: global class/text interpretations.reported_variants: immutable report-time variant snapshots.assay_specific_panels: panel gene coverage baseline.asp_configs: assay-specific behavior/filter/report config.insilico_genelists: user-selectable ISGL filters.Coyote3 does not only rely on current sample-local actions.
It queries historical annotation docs and picks latest matching class by identity and assay scope.
Identity match order:
HGVSp)HGVSc)CHR:POS:REF/ALT)Scope rule:
solid: assay + subpanel scoped class is preferred.annotation stores two doc types in one collection:
class present)text present)When you classify a variant, Coyote3 inserts class doc (and in some bulk flows also text doc).
When you remove class, class docs are removed by variant identity and assay scope rules.
Effective gene set is computed as:
Then:
tumwgs/wts: direct use of selected filter genesSo modifying ISGL/ad-hoc settings changes what variants remain visible.
Live sample behavior is mutable:
Reported history is immutable at report snapshot level:
reported_variants row keeps report-time tier and key linksA sample moves to done when report save updates report_num > 0 and pushes a report entry into samples.reports[].
Until that happens, the sample remains on live list.
Current sample page uses latest mutable data.
History/report pages use saved snapshot data.
So a variant can show one tier in a historical report and a newer tier in current live view.
coyote3 contains historical and newer records.
Older docs may miss newer scope fields (assay, subpanel), so compatibility rules can affect exact matching behavior.
If clinical traceability matters, always anchor decisions to saved report and report-linked history pages, not only current live sample rendering.