Skip to content

Capturing dendritic processing with linear-nonlinear models

Notifications You must be signed in to change notification settings

nauralcodinglab/linear-nonlinear-dendrites

Repository files navigation

Linear-nonlinear dendrites

Neurons are very complicated computational devices, incorporating numerous non-linear processes, particularly in their dendrites. A simple way to capture the complexities of real neuron computation is with models based on a cascade of linear-nonlinear operations.

The scripts in this repo demonstrate how models based on parallel and looped linear-nonlinear operations, which we call parallel and recurrent cascade (PRC) models, can capture important features of real neurons.

Parallel, recurrent cascade models

For more information, see our paper:

Harkin*, Shen*, Goel, Richards**, and Naud**. Parallel and recurrent cascade models as a unifying force for understanding sub-cellular computation. bioRxiv, 2021. doi: 10.1101/2021.03.25.437091.

* These authors contributed equally.

** These authors also contributed equally.

Contents

  • demos: Demonstrations of various aspects of PRC neuron models corresponding to figures 3-6 of Harkin, Shen, et al. (2021).
  • training: Scripts that illustrate training of multi-layered neural networks containing PRC models using backprop. Corresponds to figures 7 and 8 of Harkin, Shen, et al. (2021).

Installation

To download the code and all dependencies, paste the following into a terminal. Make sure you have Anaconda installed, since it is required to manage dependencies. This set of commands will create a new Anaconda environment called "teaching" for this project.

git clone --recurse-submodules \
    https://github.com/nauralcodinglab/linear-nonlinear-dendrites.git \
    && cd linear-nonlinear-dendrites \
    && conda env create -f environment.yml \
    && conda activate lnldendrites \
    && pip install -e ./ez-ephys

If installation of the conda environment fails, try creating an empty conda environment and installing the minimal requirements from requirements.txt instead.

# Run from inside linear-nonlinear-dendrites repo
conda create -n lnldendrites python=3.8 \
    && conda activate lnldendrites \
    && pip install -r requirements.txt \
    && pip install -e ./ez-ephys

Requirements

This project requires Python version 3.5 or newer because of type hints. Minimal dependencies are listed in requirements.txt.

Most scripts have been tested on MacOS v10.15 and Manjaro Linux v20 and v21 using Python 3.8 or newer. Scripts for training networks of PRC neurons have been tested on CentOS.

Contributors

Code was written by Emerson Harkin, Peter Shen, Richard Naud, and Anish Goel. Parts of the code used for training networks of PRC neurons (under training) are modified or reproduced from Friedeman Zenke's SpyTorch.

License

If you use this code in a publication, please cite our paper!

@article{harkin_parallel_2021,
	title = {
        Parallel and recurrent cascade models as a unifying force for
        understanding sub-cellular computation
    },
	doi = {10.1101/2021.03.25.437091},
	journaltitle = {{bioRxiv}},
	author = {
        Harkin, Emerson F and Shen, Peter R and Goel, Anish
        and Richards, Blake A and Naud, Richard
    },
	date = {2021},
	langid = {english},
}

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

This software is provided "as-is" in the spirit of the CRAPL academic-strength open-source license.