Skip to content

Releases: cajigaslab/nSTAT-python

v0.3.0 — Full Matlab Parity

11 Mar 19:30
80f0882

Choose a tag to compare

What's New in v0.3.0

This release achieves full method-level parity with the Matlab nSTAT toolbox across all 16 audited classes (484 methods).

New Methods

  • SignalObj: MTMspectrum(), spectrogram(), periodogram(), findPeaks(), findMaxima(), findMinima(), findGlobalPeak(), shift(), shiftMe(), alignTime(), power(), sqrt(), xcov()
  • DecodingAlgorithms: Full SSGLM EM suite (PPSS_EStep, PPSS_MStep, PPSS_EM, PPSS_EMFB, estimateInfoMat, prepareEMResults), UKF methods (ukf, ukf_ut, ukf_sigmas)
  • SpikeTrainCollection: ssglm(), ssglmFB() entry points
  • FitResSummary: plotAllCoeffs(), plot3dCoeffSummary(), plot2dCoeffSummary(), plotKSSummary()

Paper Examples

All 5 paper examples rewritten as self-contained, documented scripts matching the Matlab workflow:

  1. mEPSC Poisson analysis (constant vs piecewise-rate)
  2. Whisker stimulus thalamus (lag search, nested model comparison)
  3. PSTH and SSGLM (CIF simulation, GLM-PSTH, state-space learning)
  4. Place cells (Gaussian + Zernike receptive fields, population statistics)
  5. Decoding (PPAF, goal-directed reach, hybrid filter)

Fidelity Summary

  • Classes: 11 exact, 7 high fidelity, 1 N/A (19 total)
  • Notebooks: 8 exact, 5 high fidelity (13 total)
  • Tests: 198 passed, 2 skipped

Install

pip install nstat-toolbox==0.3.0

Full changelog: v0.2.0...v0.3.0

v0.2.0 — Matlab API Parity

10 Mar 12:39
d1aa946

Choose a tag to compare

nSTAT Python v0.2.0 — Matlab API Parity

Complete functional parity with the Matlab nSTAT toolbox.

New Methods

State-Space GLM (SSGLM) EM Algorithm

  • PPSS_EMFB, PPSS_EStep, PPSS_MStep, PPSS_EM
  • estimateInfoMat, prepareEMResults, _ComputeStimulusCIs_MC
  • nstColl.ssglm(), nstColl.ssglmFB()

Unscented Kalman Filter

  • ukf, ukf_ut, ukf_sigmas

SignalObj Spectral Analysis

  • MTMspectrum, spectrogram, periodogram

SignalObj Utilities

  • shift, shiftMe, alignTime, power, sqrt, xcov

SignalObj Peak-Finding

  • findPeaks, findMaxima, findMinima, findGlobalPeak

FitResSummary Visualization

  • plotAllCoeffs, plot3dCoeffSummary, plot2dCoeffSummary, plotKSSummary

Paper Examples

All 5 paper examples (Sections 2.3–2.6 of Cajigas et al. 2012) rewritten as self-contained documented scripts with --export-figures support.

Documentation

  • Complete help files with grouped method listings for all 16 classes
  • Paper overview with SSGLM workflow, decoding, and signal processing sections
  • README aligned with Matlab nSTAT repo structure

