Fast and accurate timestamps correlation in python.
Project description
Pycorrelate
Pycorrelate computes fast and accurate cross-correlation over arbitrary time lags. Cross-correlations can be calculated on “uniformly-sampled” signals or on “point-processes”, such as photon timestamps. Pycorrelate allows computing cross-correlation at log-spaced lags covering several orders of magnitude. This type of cross-correlation is commonly used in physics or biophysics for techniques such as fluorescence correlation spectroscopy (FCS) or dynamic light scattering (DLS).
Two types of correlations are implemented:
ucorrelate: the classical text-book linear cross-correlation between two signals defined at uniformly spaced intervals. Only positive lags are computed and a max lag can be specified. Thanks to the limit in the computed lags, this function can be much faster than numpy.correlate.
pcorrelate: cross-correlation of discrete events in a point-process. In this case input arrays can be timestamps or positions of “events”, for example photon arrival times. This function implements the algorithm in Laurence et al. Optics Letters (2006). This is a generalization of the multi-tau algorithm which retains high execution speed while allowing arbitrary time-lag bins.
Pycorrelate is implemented in Python 3 and operates on standard numpy arrays. Execution speed is optimized using numba.
Free software: GNU General Public License v3
Documentation: https://pycorrelate.readthedocs.io.
History
0.2.1 (2017-11-15)
Added normalization for FCS curves (see pnormalize).
Added example notebook showing how to fit a simple FCS curve
Renamed ucorrelate argument from maxlags to maxlag.
Added theory page in the documentation, showing the exact formula used for CCF calculations.
0.1.0 (2017-07-23)
First release on PyPI.