isotherm-fit
Automated fitting of moisture sorption isotherm models (GAB, BET, Peleg) to experimental water activity data, with objective model selection and food-stability assessment via the monolayer moisture content (m₀).
Problem
Moisture sorption isotherms — the relationship between equilibrium moisture content and water activity (a_w) — underpin drying process design, storage stability prediction, and shelf-life estimation in food science. Researchers typically measure a handful of (a_w, moisture) points with the saturated salt solution method and then fit models (GAB, BET, Oswin, Henderson, Peleg) by hand in spreadsheets or proprietary software — a slow, inconsistent process. isotherm-fit automates model fitting, objective model selection (AIC), and stability-relevant parameter extraction, producing a publication-ready report.
Installation
pip install isotherm-fit
Or from source:
git clone https://github.com/karenkhachatryan-lab/isotherm-fit.git
cd isotherm-fit
pip install -e ".[dev]"
Usage
Input CSV with columns aw, moisture (g water / 100 g dry solid or kg/kg), and optionally moisture_std:
aw,moisture,moisture_std
0.113,3.21,0.08
0.225,4.85,0.10
0.328,6.02,0.09
...
Fit models and generate a report:
isotherm-fit fit data.csv --output report
This produces:
report.pdf— isotherm plot with all fitted model curves, parameter/metrics table, stability zone, residuals plot for the best model,report.json— fitted parameters, metrics (R², RMSE, AIC), and m₀ for downstream use (e.g. drying simulations).
Print citation information:
isotherm-fit cite
Desktop GUI (optional)
pip install "isotherm-fit[gui]"
isotherm-fit gui
Opens a desktop window (CustomTkinter) to load a CSV, pick models, view the report plot and metrics live, and save the PDF/PNG/JSON outputs — no command-line arguments needed.
For users without Python, a prebuilt standalone Windows GUI is attached as a .zip to each GitHub Release — download, extract, and run isotherm-fit-gui.exe, no installation needed. To build it yourself instead, see packaging/build_exe.ps1 (PyInstaller) in docs/installation.md.
Project status
Early development (v0.2.0) — MVP scope: GAB, BET, Peleg models; CSV loader; AIC-based model selection; PDF/PNG + JSON report generation; CLI via Typer; optional CustomTkinter desktop GUI. See CHANGELOG once released.
Citing this software
If you use isotherm-fit in your research, please cite it — see CITATION.cff or run isotherm-fit cite for the formatted citation and BibTeX entry. DOI: 10.5281/zenodo.21710137.
License
MIT — see LICENSE.
Metadata
Release files for isotherm-fit 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| isotherm_fit-0.2.0.tar.gz | 23.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| isotherm_fit-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.8 kB
Release files / isotherm_fit-0.2.0.tar.gz
| Download URL | isotherm_fit-0.2.0.tar.gz |
|---|---|
| Size | 23.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2d1e195e52494470af4a5574f88b3b9f0317c34ff4e0c9fac3fcab66c08e1852
|
|
BLAKE2b-256 checksum How to use checksums |
2c7773d86c1342bc230fef02cc4090a2018727088658f587ab35fc8ae9626cbf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / isotherm_fit-0.2.0-py3-none-any.whl
| Download URL | isotherm_fit-0.2.0-py3-none-any.whl |
|---|---|
| Size | 16.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1fa0b8fbff43f31af107d16a76fc734e6a31566e817d1563ecfffe2378df56f1
|
|
BLAKE2b-256 checksum How to use checksums |
0f94f5f03223b3340d4268190d8d0d55fe50ff24bcef834c6fdde18a94d36490
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|