Bug Fixes (vs Matlab)

  • findPeaks minima branch: now correctly negates data (nSTAT#12)
  • findGlobalPeak: fixed sOBjsObj typo (nSTAT#13)
  • shiftMe: now updates minTime/maxTime (nSTAT#14)
  • nspikeTrain.plot(): accepts handle kwarg for API consistency

Verification

  • 180 tests pass across Python 3.11 and 3.12
  • All 5 paper examples verified end-to-end (24 figures generated)
  • 13/13 CI checks green

Full Changelog: v0.1.0...v0.2.0

v1.0.0-rc1

02 Mar 02:26

Choose a tag to compare

Release candidate baseline for MATLAB-equivalent parity in nSTAT-python.\n\nHighlights:\n- Parity snapshot at release commit 8b69adf: high=0, medium=0, low=0\n- CI now enforces high/medium parity gate in test-and-build\n- Green workflows on release commit: test-and-build, pages, notebooks-full\n- Canonical validation artifact attached: nstat_python_validation_report_20260301_212022.pdf\n

nSTAT-python v1.0.0-rc5

02 Mar 22:49
aa7c0cc

Choose a tag to compare

Pre-release

nSTAT-python v1.0.0-rc5

Automated release-candidate notes generated from parity, functional, and numeric-drift artifacts.

Structural parity

  • High gaps: 0
  • Medium gaps: 0
  • Low gaps: 0
  • Total gaps: 0

Functional parity

  • Total methods: 501
  • Contract-verified methods: 480
  • Contract-explicit verified methods: 480
  • Probe-verified methods: 0
  • Excluded methods: 21
  • Missing symbol methods: 0
  • Unverified behavior methods: 0

Example parity

  • Total topics: 30
  • Validated topics: 26
  • MATLAB doc-only topics: 4
  • Pending manual review topics: 0
  • Out-of-scope topics:
    • DocumentationSetup2025b
    • FitResSummaryExamples
    • FitResultExamples
    • FitResultReference

Numeric drift

  • Topics checked: 31
  • Topics passed: 31
  • Topics failed: 0
  • Metrics checked: 180
  • Metrics failed: 0

RC delta vs v1.0.0-rc4

  • Structural high gaps: 0 -> 0 (+0)
  • Structural medium gaps: 0 -> 0 (+0)
  • Validated example topics: 26 -> 26 (+0)
  • MATLAB doc-only topics: 4 -> 4 (+0)
  • Contract-explicit verified methods: 480 -> 480 (+0)
  • Probe-verified methods: 0 -> 0 (+0)
  • Unverified behavior methods: 0 -> 0 (+0)
  • Numeric topics checked: 31 -> 31 (+0)
  • Numeric topics passed: 31 -> 31 (+0)
  • Numeric topics failed: 0 -> 0 (+0)
  • Numeric metrics checked: 126 -> 180 (+54)
  • Numeric metrics failed: 0 -> 0 (+0)

Frozen MATLAB snapshot

  • Snapshot id: matlab_gold_20260302 (2026-03-02)
  • Source manifest: data/shared/matlab_source_20260302.manifest.json (sha256 578a20db6433efed11466eb64ab23d77a1f106f3a2da8937c28849511e9385e7)
  • Mirror manifest: data/shared/matlab_gold_20260302.manifest.json (sha256 b980cb16f5872b53e841f360e9a81a34c9e6b4a5149a9ef3b7fd96314899bfe4)
  • File count: 42
  • Total size bytes: 504513862

Validation asset

  • PDF: nstat_python_validation_report_20260302_224759.pdf

Build metadata

nSTAT-python v1.0.0-rc4

02 Mar 22:17
cf36c2f

Choose a tag to compare

Pre-release

nSTAT-python v1.0.0-rc4

Automated release-candidate notes generated from parity, functional, and numeric-drift artifacts.

Structural parity

  • High gaps: 0
  • Medium gaps: 0
  • Low gaps: 0
  • Total gaps: 0

Functional parity

  • Total methods: 501
  • Contract-verified methods: 480
  • Contract-explicit verified methods: 480
  • Probe-verified methods: 0
  • Excluded methods: 21
  • Missing symbol methods: 0
  • Unverified behavior methods: 0

Example parity

  • Total topics: 30
  • Validated topics: 26
  • MATLAB doc-only topics: 4
  • Pending manual review topics: 0
  • Out-of-scope topics:
    • DocumentationSetup2025b
    • FitResSummaryExamples
    • FitResultExamples
    • FitResultReference

Numeric drift

  • Topics checked: 31
  • Topics passed: 31
  • Topics failed: 0
  • Metrics checked: 126
  • Metrics failed: 0

Frozen MATLAB snapshot

  • Snapshot id: matlab_gold_20260302 (2026-03-02)
  • Source manifest: data/shared/matlab_source_20260302.manifest.json (sha256 578a20db6433efed11466eb64ab23d77a1f106f3a2da8937c28849511e9385e7)
  • Mirror manifest: data/shared/matlab_gold_20260302.manifest.json (sha256 b980cb16f5872b53e841f360e9a81a34c9e6b4a5149a9ef3b7fd96314899bfe4)
  • File count: 42
  • Total size bytes: 504513862

Validation asset

  • PDF: nstat_python_validation_report_20260302_221606.pdf

Build metadata

nSTAT-python v1.0.0-rc3

02 Mar 20:45

Choose a tag to compare

Pre-release

nSTAT-python v1.0.0-rc3

Automated release-candidate notes generated from parity, functional, and numeric-drift artifacts.

Structural parity

  • High gaps: 0
  • Medium gaps: 0
  • Low gaps: 0
  • Total gaps: 0

Functional parity

  • Total methods: 501
  • Contract-verified methods: 480
  • Contract-explicit verified methods: 277
  • Probe-verified methods: 203
  • Excluded methods: 21
  • Missing symbol methods: 0
  • Unverified behavior methods: 0

Example parity

  • Total topics: 30
  • Validated topics: 26
  • MATLAB doc-only topics: 4
  • Pending manual review topics: 0
  • Out-of-scope topics:
    • DocumentationSetup2025b
    • FitResSummaryExamples
    • FitResultExamples
    • FitResultReference

Numeric drift

  • Topics checked: 13
  • Topics passed: 13
  • Topics failed: 0
  • Metrics checked: 36
  • Metrics failed: 0

Frozen MATLAB snapshot

  • Snapshot id: matlab_gold_20260302 (2026-03-02)
  • Source manifest: data/shared/matlab_source_20260302.manifest.json (sha256 578a20db6433efed11466eb64ab23d77a1f106f3a2da8937c28849511e9385e7)
  • Mirror manifest: data/shared/matlab_gold_20260302.manifest.json (sha256 b980cb16f5872b53e841f360e9a81a34c9e6b4a5149a9ef3b7fd96314899bfe4)
  • File count: 42
  • Total size bytes: 504513862

Validation asset

  • PDF: nstat_python_validation_report_20260302_204327.pdf

Build metadata

nSTAT-python v1.0.0-rc2

02 Mar 20:22

Choose a tag to compare

Pre-release

nSTAT-python v1.0.0-rc2

This release candidate tightens parity enforcement for in-scope examples and freezes the MATLAB data snapshot used for reproducible validation.

Highlights

  • Enforced alignment_status=validated for all in-scope example topics in CI.
  • Explicitly documented out-of-scope MATLAB documentation-only topics in parity policy/spec:
    • DocumentationSetup2025b
    • FitResSummaryExamples
    • FitResultExamples
    • FitResultReference
  • Added frozen MATLAB gold data snapshot metadata:
  • Updated gate-mode PDF parity logic to honor in-scope vs out-of-scope topic policy.

Validation (latest on this release commit)

Numeric Drift Report

Frozen MATLAB Gold Snapshot

  • Mirror manifest: data/shared/matlab_gold_20260302.manifest.json
    • SHA256: b980cb16f5872b53e841f360e9a81a34c9e6b4a5149a9ef3b7fd96314899bfe4
    • Files: 42
    • Total size bytes: 504513862
  • Source manifest: data/shared/matlab_source_20260302.manifest.json
    • SHA256: 578a20db6433efed11466eb64ab23d77a1f106f3a2da8937c28849511e9385e7
    • Files: 42
    • Total size bytes: 504513862

PDF Asset

  • Attached: nstat_python_validation_report_20260302_151458.pdf

nSTAT-python v0.1.0-split

27 Feb 03:56
daabf4e

Choose a tag to compare

Split Release: Standalone Python nSTAT

This release establishes nSTAT-python as the standalone Python repository split from nSTAT.

Included

  • Standalone package layout at repo root (nstat/, tools/, docs/, notebooks/, tests/)
  • Canonical Python APIs (nstat.signal, nstat.spikes, nstat.trial, nstat.analysis, nstat.fit, nstat.cif, nstat.decoding, nstat.datasets)
  • Help topic docs generated from helpfiles/helptoc.xml (full topic coverage)
  • Example notebook generation and execution gating for all 25 help example topics
  • Bundled datasets required for offline example execution
  • CI gate requiring:
    • docs coverage verification
    • notebook execution and topic alignment
    • strict offline target-install standalone verification
    • pytest

Migration Guidance

  • Python users should now use this repository: cajigaslab/nSTAT-python.
  • MATLAB users should use cajigaslab/nSTAT: https://github.com/cajigaslab/nSTAT
  • If migrating from monorepo paths, drop the python/ prefix in commands and imports from checkout root.

Related Split PRs