SACGF / SACGF/variantgrid

Deployment-wide default AD/DP/GQ thresholds per VCF source and panel

Open
#1,717 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
30
Forks
3
Avg merge
9h 28m
Merged PRs (30d)
42

Description

🤖 Written by Claude

Came out of planning the analysis grouping node (variantgrid_private#223, TSO 500 phase 7), where a node
covers several samples at once and each caller wants its own cutoffs — but the need is general and not
specific to that node.

### The gap

`SampleNode` carries `min_ad`, `min_dp`, `min_gq`, `max_pl` as fields on the node
(`analysis/models/nodes/sources/sample_node.py:24-27`), defaulting to 0. Every analysis starts from those
zeros, so a user who knows that a given caller needs `AD>=5` and another needs `AD>=20` has to remember
and re-enter it every time. Getting it wrong is silent — the node just returns more rows.

### What is wanted

A deployment-wide default set that a node picks up when it is created, which the user may then override
on the node — VG's usual shape (set a default, allow it to be changed) rather than a locked-down setting.

The defaults need at least two axes:

- **Caller / VCF source.** `VCFSourceSettings.source_regex` already exists and already matches on the
source string a VCF declares (phase 2 uses it for `sample_field_overrides`), so it is the natural
home for a caller-keyed default. DRAGEN small-variant and DRAGEN CNV want different `min_ad`.
- **Panel.** The same caller on a deep amplicon panel and on a broad capture panel does not want the
same depth cutoff. There is no obvious existing key for this, which is the part that makes this
bigger than adding four columns to `VCFSourceSettings`.

Worth resolving what "panel" is keyed on before building anything — enrichment kit, gene list, or
something on the VCF — since that decides whether this is a lookup with two axes or a small rules table.

The per-node values stay as they are today and remain the thing that actually runs; this only changes
what a newly created node starts from.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with analysis/models/nodes/sources/sample_node.py:24-27 and inspect VCFSourceSettings, including source_regex and its sample_field_overrides use. First resolve what identifies a panel, since the issue leaves that key undecided. Done means newly created nodes receive deployment-wide caller- and panel-specific thresholds while retaining per-node overrides and existing runtime behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.