Skip to content

feat: built-in DBA forward-simulation dialog #23

Description

@ahmadomira

Summary

Integrate a forward-simulation tool into the app for experiment design, as a DBA-only spike. Add a Simulator dialog launched from a menu/toolbar action, with parameter inputs (Ka, I0, I_dye_free, I_dye_bound, h0, d0) driving a live-updating PyQtGraph titration curve. Reuse the existing, tested forward model in core/models/equilibrium.py (dba_signal). Do not port the standalone applet's Tkinter UI or its duplicate forward_model.py math.

Source

Reported via the fitting-app feedback channel. (Supersedes the standalone Tkinter simulation applet.)

Acceptance criteria

  • A menu/toolbar action opens a DBA Simulator dialog.
  • Parameter controls drive a live PyQtGraph curve computed via core/models dba_signal.
  • No duplicate forward-model math is introduced (core models reused).
  • Smoke test for dialog construction; uv run ruff check / format clean.

Scope & file boundaries

Package C (bundled with the "Save data template" unit; they share only main_window.py in one session). Touch:

  • new gui/dialogs/simulator_dialog.py
  • gui/main_window.py (launch action)
  • reuse core/models/equilibrium.py (read-only)

Must NOT modify plotting widgets, fitting_session.py, or the fit pipeline.

Parallelization

Package C — runs in parallel with packages A, B, D.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestparallel-batchPart of a parallel work-package batch

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions