Interactive Dashboard¶
Version 0.3.0 ships an optional Streamlit dashboard for exploring saved pipeline outputs interactively. The dashboard reads from a results directory; it does not re-run the pipeline.
Installation¶
Streamlit is not a runtime dependency of the core package. Install
the optional [dashboard] extras:
pip install 'phenocluster[dashboard]'
This pulls in streamlit and watchdog. If the extras are not
installed, phenocluster dashboard exits cleanly with an actionable
install hint.
Launch¶
After running the pipeline once and saving results:
phenocluster dashboard ./results/
Options:
--port(default8501) - local port to bind.--host(default127.0.0.1) - host interface.--browser/--headless- whether to auto-open a browser.
Tabs¶
Overview¶
Run summary, pipeline configuration block, model-selection plot, and a glossary of recurring terms.
Phenotypes¶
Cluster sizes, Average Posterior Probability, relative entropy, and per-phenotype classification quality.
Outcomes¶
Per-phenotype odds ratios with confidence intervals. A slider filters to outcome-phenotype pairs whose FDR-adjusted p-value is below a chosen threshold.
Survival¶
Per-target Cox HRs and Kaplan-Meier curves embedded from the saved plotly HTML files.
Multistate¶
Saved multistate plots (pathway frequency, transition hazards, state
occupation uncertainty, state diagram) and a per-transition table of
hazard ratios when multistate_results.json is present.
Generalizability¶
Aggregate ARI / PSI summary, a per-cohort table (kind, label, sample size, log-likelihood, ARI, NMI, matched accuracy, mean PSI, max PSI), and a cohort-detail view with phenotype distribution, refit metrics, and a top-K drift table filtered by a PSI slider.
Drift explorer¶
Per-cohort drift table viewed in isolation, with a PSI threshold slider to focus on the most-shifted features.
Notes¶
The dashboard is intentionally read-only: it consumes the JSON and CSV artifacts written under the
results/directory. To re-run the analysis, usephenocluster run.The
phenocluster.dashboardPython subpackage is not re-exported at the top level; importing it does not pull Streamlit.