---
title: "Preview curation evaluation without saving"
method: POST
path: "/sessions/{session_id}/variants/{variant_idx}/mtdna-curation/preview"
tags: ["mtdna-curation"]
---

# Preview curation evaluation without saving

`POST /sessions/{session_id}/variants/{variant_idx}/mtdna-curation/preview`

## Request

- Base URL: `https://api.helena.bio` (the document declares no server; this is the origin it was published from)
- URL: `https://api.helena.bio/sessions/{session_id}/variants/{variant_idx}/mtdna-curation/preview`
- Auth: HTTP bearer

Pure-function preview. Does NOT write to DB. Does NOT emit audit.

Used by frontend for live UI feedback as the geneticist fills in the
curation form. Org boundary still enforced (session must belong to
user's org) to prevent reconnaissance.

## Path parameters

- `session_id` string, uuid, required
- `variant_idx` integer, required

## Request body

- MtdnaCurationFields: 13 mtDNA curation data fields. All optional -- used both as PATCH body (partial update; only provided fields are persisted) and as GET response payload (all fields surfaced with current stored values, None for unpopulated criteria). Field-level validators encode McCormick 2020 Table 1 strength tiers and non-negative count invariants. Server-side defense-in-depth: domain entity also re-validates in __post_init__ (single source of truth for invariants).
  - `mt_ps2_strength` string, nullable: PS2 (de novo) strength: VeryStrong/Strong/Moderate/Supporting
  - `mt_ps3_evidence` string, nullable: PS3 functional studies evidence (cybrid + ETC <20% + load >=60%)
  - `mt_ps4_proband_count` integer, nullable: PS4 unrelated proband count
  - `mt_ps4_haplogroup_diversity_count` integer, nullable: PS4 distinct top-level haplogroup count among probands
  - `mt_pm6_strength` string, nullable: PM6 (de novo without maternity confirmation) strength
  - `mt_pp1_maternal_member_count` integer, nullable: PP1 maternal family member count
  - `mt_pp1_homoplasmic_in_all` boolean, nullable: PP1 disqualifier: TRUE when variant is homoplasmic in all maternal members (segregation evidence cannot establish pathogenicity per ClinGen mtDNA VCEP v1.0.0; PP1 suppressed and Cat M7a audit fires).
  - `mt_pp1_heteroplasmy_correlation` boolean, nullable: PP1 heteroplasmy correlates with disease severity
  - `mt_pp4_etc_deficiency` string, nullable: PP4 ETC enzyme deficiency evidence (<20% activity)
  - `mt_bs2_strength` string, nullable: BS2 (heteroplasmy in healthy adult) strength: Strong or Supporting
  - `mt_bs3_evidence` string, nullable: BS3 functional studies evidence (no effect)
  - `mt_bs4_evidence` string, nullable: BS4 lack of segregation OR paternal segregation
  - `mt_bp5_evidence` string, nullable: BP5 mtDNA variant in nDNA-related disease case

## Response `200`

Successful Response

- CurationStateResponse: Evaluator output -- what curated criteria fired and why. Computed by the pure-function mmdwg_evaluator.evaluate_mmdwg_criteria. Fields mirror MmdwgEvaluationResult fields used by the frontend.
  - `has_curated_flags` object, required: 10 keys (ps2, ps3, ps4, pm6, pp1, pp4, bs2, bs3, bs4, bp5) -> bool. PP1 may be False even when populated if disqualifier (homoplasmic_in_all=TRUE) fires.
  - `strength_enums` object, required: 5 keys (ps2, pm6, bs2, ps4, pp1) -> derived strength string or None. ps4/pp1 strengths are inline-derived from counts.
  - `pp1_disqualified` boolean, required: TRUE when PP1 evidence populated AND homoplasmic_in_all=TRUE. Triggers Cat M7a audit message.
  - `curated_contributed` boolean, required: TRUE when at least one of the 10 has_curated flags is TRUE
  - `emitted_curated_criteria` string[], required: Ordered list of criterion codes (e.g. 'PS3_Supporting', 'PP1_Moderate') emitted by curated evidence. Tier-suffix convention: bare = ACMG default per Richards 2015; explicit suffix = strength differs from default OR McCormick downgrade (PS3, BS3 always _Supporting).

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/helena/apis/helix-insight-variant-analysis-service.md) · [All operations](https://skmtc.dev/helena/apis/helix-insight-variant-analysis-service/llms.txt) · [OpenAPI document](https://skmtc.dev/helena/apis/helix-insight-variant-analysis-service/revisions/fe51fd20cdf1?raw)
