Changelog
Newest first. Entries marked «breaking» changed an interface or a default; while the project is on 0.x those land on minor bumps, which is why pinning matters.
Versioning policy
Patch releases fix behaviour that was already wrong and never change a default. Minor
releases may rename a keyword or move a default, and the old spelling keeps working with a
DeprecationWarning for exactly one minor release before it is removed. If a
published analysis depends on this package, pin it: axonforge==0.7.2.
0.7.2 — 24 September 2026#
- Fixed:
quality.isolation_distancereturned a finite number when the cluster held more than half of all events, where the quantity is undefined. It now returnsnanand the quality table prints a dash. - Fixed:
filt.common_medianignoredbad_channelsfrom the sidecar whengroupswas also passed explicitly, so a dead channel could enter the median. Any session referenced that way should be re-run. - Detection is about 12 % faster: the chunk overlap no longer copies the raw block before filtering it.
- Docs: the methods page gained the trace figure and the section on where alignment fails.
0.7.1 — 12 August 2026#
- Fixed: containers written by 0.7.0 on Windows stored backslashes in the manifest and could not be read anywhere else. Readers now accept both, and the writer normalises.
- Added
axonforge selftest, which builds a four-channel synthetic recording in memory and checks the whole path without touching a file. io.sanitygained the comb-spectrum score that catches a wrongn_channelson interleaved binary input.
0.7.0 — 30 June 2026#
- Breaking: the keyword
thresh_kondetect.thresholdis nowk. The old name warns and will be removed in 0.8.0. - Breaking: default
restartsinsort.clusterraised from 10 to 20. Clustering is slower by roughly the same factor and noticeably more stable at low signal-to-noise; the figures on the validation page are from the new default. - NumPy 2.x is supported and tested alongside 1.26.
- Added
waveform.align(mode="centre_of_mass")for waveforms whose peak is clipped by the acquisition range. - Container format v3: provenance is a dictionary per stage rather than one flat string. Version 2 files still read.
0.6.1 — 15 April 2026#
- Fixed: the zero-phase filter produced edge artefacts at chunk boundaries that looked
like small spikes roughly every
chunk_sseconds. Chunks now overlap by twice the filter length and the overlap is discarded after filtering. This was the worst bug in the project's history: it created events that no neuron produced, at a predictable interval, in every chunked run since 0.3.0. - Fixed:
quality.presence_ratiocounted the final partial bin as empty.
0.6.0 — 26 February 2026#
- Breaking: Python 3.9 is no longer supported.
- Breaking: the quality metrics moved out of
sortinto their ownqualitymodule. The old import path warns. - Added
detect.dual_thresholdfor recordings with slow amplitude changes. - Added
stats.bursts, interval-threshold burst detection. - Docs: first published methods page.
0.5.0 — 7 November 2025#
- Breaking:
UnitSet.savewrites an.afzcontainer instead of a pickled archive. Loading old archives was dropped rather than maintained, because the pickle contained class references that we could not promise to keep stable. - Added the
reportsubcommand: raster, interval histograms and mean waveforms into one document. - Added
stats.cv2andstats.fano.
0.4.0 — 22 July 2025#
- Clustering replaced: Gaussian mixtures with model order by information criterion, instead of k-means with a k the user had to guess.
- Added
quality.l_ratioandquality.isolation_distance. - The synthetic benchmark is shipped in the source tarball, so published numbers can be reproduced locally.
0.3.0 — 18 March 2025#
- HDF5 reader behind the
hdf5extra. - Channel groups, and common median referencing that respects them.
- Sub-sample parabolic interpolation in peak alignment. Median timing error on the benchmark fell from 51 µs to 28 µs at a signal-to-noise ratio of 6.
0.2.0 — 5 November 2024#
- Waveform extraction with windows in milliseconds, and alignment on the negative peak.
- Principal-component features and k-means clustering.
- Interspike interval histogram and coefficient of variation.
0.1.0 — 12 June 2024#
- First public release: interleaved binary reader, Butterworth bandpass, threshold detection with dead time, and nothing else.