DeepInsight is a toolbox for the analysis and interpretation of wide-band neural activity and can be applied on unsorted neural data. This means the traditional step of spike-sorting can be omitted and the raw data can be used directly as input, providing a more objective way of measuring decoding performance. Model Architecture
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)
See also the jupyter notebook for a full example for decoding behaviours from tetrode CA1 recordings.
Following Video shows the performance of the model trained on position (left), head direction (top right) and speed (bottom right):
For now install DeepInsight with the following command:
pip install -e git+https://github.com/CYHSM/DeepInsight.git#egg=DeepInsight
A full pip installation and Colab integration will be available soon.
Subscribe to Python Awesome
Get the latest posts delivered right to your inbox