MultimodalSRM
Shared response models for observations measured across people, modalities and native sampling times.
Version 0.2.0. This package contains the extracted R-MSRM and GP-MSRM implementations. Software checks, fit convergence, uncertainty calibration and empirical recovery are separate claims.
Models
- R-MSRM (
MultimodalSRM) estimates one exact common latent response per run by default, with participant–modality mappings and regularized response kernels. - GP-MSRM (
BayesianMultimodalSRM) uses a continuous shared latent Gaussian process, individual observation mappings, explicit priors, MAP estimation and supported posterior workflows.
Both use named native-time observations, masks and missing streams. They preserve explicit information boundaries for held-out prediction. Learned FIR responses are deferred. Legacy neighborhood, graph, mixture and reference estimators are not exported by this package. See the capability and backend matrix before choosing a workflow.
Response(BatemanSCR(...)) models skin-conductance streams across R and supported GP workflows. See the SCR guide and shared R/GP example. Version 0.2.0 removed BachSCR; reproduce Bach models and archives in a 0.1.0 environment (migration).
Install
Python 3.12 or later is required. Install the release from PyPI:
python -m pip install "multimodalsrm==0.2.0"
# Optional Bayesian runtime:
python -m pip install "multimodalsrm[bayesian]==0.2.0"
Enable float64 before using the Bayesian model (JAX_ENABLE_X64=true). See the installation guide for environment setup.
Development and runnable examples
The example scripts live in the source repository. From a clone:
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
python examples/r_quickstart.py
For the optional Bayesian runtime:
python -m pip install -e '.[bayesian]'
JAX_ENABLE_X64=true JAX_PLATFORM_NAME=cpu python examples/gp_map_quickstart.py
The base install does not require JAX, NumPyro, ArviZ or plotting libraries. The Bayesian extra pins the runtime used by the source handoff; enabling float64 is required. Editable source installs follow the checkout; use the v0.2.0 tag to match this release.
Data and imports
from multimodalsrm import MultimodalSRM, TimeSeries, Identity, Gaussian, Response
from multimodalsrm.bayesian import BayesianMultimodalSRM, BayesianPriors
# values: (observations, features); times: (observations,).
# Each modality retains its own timestamps. A mask marks observed entries.
# data = {participant: {run: {modality: TimeSeries(values, times, mask)}}}
Use consistent timestamp units across streams. Separate runs have separate latent responses; participants viewing the same run share one response. features=K chooses the latent dimensionality rather than estimating K. The runnable tutorials demonstrate fitting, explicit target exclusion, independent new runs and GP archive replay on small synthetic data.
Documentation and development
- Read the documentation — installation, data preparation, model concepts, and tutorials.
- Documentation overview, installation, and model concepts
- Tutorials and capabilities
- Preview and contribute to the Zensical site
- Migration and archive compatibility
- Source integration and provenance
- CI and test policy
- Release setup, contributing and changelog
- Post-release Linux CPU/GPU evaluation plan
- Prior Apple MPS feasibility findings
- Linux CUDA GPU opportunities for R, GP-MAP and GP posterior
- Algorithmic GP speedups: grouped state-space, MAP and posterior reformulations
- GP speedup experiments: MAP warm start, grouped state-space and blocked Gibbs
Routine PR checks use documentation-only checks or Linux core regressions and Bayesian smoke tests, depending on the changed files. The full Linux/macOS suites and wheel/source-distribution checks run on request and before every release. See the test policy and current CI run for coverage and evidence. Passing CI does not certify scientific validity or authorize a new release.
License and citation
MIT licensed; see LICENSE. The implementation was extracted from Luke J. Chang's shared-response-models research repository with contributor provenance retained in the integration record. Citation metadata is in CITATION.cff. No package DOI or associated publication is claimed. Research observations and fitted archives are not distributed.
Metadata
Release files for multimodalsrm 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 | Provenance | |
|---|---|---|---|---|
| multimodalsrm-0.2.0.tar.gz | 618.3 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| multimodalsrm-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 866.4 kB
Release files / multimodalsrm-0.2.0.tar.gz
| Download URL | multimodalsrm-0.2.0.tar.gz |
|---|---|
| Size | 618.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c77ef43c9a17cb18195b203908c3e0c4e6d9acc71dafebbdcb4a0b431777ed59
|
|
BLAKE2b-256 checksum How to use checksums |
0b2ecfe9de9076fe1b7d785b327a20eae0e0d5cdbf8134002ed9196147ff11f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / multimodalsrm-0.2.0-py3-none-any.whl
| Download URL | multimodalsrm-0.2.0-py3-none-any.whl |
|---|---|
| Size | 248.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dfca6039aea536ea51b8b22e061ddeb26475b11e425412a7e503677f4a900795
|
|
BLAKE2b-256 checksum How to use checksums |
450bc44590ed8bcf3ad68e39f8e344fd8002a37e476118bfc469f499e12d7409
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logSecurity for multimodalsrm 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for multimodalsrm-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.