Pipeline Overview
| Stages requested |
{{ stages_requested | join(", ") if stages_requested else "none" }} |
| Stages completed |
{{ stages_completed | join(", ") if stages_completed else "none" }} |
{% if methods %}
{% for key, value in methods.items() %}
{% if value is not none %}
| {{ key }} |
{{ value }} |
{% endif %}
{% endfor %}
{% endif %}
{% if stage_status %}
| Stage |
Status |
{% for name, status in stage_status.items() %}
| {{ name }} |
{% if status == "completed" %}
{{ status }}
{% elif status.startswith("failed") %}
{{ status }}
{% else %}
{{ status }}
{% endif %}
|
{% endfor %}
{% endif %}
{% if warnings %}
Warnings
{{ warnings | length }} warning(s) collected during pipeline run
{% for w in warnings %}
- {{ w }}
{% endfor %}
{% endif %}
{% if dissolution is not none %}
Dissolution Similarity (f1 / f2)
| Reference |
{{ dissolution.reference_label }} |
| Test |
{{ dissolution.test_label }} |
| Timepoints |
{{ dissolution.n_timepoints }} |
| f1 (difference) |
{{ "%.4g"|format(dissolution.f1_value) }} |
| f2 (similarity) |
{{ "%.4g"|format(dissolution.f2_value) }}
{% if dissolution.f2_value >= 50 %}
f2 >= 50
{% else %}
f2 < 50
{% endif %}
|
{% if dissolution.f2_value >= 50 %}
f2 >= 50 supports similarity between the reference and test profiles (FDA 1997 guidance threshold).
{% else %}
f2 < 50 does not support similarity between the reference and test profiles.
{% endif %}
{% if dissolution.time_points %}
| Time |
Reference mean |
Test mean |
{% for t, rm, tm in zip(dissolution.time_points, dissolution.reference_mean, dissolution.test_mean) %}
| {{ t }} |
{{ "%.4g"|format(rm) }} |
{{ "%.4g"|format(tm) }} |
{% endfor %}
{% endif %}
{% endif %}
{% if nca is not none %}
Non-Compartmental Analysis
| AUC method |
{{ nca.auc_method }} |
| BLQ method |
{{ nca.blq_method }} |
| Subjects |
{{ nca.results | length }} |
| Subject |
AUClast |
AUCinf_obs |
Cmax |
Tmax |
half_life |
CL / CL_F |
Vz / Vz_F |
{% for row in nca_rows %}
| {{ row.subject }} |
{{ fmt(row.AUClast) }} |
{{ fmt(row.AUCinf_obs) }} |
{{ fmt(row.Cmax) }} |
{{ fmt(row.Tmax) }} |
{{ fmt(row.half_life) }} |
{{ fmt(row.cl) }} |
{{ fmt(row.vz) }} |
{% endfor %}
{% endif %}
{% if be is not none %}
Bioequivalence (Paired TOST)
| Parameter |
{{ be.parameter }} |
| Subjects (n) |
{{ be.n }} |
| GMR (T/R) |
{{ "%.4f"|format(be.gmr) }} |
| 90% CI |
[{{ "%.4f"|format(be.gmr_lower_90ci) }}, {{ "%.4f"|format(be.gmr_upper_90ci) }}] |
| Limits |
[{{ "%.2f"|format(be.be_lower) }}, {{ "%.2f"|format(be.be_upper) }}] |
| CV intra (%) |
{{ "%.1f"|format(be.cv_intra_pct) }} |
| Conclusion |
{% if be.bioequivalent %}
BIOEQUIVALENT
{% else %}
NOT BIOEQUIVALENT
{% endif %}
|
Paired TOST screening inside OpenPKFlow. For formal regulator-facing BE analysis,
export to BioEqPy and run ANOVA/TOST with the full study design.
{% endif %}
Disclaimer
Regulatory Notice
{{ disclaimer }}