← back to vcfclick

trio de-novo — live demo

De novo means "the child carries a variant neither parent has." But vcfclick's genotype table is sparse — a parent absent at a site is 0/0 (reference) or ./. (no-call), indistinguishable. Edit the trio below and watch the naive rule flag false de novos that --keep-reference correctly removes.

Naive ingest (sparse)

vcfclick db ingest fam1 trio.vcf.gz --cohort trio
vcfclick db ped  fam1 fam1.ped
vcfclick db trio fam1 --proband CHILD --category denovo

Defensible ingest (--keep-reference)

vcfclick db ingest fam1 trio.vcf.gz --cohort trio --keep-reference
vcfclick db ped  fam1 fam1.ped
vcfclick db trio fam1 --proband CHILD --category denovo

Trio VCF (proband CHILD, parents FATHER + MOTHER)

3

naive de-novo calls

sparse genotypes — can't tell 0/0 from ./.

1

--keep-reference de-novo calls

both parents proven 0/0

2

false positives removed

a parent was ./. , not a confident 0/0

siteCHILDFATHERMOTHERnaive--keep-referencewhy
chr1:1000/10/00/0de novode novoboth parents have a stored 0/0 — provable de novo
chr1:2000/1./.0/0de novo (false)—FATHER is ./. (no-call) — absence is not proof of 0/0
chr1:3000/10/10/0——
chr1:4000/10/0./.de novo (false)—MOTHER is ./. (no-call) — absence is not proof of 0/0

Why --keep-reference

The naive rule — "child carries, neither parent carries" — treats a parent's absence from the sparse genotype table as proof of 0/0. It isn't: an absent parent may simply be a no-call. Every amber ./. above is a parent vcfclick cannot vouch for, so the naive de novo at that site is unsupported.

--keep-reference additionally stores a parent's confident 0/0 at variant sites (no-calls are still dropped). De novo then requires a stored hom-reference for both parents — the inner join finds no row for a no-call parent, so that site is correctly excluded instead of falsely reported.

This is candidate filtering, not variant calling. See the trio docs and the combine demo →.