zeta-test statistical testing package
Updated 23 Nov 2023
The ZETA-test repository
Repository containing ZETA-test functions and dependencies. For an example of how to use the code, check runExampleZETA.m in the /example/ subfolder. Your output should look like the images in the same directory.
Our pre-print describing data-stitching, the time-series ZETA-test, and the two-sample tests is now online: https://www.biorxiv.org/content/10.1101/2023.10.30.564780v1
The article describing the original ZETA-test has been published in eLife: https://elifesciences.org/articles/71969
If you're looking for the original ZETA repository, you can find it here: https://github.com/JorritMontijn/ZETA
The ZETA-test for spiking data has been extensively tested on real and artificial data, and has been peer-reviewed. The time-series ZETA-test and two-sample ZETA-tests are also thoroughly tested and are described in our pre-print, which we will submit for peer-review soon. We are confident all ZETA-tests, including the two-sample tests, are reliable and statistically sound, but if you find any bugs, do let us know on the Issues page!
More information on these tests can be found in runExampleZETA.m and the help comments of the respective functions.
This repository contains five main functions:
- zetatest.m: Calculates the Zenith of Event-based Time-locked Anomalies (ZETA) for spike times of a single neuron. Outputs a p-value.
- zetatstest.m: Calculates the time-series version of ZETA, for data such as calcium imaging or EEG recordings.
- zetatest2.m: Same as (1), but for testing whether two neurons respond differently to the same stimulus; or whether one neuron responds differently to two sets of stimuli.
- zetatstest2.m: Same as (2), but for testing differences between two time-series data arrays.
- getIFR.m: Calculates the instantaneous firing rate (IFR) without running the ZETA-test. Use this as you would a PSTH function.
Rationale for ZETA
Neurophysiological studies depend on a reliable quantification of whether and when a neuron responds to stimulation, be it sensory, optogenetically or otherwise. However, current statistical analysis methods to determine a neuron’s responsiveness require arbitrary parameter choices, such as a binning size. This choice can change the results of the analysis, which invites bad statistical practice and reduces the replicability of analyses. Moreover, many methods, such as bin-wise t-tests, only detect classically mean-rate modulated cells. Especially with advent of techniques that yield increasingly large numbers of cells, such as Neuropixels recordings or two-photon calcium imaging, it is important to use tests for cell-inclusion that require no manual curation. Here, we present a new family of statistical tests for responses in point-event and time-series data for one- and two-sample comparisons: the family of ZETA-tests. As shown in our papers, they outperform approaches such as optimally-binned ANOVAs, t-tests and model-based approaches, in the sense that it includes more cells in real neurophysiological data at a similar false-positive rate.
Finally, ZETA’s timescale-, parameter- and binning-free nature allowed us to implement a ZETA-derived algorithm to calculate peak onset and offset latencies in neuronal spike trains with theoretically unlimited temporal resolution.
Please send any questions or comments to j.montijn at nin.knaw.nl.
The ZETA-test functions require the following Mathworks toolboxes to work:
- Signal Processing Toolbox
- Image Processing Toolbox
- Statistics and Machine Learning Toolbox
- (Optional: Parallel Computing Toolbox to reduce computation time)
Montijn, Jorrit S., et al. “A Parameter-Free Statistical Test for Neuronal Responsiveness.” ELife, vol. 10, eLife Sciences Publications, Ltd, Sept. 2021, doi:10.7554/elife.71969.
Heimel, J. Alexander, et al. A New Family of Statistical Tests for Responses in Point-Event and Time-Series Data for One- and Two-Sample Comparisons. Cold Spring Harbor Laboratory, Nov. 2023, doi:10.1101/2023.10.30.564780.
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
See release notes for this release on GitHub: https://github.com/JorritMontijn/zetatest/releases/tag/v3.1.4
See release notes for this release on GitHub: https://github.com/JorritMontijn/zetatest/releases/tag/v3.1.3
See release notes for this release on GitHub: https://github.com/JorritMontijn/zetatest/releases/tag/v3.1.2
See release notes for this release on GitHub: https://github.com/JorritMontijn/zetatest/releases/tag/v3.1.1
See release notes for this release on GitHub: https://github.com/JorritMontijn/zetatest/releases/tag/v3.0.0