How conradhuebler/suprafit works
SupraFit is a Qt-based scientific fitting application for supramolecular titrations, ITC thermograms, kinetics, and custom models. The principal workflow is: a user opens or creates experiment data, the application loads a project, selects or defines a model, evaluates equilibria or equations, runs fitting/search and statistical jobs, then presents and saves results. The graph preserves documented spectroscopy, thermogram, flexible-reaction, scripted-model, ML-pipeline, and Python-interface capabilities. Some GUI and binding call paths are inferred only from names and documentation because their implementations were not sampled.
Components 24
User Interfaces
- Qt GUI
src/ui/main.cpp - CLI
src/client/suprafit_cli.cpp - Result Views
src/ui/widgets/results/resultswidget.cpp
Projects And Data
- Project Manager
src/core/projectmanager.cpp - File Handler
src/core/filehandler.cpp - Data Tables
src/core/models/dataclass.cpp - Spectra Import
src/core/spectrahandler.cpp - Thermogram Import
src/core/thermogramhandler.cpp - Project Files
Models And Solvers
- Scientific Models
src/core/models/models.cpp - Reaction Parser
src/core/reactionparser.cpp - Speciation Solver
src/core/speciationengine.cpp - Fit Optimizers
src/core/optimizer/eigen_levenberg.cpp - Scripted Models
src/core/models/scriptmodel.cpp - Scripting Engine
src/core/models/scriptingengine.h
Analysis Jobs
- Job Manager
src/capabilities/jobmanager.cpp - Search Methods
src/capabilities - Statistics
src/core/models/postprocess/statistic.cpp - Analysis Results
src/core/analysis_manager.cpp
Extensions
- ML Pipeline
src/client/ml_pipeline_manager.cpp - Python Interface
python/suprafit/__init__.py - Python Bridge
src/core/pythonbridge.cpp - ML Dataset
Other components
- Researcher
Connections 27
- Researcher → Qt GUI: opens experiments
- Researcher → CLI: runs analyses
- Qt GUI → Project Manager: manages projects
- CLI → Project Manager: loads projects
- Project Manager → File Handler: reads and writes
- File Handler → Project Files: serializes projects
- Project Manager → Data Tables: loads data
- Spectra Import → Data Tables: creates tables
- Thermogram Import → Data Tables: creates tables
- Qt GUI → Spectra Import: imports spectra
- Qt GUI → Thermogram Import: imports thermograms
- Data Tables → Scientific Models: supplies observations
- Scientific Models → Reaction Parser: parses reactions
- Scientific Models → Speciation Solver: solves equilibria
- Scientific Models → Fit Optimizers: fits parameters
- Scripted Models → Scripting Engine: evaluates equations
- Scripting Engine → Speciation Solver: calls equilibrium
- Scripting Engine → Scientific Models: returns predictions
- Job Manager → Search Methods: dispatches searches
- Job Manager → Statistics: dispatches statistics
- Job Manager → Analysis Results: stores results
- Analysis Results → Result Views: presents results
- Project Manager → Result Views: provides projects
- ML Pipeline → CLI: runs CLI jobs
- ML Pipeline → ML Dataset: writes datasets
- Python Interface → Python Bridge: uses bridge
- Python Bridge → Project Manager: loads data