
Product
Introducing Repository Access Permissions and Custom Roles
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.
chromasurr
Advanced tools
Surrogate modeling and Bayesian calibration of chromatographic processes using CADET and Gaussian Processes.
A lightweight Python library that couples the CADET process simulator with modern sensitivity analysis, Gaussian-process surrogates, and diagnostic tools.
chromasurr.metrics.extract)run_sensitivity_analysis() to rank parameters with Saltelli sampling and automatic metric extractionSurrogate class trains, prunes, and re-trains emulators in log-space; includes built-in sensitivity on the GP itselfBatchElution class provides a ready-to-use CADET process object with configurable parameters like cycle time and feed durationexamples/chromasurr_demo.py covering sensitivity analysis, calibration, and UQRun the demo in ≈ 60 seconds:
.. code-block:: bash
git clone https://github.com/talasunna/chromasurr.git && cd chromasurr
python3 -m venv .venv && source .venv/bin/activate pip install -r requirements.txt
python examples/chromasurr_demo.py
This runs a full workflow using a preconfigured BatchElution process and guides you through GP surrogate modeling, Sobol sensitivity analysis, and Bayesian calibration.
.. code-block:: bash
pip install git+https://github.com/talasunna/chromasurr.git
Note – CADET-Core must be installed or compiled on your system. See the CADET-Core Installation Guide <https://cadet.github.io/master/getting_started/installation_core.html>_ for details.
CADET-Process is automatically installed via pip when installing chromasurr.
.. code-block:: python
from chromasurr.surrogate import Surrogate from chromasurr.uq import perform_monte_carlo_uq, latin_hypercube_sampler from chromasurr.visualize import sobol_indices, summarize_results, uq_distribution from chromasurr.process.batch_elution import BatchElution
proc = BatchElution(cycle_time=600.0, feed_duration=50.0)
param_config = { "ax_disp": "flow_sheet.column.axial_dispersion", "porosity": "flow_sheet.column.total_porosity", } bounds = { "ax_disp": [1e-6, 1e-2], "porosity": [0.35, 0.95], } metrics = ["peak_width"]
surr = Surrogate(proc, param_config, bounds, metrics, n_train=128) surr.train()
surr.analyze_sensitivity(n_samples=1024) sobol_results = surr.sensitivity
surr.select_important_params(threshold=0.05) surr.retrain()
lhs_sampler = latin_hypercube_sampler(list(surr.bounds.values())) uq = perform_monte_carlo_uq(surrogate=surr, sample_input=lhs_sampler, metric=metrics[0], n_samples=1000)
uq_distribution(uq, metric="peak_width")
sobol_indices(sobol_results, metric=metrics[0])
summarize_results( surrogate=surr, metric=metrics[0], uq_result=uq, )
Option 1: Run Sensitivity Analysis First, Then Train Surrogate
Use run_sensitivity_analysis on the CADET model to rank parameters, then train a surrogate focusing on the important ones (based on the number of parameters you'd like to retain, or on a threshold you can decide).
Option 2: Train Surrogate First, Then Run Sensitivity Analysis
Fit a surrogate with Surrogate, then analyze it with analyze_sensitivity().
Both paths support uncertainty quantification and parameter calibration workflows.
All public functions include NumPy-style docstrings and Python 3.10+ type hints for autocompletion and static analysis.
Docs are hosted on GitHub Pages: https://talasunna.github.io/chromasurr/
.. code-block:: text
chromasurr/ │ init.py │ metrics.py ← KPI extractor │ sensitivity.py ← Saltelli driver + helpers │ surrogate.py ← Surrogate manager │ uq.py ← Uncertainty quantification tools │ error_analysis.py ← Error diagnostics ├── process/ │ └── batch_elution.py ← Configurable CADET Process class └── examples/ └── chromasurr_demo.py ← End-to-end demo script
docs/ tests/
Distributed under the MIT License – see LICENSE for details.
Made with ☕ by Tala Al-Sunna.
FAQs
Surrogate modeling and Bayesian calibration of chromatographic processes using CADET and Gaussian Processes.
The pypi package chromasurr receives a total of 45 weekly downloads. As such, chromasurr popularity was classified as not popular.
We found that chromasurr demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.

Product
Socket Firewall blocks malicious VS Code and Open VSX extensions before install, protecting developers from compromised editor marketplaces.