Toolbox for Dynamic Time Warping based latency differences and temporal correlations between two time series for neuroscience
Project description
Python NeuroWarp
Python NeuroWarp is provided as a package that can be installed via PyPi. It consists of two functions that can be called after importing neurowarp: timeseries_correlation and latency_difference - these are the general-purpose scripts enable the DTW analyses presented in Transient Attention Gates Access Consciousness: Coupling N2pc and P3 Latencies using Dynamic Time Warping.
Installation
We recommend that you create a new virtual environment for our module via:
-
Open a terminal / cmd.exe window, navigate (via
cd
) to the directory you want to create the environment and enter:python -m venv neurowarp_env
-
Activate the neurowarp_env via:
Windows:
path\to\neurowarp_env\Scripts\activate
MacOS:
source neurowarp_env/bin/activate
-
Install neurowarp via pip (enter while neurowarp_env is active):
pip install neurowarp
-
The functions can be used as explained below after importing the module
For more detail on virtual environments & pip click here
DTW Temporal Correlation - neurowarp.timeseries_correlation()
Perform a DTW based bootstrap analysis to assess the temporal correlation between two time series (Figure 5 of our paper).
Important Notes
- Time series must be 2D matrices
- I.e., data points (e.g. time) x subjects (i.e., replications)
- We provide the ERPs of correct and intrusion trials for users to explore this function
Running timeseries_correlation using our ERPs
Enter the following into Python and make sure to enter your actual paths!
import neurowarp
from scipy.io import loadmat
data = loadmat("your/path/to/example_series_N2pcP3s")
series_1 = data["P3_Correct"]
series_2 = data["N2pc_Correct"]
name_1 = "P3"
name_2 = "N2pc"
savepath = "where/to/store/results/to"
num_boots = 10000
- The number of bootstrap samples that you want to implement
outlier = 0
- Exclude outliers if their DTW area is +-5 standard deviations from the mean
try_to_fix_ylims = 1
- Attempt to standardise y-limits of marginals
neurowarp.timeseries_correlation(series_1, series_2, name_1, name_2, savepath, num_boots, outlier, try_to_fix_ylims)
Note that the figure will look slightly different to that of our paper due to different x/y limits. See the replicate_figures folder if you want to replicate our figure as it was printed.
DTW Latency Difference - neurowarp.latency_difference()
Assess the latency difference between two conditions (i.e., within-subjects effect) or between two groups (i.e., across-subjects effect) of any signal of interest (in milliseconds).
Figures 3 & 4 of our paper show a two conditions analysis
Important Notes
- Reference and query time series must be 2D matrices
- I.e., data points (e.g., time) x subjects (i.e., replications)
- Time series have to be of equal sizes
- analysis_design determines whether you want to assess a within- or between-subjects latency effect (can only take “within” or “between” as input)
- We provide the ERPs of correct and intrusion trials for users to explore this function
Running timeseries_correlation using our ERPs
Enter the following into Python and make sure to enter your actual paths!
import neurowarp
from scipy.io import loadmat
data = loadmat("your/path/to/example_series_N2pcP3s")
analysis_design = "within"
query = data["N2pc_Intrusion"]
reference = data["N2pc_Correct"]
name_query = "Intrusion"
name_reference = "Correct"
units = "\u03BCV"
- The units that your signals are measured in (in our case micro volts)
sampling_rate = 500
- The number of data points per second in Hertz
savepath = "where/to/store/results/to"
permutations = 10000
- The number of permutations you would like to implement in statistical testing (we recommend >=10000)
neurowarp.latency_difference(analysis_design, query, reference, name_query, name_reference,units, sampling_rate, savepath, permutations)
Dependencies
Python NeuroWarp requires the following toolboxes which are automatically installed via pip install neurowarp
- Numpy
- Matplotlib
- Tslearn
- Scipy
Tests
Python NeuroWarp was tested with Python 3.10.9.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file neurowarp-0.0.1.tar.gz
.
File metadata
- Download URL: neurowarp-0.0.1.tar.gz
- Upload date:
- Size: 154.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ca4722ee43e18fc2f74d825d5b4400bc678132505184587bc47dfb38745789b |
|
MD5 | 3d84d73f7a995a53142e08fd3e73566d |
|
BLAKE2b-256 | e348d4e4143c5c1d7b45aa972415d65f58c44239757398d76525179dbdc0af34 |