Skip to content

MultimodalSRM 0.2.0

Latest

Choose a tag to compare

@ljchang ljchang released this 22 Sep 18:19
d066357

MultimodalSRM 0.2.0 standardizes skin-conductance modeling on BatemanSCR, adds automatic grouping to state-space filtering and smoothing, and adds an opt-in R-MSRM warm start for GP MAP.

Breaking change

  • BachSCR is removed (#32). It is no longer importable or accepted by R or GP fitting. GP archives containing Bach records fail before reconstruction with migration guidance, and no fitted parameters or archives are converted automatically. Reproduce Bach analyses in a 0.1.0 environment, or configure BatemanSCR and refit from the original observations. See migration guidance.

Added

  • BatemanSCR, a shared skin-conductance response for R and GP workflows with positive rise/decay time constants and lag (#17). See the SCR guide.
  • Grouped state-space filtering and smoothing: observations sharing an exact modality and native timestamp are updated as one node, for fixed (#31) and learned (#34) responses under strictly positive noise priors. Grouping is automatic inside linear_algebra="state_space", with no new argument and no binning of timestamps.
  • SearchConfig(r_init=True), an opt-in warm start that seeds the first GP MAP restart from a bounded R-MSRM fit (#18). It is off by default: its measured benefit is scale-dependent and did not transfer to a real recording.
  • A bayesian-cuda extra, and one-time warnings for an unused visible NVIDIA GPU and for an oversubscribed CPU factorization thread pool.

Changed

  • Posterior mixing diagnostics are computed in batched NumPy, reproducing ArviZ's definitions to rounding while cutting diagnostics time sharply for large posteriors. ArviZ, xarray and pandas are no longer part of the bayesian extra.

Installation

Python 3.12 or later:

python -m pip install "multimodalsrm==0.2.0"
python -m pip install "multimodalsrm[bayesian]==0.2.0"

Enable JAX_ENABLE_X64=true before Bayesian fitting. The examples live in the source repository at tag v0.2.0. See the changelog for full details.

Scope

This software release does not establish general convergence, uncertainty calibration, physiological timing, or empirical recovery. Synthetic speedups should not be read as general runtime guarantees.

Published on PyPI. The release workflow passed the complete Linux/macOS test matrix and all wheel/sdist installation checks before upload. Both published distribution hashes match the tested artifacts. A fresh PyPI installation of multimodalsrm[bayesian]==0.2.0 passed dependency consistency checks, the R fitting/prediction example, GP MAP prediction and archive replay, and the Bateman SCR example under dense, grouped and state-space GP MAP with archive replay.