Skip to main content

isolating single cycles of oscillatory activity in neuronal spiking

Project description

isoCycle

A Deep Network-Based Decoder for Isolating Single Cycles of Neural Oscillations in Spiking Activity

Neural oscillations are prominent features of neuronal population activity in the brain, manifesting in various forms such as frequency-specific power changes in electroencephalograms (EEG) and local field potentials (LFP), as well as phase locking between different brain regions, modulated by modes of activity. Despite the intrinsic relation between neural oscillations and the spiking activity of single neurons, identification of oscillations has predominantly relied on indirect measures of neural activity like EEG or LFP, overlooking direct exploration of oscillatory patterns in the spiking activity, which serve as the currency for information processing and information transfer in neural systems. Recent advancements in densely recording large number of neurons within a local network have enabled direct evaluation of changes in network activity over time by examining population spike count variations across different time scales. Here we leverage the power of deep neural networks to robustly isolate single cycles of neural oscillations from the spiking of densely recorded populations of neurons. isoCycle effectively identifies individual cycles in the temporal domain, where cycles from different time scales may have been combined in various ways to shape spiking probability. The reliable identification of single cycle of neural oscillations in spiking activity across various time scales will deepen our understanding about the dynamics of neural activity.

Demo Jupyter Notebook

isoCycle_example.ipynb demonstrates the code used to extract gamma and beta cycles, as well as slower cycles, from the spiking activity of 131 neurons simultaneously recorded in mouse V1 during visual stimulation.

You can run the demo on Google Colab https://github.com/esiabri/isoCycle/blob/main/isoCycle/files/colab-badge_green.svg or follow these steps to run it on your own machine after installing the isoCycle package.

Extract the Cycle Times in Your Spiking Data on Google Colab

https://colab.research.google.com/assets/colab-badge.svg

On this Google Colab (linked above), you can use isoCycle online to analyze your own data. All you need to do is upload your recorded spike times to your Google Drive in a .npy file. IsoCycle will then extract the times of the cycle you choose (e.g., gamma, theta, etc.) from your data.
If you're using kilosort/phy for spike sorting, you can use this matlab function to generates the .npy file for this google colab.

GPU acceleration

isoCycle employs a decoder developed with TensorFlow. Leveraging a GPU significantly reduces execution time, a factor particularly crucial for long recordings. However, configuring your GPU to work with TensorFlow requires additional steps post-package installation. For quick guidance, please refer to Setting up TensorFlow with GPU Support.

Installation

Python users, you can install isoCycle with pip, consider a new environment as conflicts are likely:

pip install isoCycle

Here are the detailed steps for installation from scratch using Anaconda:

  1. First, ensure that you have Anaconda installed on your computer. If you don't have Anaconda, you can download it from the official Anaconda website. Anaconda is a popular distribution of Python that comes with many pre-installed packages and a package manager called conda, making it convenient for data analysis and scientific computing tasks.

  2. Once you have Anaconda installed, open a terminal or command prompt on your computer, and create a new conda environment by executing the following command:

conda create --name myenv

Replace myenv with the desired name for your environment.

  1. Activate the newly created environment with the following command:
conda activate myenv

Again, replace myenv with the name of your environment.

  1. Install isoCycle and its dependencies by running the command:
pip install isoCycle
  1. After the installation is complete, you can import isoCycle into your Python scripts or notebooks using the statement
import isoCycle

Now, with Anaconda installed, a new environment created, and isoCycle successfully installed, you are ready to analyze your data using isoCycle. You can use Jupyter Notebook to import and use isoCycle

  1. To run the isoCycle_example.ipynb refer to example

Setting up TensorFlow with GPU Support

To utilize the power of GPU acceleration with TensorFlow, ensure that you have the correct hardware and software setup.

You will need a CUDA-capable GPU and you'll need to install the CUDA Toolkit and the cuDNN library. Once these are installed, you can install TensorFlow with built-in GPU support.

To check if TensorFlow is using the GPU, you can use the following Python code:

import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

You can also log device placements with:

tf.debugging.set_log_device_placement(True)

For more detailed information, please refer to the following guides:

  1. Using a GPU with TensorFlow.
  2. CUDA Toolkit and cuDNN installation guides on the NVIDIA website. Please follow the respective instructions carefully when installing these components.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

isoCycle-0.0.63.tar.gz (15.5 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page