Physically-driven synthetic 1-photon miniscope data: a forward-model generator and teaching tool.
Minisim builds a miniscope recording forward from its physical components, the inverse of an analysis pipeline like minian. Instead of recovering signals from a movie, it starts from biology and optics and produces the movie, together with the ground truth that generated it:
place neurons -> cell activity -> bleaching -> optics -> composite -> neuropil
-> brain motion -> illumination profile -> vignette -> leakage -> image sensor
Each stage is a small, inspectable physical model. Because the recording is built forward, every recording ships with exact ground truth (cell locations, footprints, calcium traces, spike times, motion trajectory, per-pixel optical fields), which makes Minisim useful for:
- Benchmarking calcium-imaging pipelines (minian, CaImAn, suite2p, ...) against known ground truth.
- Teaching the anatomy of miniscope data: what each physical effect does to the image, via interactive notebooks.
- Testing analysis code with reproducible, parameterized fixtures.
📖 Full documentation: minisim.readthedocs.io - concepts, quickstart, how-to guides, and the API reference.
Install
pip install minisim # engine only
pip install "minisim[notebook]" # + the interactive teaching notebooks
Requires Python >= 3.10. Core dependencies are just numpy, scipy, xarray, zarr, pydantic, and numpydantic.
The teaching notebooks ship inside the package; list them and copy the ones you want out to a writable directory with the bundled command:
minisim-notebooks list # see what's available
minisim-notebooks copy 01_anatomy # -> ./minisim-notebooks/01_anatomy
# then: cd minisim-notebooks/01_anatomy && jupyter lab
Quick start
from minisim import (
Acquisition, Optics, ImageSensor, PlaceNeurons, CellActivity,
CellOptics, Composite, Sensor, Spec, simulate,
)
spec = Spec(
acquisition=Acquisition(
fps=20.0, duration_s=10.0,
optics=Optics(magnification=8.0, na=0.45),
image_sensor=ImageSensor(n_px_height=256, n_px_width=256, pixel_pitch_um=8.0),
),
seed=0,
steps=[
PlaceNeurons(density_per_mm3=400000.0, soma_radius_um=4.0),
CellActivity(),
CellOptics(),
Composite(),
Sensor(),
],
)
rec = simulate(spec)
movie = rec.observed # xarray DataArray (frame, height, width)
truth = rec.ground_truth # cells, traces, spikes, optical fields
Relationship to minian
Minisim is the forward (generative) counterpart to minian's inverse (analysis) pipeline. The dependency is designed to be strictly one-directional: Minisim never imports minian. The intended integration is for minian to use Minisim as a test dependency, supplying ground-truth fixtures for its recovery tests; that wiring is planned, not yet in place.
License
GPL-3.0-or-later. See LICENSE.
Metadata
Release files for minisim 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| minisim-1.0.3.tar.gz | 2.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| minisim-1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.7 MB
Release files / minisim-1.0.3.tar.gz
| Download URL | minisim-1.0.3.tar.gz |
|---|---|
| Size | 2.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8d492f160ba668f37127f4ba40b2979df23479f0fb870036ad5402bfdc9cf1d5
|
|
BLAKE2b-256 checksum How to use checksums |
9c47a6f7efb702629464c14b5b1ec4e95c4f13af03e203c1266c50eeacefafc5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 24, 2026.
Transparency logRelease files / minisim-1.0.3-py3-none-any.whl
| Download URL | minisim-1.0.3-py3-none-any.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
26a88dfc02ac2ef076c7eb1a3c146716ec32bed46563251639dcb97f1cc6ef0e
|
|
BLAKE2b-256 checksum How to use checksums |
7f1c284c7070937f3afe39f030a25a104b0a1d755378654374d5fada6e523d86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 24, 2026.
Transparency log