Deepinsight : User-Friendly Deep Learning Tool to Decode Neural Activity in an Automated Way

0
4464
Image Source: https://github.com/CYHSM/DeepInsight
-Advertisement-

DeepInsight is a deep learning-based decoding framework for discovering and characterizing the neural correlates of behavior and stimuli in unprocessed neural data. This tool allows raw data usage directly as input, removing the traditional step of spike-sorting. This provides a more objective way of measuring decoding performance.

The network requires little user input and generalizes across stimuli, behaviors, brain regions, and recording techniques. Once the neural network is trained, it can be analyzed to determine elements of the neural code that are informative about a given variable.

Advertisement
Model Architecture
Source: https://github.com/CYHSM/DeepInsight

Paper: https://www.biorxiv.org/content/10.1101/871848v1.full

Paper PDF: https://www.biorxiv.org/content/10.1101/871848v1.full.pdf

Github: https://github.com/CYHSM/DeepInsight

Jupyter Notebook: https://github.com/CYHSM/DeepInsight/blob/master/notebooks/deepinsight_example_usage.ipynb

Installation

For now install DeepInsight with the following command:

pip install -e git+https://github.com/CYHSM/DeepInsight.git#egg=DeepInsight

Example (Copied from Github)

import deepinsight

# Load your electrophysiological or calcium-imaging data
(raw_data,
 raw_timestamps,
 output,
 output_timestamps,
 info) = deepinsight.util.tetrode.read_tetrode_data(fp_raw_file)

# Transform raw data to frequency domain
deepinsight.preprocess.preprocess_input(fp_deepinsight, raw_data, sampling_rate=info['sampling_rate'],
                                        channels=info['channels'])

# Prepare outputs
deepinsight.util.tetrode.preprocess_output(fp_deepinsight, raw_timestamps, output, output_timestamps,
                                           sampling_rate=info['sampling_rate'])

# Train the model
deepinsight.train.run_from_path(fp_deepinsight, loss_functions, loss_weights)

# Get loss and shuffled loss for influence plot
losses, output_predictions, indices = deepinsight.analyse.get_model_loss(fp_deepinsight, stepsize=10)
shuffled_losses = deepinsight.analyse.get_shuffled_model_loss(fp_deepinsight, axis=1, stepsize=10)

# Plot influence across behaviours
deepinsight.visualize.plot_residuals(fp_deepinsight, frequency_spacing=2)

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.