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

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.

Model Architecture


Paper PDF:


Jupyter Notebook:


For now install DeepInsight with the following command:

pip install -e git+

Example (Copied from Github)

import deepinsight

# Load your electrophysiological or calcium-imaging data
 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'],

# Prepare outputs
deepinsight.util.tetrode.preprocess_output(fp_deepinsight, raw_timestamps, output, output_timestamps,

# 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)