FEATURE: Autoregressive model process
Release notes
FFT has a low resolution and we should use the autoregressive model to create a 'smoothed' periodogram from which oscillation parameters can be extracted more easily.
Problem to solve
FFT has a low resolution -- especially for noisy biological data -- and therefore doesn't give a good way to assess quality of oscillations.
Proposal
Create a process that uses an autoregressive model to fit time series data and produce a closed-form solution of the periodogram estimator. This follows supplementary material section S7 in https://www.biorxiv.org/content/10.1101/2020.09.23.309724v1.
Baseline functionality:
- Process takes signal dataframes as input, and produces two dataframes as output -- one corresponding to the frequency axis computed from each time series and the other corresponding to the power axis. This is similar to the
fftprocess.- Port functionality & code from https://git.ecdf.ed.ac.uk/swain-lab/time-series-pipeline/-/blob/1a2924afb9b7c5c22e68cec8a49c42016824fc55/pipeline/ar_grima2020.py and
autoregin https://git.ecdf.ed.ac.uk/swain-lab/time-series-pipeline/-/blob/1a2924afb9b7c5c22e68cec8a49c42016824fc55/pipeline/periodogram.py
- Port functionality & code from https://git.ecdf.ed.ac.uk/swain-lab/time-series-pipeline/-/blob/1a2924afb9b7c5c22e68cec8a49c42016824fc55/pipeline/ar_grima2020.py and
Additional functionality:
- Choosing between automatically optimising the AR order for each time series, or specifying the order for each. This could look like a couple of keys/values in the parameters dictionary e.g. one to specify whether to automatically optimise the AR order, and another to contain a list orders with the same length as the input
DataFrame. - 'Smooth'/'Fit' a time series, using a specified (or automatically determined) AR order. This should look similar to the
savgolprocess. This probably should be a separate process.
Intended users
People who do time series analysis on potentially oscillatory yeast time series, mostly @s1947236 .
Metrics
...
Edited by Arin Wongprommoon