{% include "_report_base.html" %} {% if plotly_library %} {% endif %}

Cohort Summary Report

Report Date: {{ report_date }}

{% if total_samples is defined and total_samples > 0 and kestrel_counts %}
Cohort Size
{{ total_samples }}
Total samples analyzed
Kestrel Positive
{{ kestrel_counts.positive + kestrel_counts.flagged }}
{{ "{:.1f}".format((kestrel_counts.positive + kestrel_counts.flagged) / total_samples * 100) }}% positive rate
High Precision Calls
{{ kestrel_counts.positive }}
Confidence grade Finding
adVNTR Genotyped
{{ advntr_counts.positive + advntr_counts.flagged + advntr_counts.negative }}
{{ advntr_counts.unestablished }} unestablished
{% if length_tier_kpi %}
{{ length_tier_kpi.label }}
{{ length_tier_kpi.high }}
{{ length_tier_kpi.detail }}
{% endif %}
{% endif %} {% if advntr_evidence_provenance %}

adVNTR artifact-evidence provenance

{% endif %} {% if decision_profile_groups %}

Decision profile groups

{% if pooled_decision_metrics_suppressed %}

Pooled decision-performance plots are suppressed across decision profile hashes.

{% endif %} {% for group in decision_profile_groups %}

{{ group.profile_id }} — revision {{ group.revision }}

Decision profile SHA-256: {{ group.sha256 }}

Samples: {{ group.samples | join(", ") }}

{% if pooled_decision_metrics_suppressed %}

Profile-specific Kestrel summary

{{ group.kestrel_plot | safe }}

Profile-specific adVNTR summary

{{ group.advntr_plot | safe }}
{% endif %}
{% endfor %} {% endif %}

Kestrel Results

{# The pre-rendered table carries the complete molecular-identity quartet; the template performs no inference or client-side completion. #} {% if kestrel_positive and kestrel_positive.strip() %}
{{ kestrel_positive | safe }}
{% else %}

No Kestrel variant calls were recorded across this cohort.

{% endif %} {% if not pooled_decision_metrics_suppressed %}

Kestrel Summary Plot

{{ kestrel_plot_interactive | safe }}
{% if kestrel_counts and total_samples %}

Kestrel Cohort Categorisation

Sample-level verdict distribution across {{ total_samples }} samples

Positive {{ kestrel_counts.positive }} ({{ "{:.1f}".format(kestrel_counts.positive / total_samples * 100) }}%) High precision pathogenic variant
Positive (Flagged) {{ kestrel_counts.flagged }} ({{ "{:.1f}".format(kestrel_counts.flagged / total_samples * 100) }}%) Candidate with quality flag
Negative {{ kestrel_counts.negative }} ({{ "{:.1f}".format(kestrel_counts.negative / total_samples * 100) }}%) No pathogenic candidate
Unestablished {{ kestrel_counts.unestablished }} ({{ "{:.1f}".format(kestrel_counts.unestablished / total_samples * 100) }}%) No result rows contributed
{% endif %}
{% endif %} {% if kestrel_missing %}

{{ kestrel_missing | length }} sample(s) contributed no Kestrel result rows and are counted as Unestablished: {{ kestrel_missing | join(", ") }}.

{% endif %}

adVNTR Results

{# The same server-rendered quartet contract applies here without JavaScript/network. #} {% if advntr_positive and advntr_positive.strip() %}
{{ advntr_positive | safe }}
{% else %}

No adVNTR variant calls were recorded across this cohort.

{% endif %} {% if not pooled_decision_metrics_suppressed %}

adVNTR Summary Plot

{{ advntr_plot_interactive | safe }}
{% if advntr_counts and total_samples %}

adVNTR Cohort Categorisation

Sample-level verdict distribution across {{ total_samples }} samples

Positive {{ advntr_counts.positive }} ({{ "{:.1f}".format(advntr_counts.positive / total_samples * 100) }}%) adVNTR called variant
Positive (Flagged) {{ advntr_counts.flagged }} ({{ "{:.1f}".format(advntr_counts.flagged / total_samples * 100) }}%) Candidate with quality flag
Negative {{ advntr_counts.negative }} ({{ "{:.1f}".format(advntr_counts.negative / total_samples * 100) }}%) No variant called
Unestablished {{ advntr_counts.unestablished }} ({{ "{:.1f}".format(advntr_counts.unestablished / total_samples * 100) }}%) adVNTR not run / no rows
{% endif %}
{% endif %} {% if advntr_missing %}

{{ advntr_missing | length }} sample(s) contributed no adVNTR result rows and are counted as Unestablished: {{ advntr_missing | join(", ") }}.

{% endif %} {% if nomenclature_legend %}

Reading key

How to read the coded values in the tables above

{% for entry in nomenclature_legend %}
{{ entry.term }}{% if entry.label %}{{ entry.label }}{% endif %}
{{ entry.meaning }}
{% endfor %}
{% if show_kestrel_bam_semantics %}

Kestrel output.bam contains resolved haplotype records, not sequencing reads. Its record counts are haplotype-record support; XD is minimum k-mer depth and does not weight votes or alter names or tiers.

{% endif %}
{% endif %} {% if additional_stats %}

Additional Statistics

{{ additional_stats | safe }}
{% endif %}

Call frequency

Grouped variant calls across the cohort, sorted ascending by frequency. Calls with frequency at or below the configured threshold are marked in the Below_Cutoff column; no calls are filtered.

{{ call_frequency_table | safe }}