CAnonical Time-series CHaracteristics for Mouse fMRI
The catchaMouse16 feature set provides a useful set of features to summarize the dynamics of fMRI time-series data, with implementations for Python, MATLAB, and C.
A specific subset of 16 features from the hctsa time-series feature library designed to distinguish changes in functional Magnetic Resonance Imaging (fMRI) time series taken from mice undergoing experimental manipulations of excitatory and inhibitory neural activity in their cortical circuits.
It is a collection of features that are generated from a general pipeline (which can be accessed here) applied to mouse fMRI time-series data taken from mice. This represents a high-performing but minimally redundant data-driven subset of the full library of hctsa features, that best discriminate biologically relevant manipulations (using the DREADD technique) from non-invasive fMRI time series.
Want to use the pipeline or the feature set? If you use catchaMouse16 in a scientific publication, please read and cite this open-access article:
Alam et al. "Canonical time-series features for characterizing biologically informative dynamical patterns in fMRI", bioRxiv (2024).
For information on the full set of over 7000 features, see the following (open) publications:
B.D. Fulcher and N.S. Jones. hctsa: A computational framework for automated time-series phenotyping using massive feature extraction. Cell Systems 5, 527 (2017).
B.D. Fulcher, M.A. Little, N.S. Jones Highly comparative time-series analysis: the empirical structure of time series and their methods. J. Roy. Soc. Interface 10, 83 (2013).
The pipeline to reproduce to create the catchaMouse16 feature set is an adaptation of the general pipeline from C.H. Lubba, S.S. Sethi, P. Knaute, S.R. Schultz, B.D. Fulcher, N.S. Jones. catch22: CAnonical Time-series CHaracteristics. Data Mining and Knowledge Discovery (2019).
For C, MATLAB, and Python, the catchaMouse16 Github repository contains source code for building native binaries that can be called from these languages. You will need to download the source code, install gsl (unix only), then follow the instructions below to build the binaries for your language.
For Julia users, these binaries have been pre-built for all platforms. You can use them by installing the CatchaMouse16.jl package.
Compile by executing the makefile inside the catchaMouse16/C
by running make
.
Compute all the time-series features for some time-series data contained in <infile>.
If an <outfile
is not provided then the output is sent to the stdout.
Access the efficient python implementation of feature-set by running the following code:
You can then test the features with
The module is also available for python2:
You can then test the features with
The features are then accessible through a module which can be imported. Namely import catchaMouse16
provides access to the features.
Open MATLAB, navigate to catchaMouse16/MATLAB/
, and run mexAll
. This brings the catchaMouse16 features into the namespace.
Individual features can be accessed as catchaMouse16_{feature}
.
Installation:
Usage:
Note: All catchaMouse16 features are statistical properties of the z-scored time series - they aim to focus on the properties of the time-ordering of the data and are insensitive to the raw values in the time series.
The table belows follows the same cypher as in the pre-print with the hctsa name and an interpretable name referred to throughout the paper with corresponding descriptions.
Interpretable name | Feature name | Description |
---|---|---|
nonlin_autocorr_035
AC_nl_035
nonlin_autocorr_036
AC_nl_036
nonlin_autocorr_112
AC_nl_112
ami3_10bin
CO_HistogramAMI_even_10bin_ami3
Automutual information at lag 3 using a 10-bin histogram estimation method
ami3_2bin
CO_HistogramAMI_even_2bin_ami3
Automutual information at lag 3 using a 2-bin histogram estimation method
increment_ami8
IN_AutoMutualInfoStats_diff_20_gaussian_ami8
Mutual information at time lag 8 using Gaussian esti- mator
dfa_longscale_fit
SC_FluctAnal_2_dfa_50_2_logi_r2_se2
Timescale–fluctuation curve using DFA
noise_titration
CO_AddNoise_1_even_10_ami_at_10
Automutual information at lag 1 after adding white noise at a SNR of 1
prediction_scale
FC_LoopLocalSimple_mean_stderr_chn
Change in
prediction error from a mean forecaster using prior windows of data
floating_circle
CO_TranslateShape_circle_35_pts_std
Variability of time-series points inside a circle translated across the time domain
walker_crossings
PH_Walker_momentum_5_w_momentumzcross
Statistics of a simulated mechanical particle driven by the time series
walker_diff
PH_Walker_biasprop_05_01_sw_meanabsdiff
Statistics of a simulated mechanical particle driven by the time series
stationarity_min
SY_DriftingMean50_min
Minimum mean across 50 segments divided by mean variance in segments
stationarity_floating_circle
CO_TranslateShape_circle_35_pts_statav4_m
StatAv of the statistics of local time-series shapes
outlier_corr
DN_RemovePoints_absclose_05_ac2rat
Change in lag-2 autocorrelation from removing 50% of the time-series values closest to the mean
outlier_asymmetry
ST_LocalExtrema_n100_diffmaxabsmin
Asymmetry in extreme local events