ChemEx is an open-source Python application used to analyze NMR chemical exchange data (such as CPMG, R1ρ, and CEST experiments). It extracts kinetic parameters (rates), thermodynamic parameters (populations), and structural information (chemical shifts) of sparsely populated excited states. Unlike tools relying on analytical equations, ChemEx integrates the evolution matrix of the spin system over the pulse sequence, allowing it to simulate virtually any kinetic model (e.g., 3-state exchange) or experiment type (e.g., D-CEST/COS-CEST) while accounting for experimental details like finite pulse width and off-resonance effects.
Key features include:
- Multi-step fits and joint analysis of datasets from different experiments.
- Error analysis and grid search.
- Deterministic fitting using bounded SciPy trust-region reflective least squares.
- Implementation via NumPy, SciPy, Matplotlib, Rich, and pydantic.