LysoSense provides a reproducible workflow for analyzing differential centrifugal sedimentation (DCS/CPS) traces collected along E. coli homogenisation campaigns. It parses instrument .dat exports, fits bi-peak Gaussian/lognormal models to quantify intact cells and inclusion bodies, and serves interactive overlays via Streamlit. The data-processing strategy is adapted from the method described in Klausser et al., 2025.
- Open the hosted app: lysosense.streamlit.app
- Upload one or more CPS
.datfiles, inspect overlays and component fits, and download the XLSX summary.
- Parse CPS/DCS
.datexports intoparticle_size_umvsmass_signal_ug - Constrained bi-peak fitting (intact cells vs inclusion bodies), with single-peak fallback
- Metrics: component areas, intact fraction, lysis efficiency, mean sizes
- Interactive Plotly overlays and downloadable results table
python -m venv .venv
.\.venv\Scripts\activate
python -m pip install -e .
set PYTHONPATH=src
streamlit run app\streamlit_app.py+- app/ # Streamlit entry point (uses Plotly for overlays)
+- data/ # Local CPS exports (ignored; keep private)
+- notebooks/ # Exploratory notebooks (e.g., cps_analyzer.ipynb)
+- src/lysosense/ # Installable package: io.py (parsing), analysis.py (fitting)
+- pyproject.toml # Dependency + metadata definition
+- AGENTS.md # Contributor notes
+- README.md # You are here
- Do not commit production datasets. The
data/directory is ignored by default. - Uploaded files in the web app are processed in-memory for analysis.
- Follow PEP 8 (4-space indents, snake_case). Type hints for public APIs.
- Add regression tests for new parsing/fitting logic when feasible.
- Keep PRs focused (parsing vs. analysis vs. UI) and include screenshots/GIFs for UI changes.
- Suggested validation steps:
streamlit run app\streamlit_app.pyand relevant unit tests.
If this tool supports your work, please cite:
- Klausser et al., 2025. “Increased purity and refolding yield of bacterial inclusion bodies by recursive high pressure homogenization” Link.
Questions or feedback? Open an issue or submit a pull request.