agmonsynchrony
Compute the jitter-based synchrony index between time series described in Agmon's paper [1].
Syntax
SI, pval, Nc = synchrony_index(timeseries, tau, Nc_max_exact=1000)
Arguments
- timeseries (list or tuple of arrays): a list of two or more time series. Each time series is a sorted array of time instants.
- tau (float or array): maximum delay between events of different time series for the identification of coincidences. The width of the jitter window used for computing the expected number of coincidences is set to 2*tau. If tau is an array, all values are used consecutively
- window (str): if window is 'bilateral' (default), the original Agmon's method is applied; if window is 'unilateral', only coindidences occurring after (when tau > 0) or before (when tau < 0) the events of the reference time series are considered.
- Nc_max_exact (int): number of coincidences above which a normal approximation (Z score) is used for computing the p-values (default: 1000, which is generally appropriate)
Outputs
- SI (array with 2 or 3 dimensions): matrix of synchrony indices. Values normally range between 0 (no synchrony), and 1 (perfect synchrony) but can also be negative (antisynchrony) down to -1. The synchrony index SI[i, j] is computed between time series i (the reference) and j (the target). If 'tau' is an array, SI[i, j, k] is the synchrony index for the k-th value of 'tau'.
- pval (array with the same shape as 'SI'): matrix of corresponding p-values for the significance of the synchrony
- Nc (int array with the same shape as 'SI'): matrix of the number of observed coincidences
Example
Let's consider two time series with 4 and 2 samples respectively. We are looking for coincidences within a maximum delay of 0.1:
from agmonsynchrony import synchrony_index
ts1 = [1, 2, 3, 4]
ts2 = [2.03, 3.95]
SI, pval, Nc = synchrony_index([ts1, ts2], tau=0.1)
The number of observed coincidences is:
>> print(Nc)
[[4 2]
[2 2]]
The matrix of synchrony indices is:
>> print(SI)
[[1. 1.]
[0.5 1.]]
The diagonal is 1 because time series are synchronized with themselves. The lower left value is 0.5 because when the time series 'ts2' is taken as a reference, only half of the samples of the time series 'ts1' are within 'tau' of a sample of 'ts2'. Therefore, the matrix is not symmetric.
Installation
The package can be installed using the command pip install agmonsynchrony (on Windows, a compiler such as Microsoft Visual C++ is required).
If the code is downloaded from github, local installation on Linux is done by running make local and including the directory 'agmonsynchrony' in the PYTHONPATH environment variable.
Tested using Anaconda 2023.09 (python 3.11) on Linux and Windows.
Acknowledgements
This work was supported by the Natural Sciences and Engineering Research Council of Canada (NSERC grant RGPIN-2020-05252).
References
-
A. Agmon. A novel, jitter-based method for detecting and measuring spike synchrony and quantifying temporal firing precision. Neural Syst. Circuits 2012, vol. 2, article 5.
-
J.-P. Longpré, S. Salavatian, E. Beaumont, J. A. Armour, J. L. Ardell, V. Jacquemet. Measure of synchrony in the activity of intrinsic cardiac neurons. Physiol Meas. 2014, vol. 35, no. 4, pp. 549–566.
Metadata
Release files for agmonsynchrony 0.1.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 | |
|---|---|---|---|---|
| agmonsynchrony-0.1.0.tar.gz | 163.3 kB | Without provenance | Details |
Release files / agmonsynchrony-0.1.0.tar.gz
| Download URL | agmonsynchrony-0.1.0.tar.gz |
|---|---|
| Size | 163.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9ac8ce7ca852775fba5fdb3ba0923853f7ab2125e178738a44c33053c44d53f1
|
|
BLAKE2b-256 checksum How to use checksums |
96b47300ae5dcefe9cbdf593343bc066457ca58c7c80732be650fb04c5d445d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.5
|
Security for agmonsynchrony 0.1.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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A 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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.