Cerebellar purkinje cell (De Schutter and Bower 1994)

 Download zip file 
Help downloading and running models
Tutorial simulation of a cerebellar Purkinje cell. This tutorial is based upon a GENESIS simulation of a cerebellar Purkinje cell, modeled and fine-tuned by Erik de Schutter. The tutorial assumes that you have a basic knowledge of the Purkinje cell and its synaptic inputs. It gives visual insight in how different properties as concentrations and channel conductances vary and interact within a real Purkinje cell.
1 . De Schutter E, Bower JM (1994) An active membrane model of the cerebellar Purkinje cell. I. Simulation of current clamps in slice. J Neurophysiol 71:375-400 [PubMed]
2 . De Schutter E, Bower JM (1994) An active membrane model of the cerebellar Purkinje cell II. Simulation of synaptic responses. J Neurophysiol 71:401-19 [PubMed]
3 . Staub C, De Schutter E, Knöpfel T (1994) Voltage-imaging and simulation of effects of voltage- and agonist-activated conductances on soma-dendritic voltage coupling in cerebellar Purkinje cells. J Comput Neurosci 1:301-11 [PubMed]
4 . De Schutter E, Bower JM (1994) Simulated responses of cerebellar Purkinje cells are independent of the dendritic location of granule cell synaptic inputs. Proc Natl Acad Sci U S A 91:4736-40 [PubMed]
5 . De Schutter E (1998) Dendritic voltage and calcium-gated channels amplify the variability of postsynaptic responses in a Purkinje cell model. J Neurophysiol 80:504-19 [PubMed]
6 . Jaeger D, De Schutter E, Bower JM (1997) The role of synaptic and voltage-gated currents in the control of Purkinje cell spiking: a modeling study. J Neurosci 17:91-106 [PubMed]
7 . de Schutter E (1994) Modelling the cerebellar Purkinje cell: experiments in computo. Prog Brain Res 102:427-41 [PubMed]
8 . De Schutter E (1997) A new functional role for cerebellar long-term depression. Prog Brain Res 114:529-42 [PubMed]
9 . Steuber V, Mittmann W, Hoebeek FE, Silver RA, De Zeeuw CI, Häusser M, De Schutter E (2007) Cerebellar LTD and pattern recognition by Purkinje cells. Neuron 54:121-36 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism:
Cell Type(s): Cerebellum Purkinje GABA cell;
Channel(s): I Na,p; I Na,t; I T low threshold; I p,q; I A; I K; I M; I K,Ca; I Sodium; I Calcium; I Potassium;
Gap Junctions:
Simulation Environment: GENESIS;
Model Concept(s): Activity Patterns; Dendritic Action Potentials; Active Dendrites; Detailed Neuronal Models; Tutorial/Teaching; Synaptic Integration;
Implementer(s): Cornelis, Hugo [hugo at bbf.uia.ac.be]; Airong, Dong [tard at fimmu.com];
Search NeuronDB for information about:  Cerebellum Purkinje GABA cell; I Na,p; I Na,t; I T low threshold; I p,q; I A; I K; I M; I K,Ca; I Sodium; I Calcium; I Potassium;
//genesis - Purkinje cell version M9 genesis2 master script
// Copyright: Theoretical Neurobiology, Born-Bunge Foundation - UA, 1998-1999.
// $Id: TUTORIAL.g Thu, 04 Apr 2002 12:46:38 +0200 hugo $

//' Purkinje tutorial
//' (C) 1998-2002 BBF-UIA
//' see our site at http://www.bbf.uia.ac.be/ for more information regarding
//' the Purkinje cell and genesis simulation software.
//' functional ideas ... Erik De Schutter, erik@bbf.uia.ac.be
//' genesis coding ..... Hugo Cornelis, hugo@bbf.uia.ac.be
//' general feedback ... Reinoud Maex, Erik De Schutter

//- give header

echo "--------------------------------------------------------------------------"
echo "Purkinje tutorial, version " -n
// $Format: "echo \"$ProjectVersion$ ($ProjectDate$)\""$
echo "Release1.3.2 (Thu, 04 Apr 2002 12:46:38 +0200)"
echo "                       Simulation script"
echo "--------------------------------------------------------------------------"

//- include default definitions

include defaults.g

//- include Purkinje cell constants

include Purk_const

//- cell path of cell to simulate

str cellpath =  "/Purkinje"

//- cell that is read from pattern file

include cell.g

//- set default output rate

int outputRate = 10

//- set default chanmode for solver : normalized

int iChanMode = 5

//- set default mode : in vitro

int iVVMode = 0

//- set default for current : current clamp on

int iCurrentMode = 1

//- in vivo : parallel cell firing rate

float phertz = 25

//- in vivo : basket cell firing rate

float ihertz = 1

//- speed of climbing fiber volley (in sec)

float delay = 0.00020

//- strength of climging fiber synapses

float strength = 1.0

//- speed of climbing fiber volley (in steps == delay / dt)
//- this variable is set later on when dt is defined in an other module

int delaysteps = 0.00020 / 1

//! The tabchannels need an update when changing from
//! little-endian to big-endian. I don't see a way to figure this out from
//! the script level. I used the hosttype in the HOSTTYPE shell variable as a
//! guideline for an update of the tabchannels, but that didn't work on all
//! systems.

//- include the utility module, it is needed by multiple others modules,
//- but since I do not like multiple includes, I include it here.

include utility.g

//- include the config module

include config.g

//- include the script for saving the tabchannels

include Purk_chansave.g

//- default we do not update the config file

int bUpdateConfig = 0

// determine the hosttype for the config file

//str confighost = {ConfigHostType {cellfile} {cellpath}}

// if the config file does not correspond with OS

//if ( {getenv HOSTTYPE} != confighost )

        // give diagnostics

//      echo Config file created on {confighost},
//      echo now working on {getenv HOSTTYPE}.

        // ensure that all elements are made in the library

//      ce /library

        // make prototypes of channels

//      make_Purkinje_chans

        // remember to update the config file

//      bUpdateConfig = 1

// else we inform the user of cpu format


// give diagnostics

//echo Config file created on {getenv HOSTTYPE} system,
//echo assuming byte order is correct


/* userprefs is for loading the preferred set of prototypes into
** the library and assigning new values to the defaults.
** A customised copy of userprefs.g usually lives in  the local
** directory where the simulation is going to be run from */

//- include scripts to create the prototypes

include Purk_chanload
include Purk_cicomp
include Purk_syn

include info.g
include bounds.g
include config.g
include control.g
include xgraph.g
include xcell.g

//- ensure that all elements are made in the library

ce /library

//- make prototypes of channels and synapses


//- set the firing frequencies at the library level
//- this forces the hsolve object to reserve space for these fields

setfield /library/GABA frequency {ihertz}
setfield /library/non_NMDA frequency {phertz}

//- add fields to the library elements to respect the vivo / vitro mode

addfield /library/GABA freqmode -description "frequency operation mode"
addfield /library/non_NMDA freqmode -description "frequency operation mode"

//- set the added fields to the current vivo/vitro mode

setfield /library/GABA freqmode {iVVMode}
setfield /library/non_NMDA freqmode {iVVMode}

//- add fields to distinguish between asynchronous inhibition and excitation
//- and synchronous activation

addfield /library/GABA synmode -description "synaptic mode"
addfield /library/non_NMDA synmode -description "synaptic mode"
addfield /library/GABA2 synmode -description "synaptic mode"
addfield /library/non_NMDA2 synmode -description "synaptic mode"

//- set field to "in" for asynchronous inhibition

//! normally the stellate synapses

setfield /library/GABA synmode "in"

//- set field to "ex" for asynchronous excitation

//! normally the parallel fiber synapses

setfield /library/non_NMDA synmode "ex"

//- set field for synchronous activation

//! normally the basket axon synapses

setfield /library/GABA2 synmode "synchro"

//! normally the climbing fiber

setfield /library/non_NMDA2 synmode "synchro"

//- make prototypes of compartements and spines


//- read cell data from .p file

readcell {cellfile} {cellpath}

// if the config file needs updating

//if (bUpdateConfig)

        // update the config file

//      ConfigWrite {cellfile} {cellpath}

//- read configuration file

ConfigRead {cellfile} {cellpath}

//- initialize actions


//- initialize boundaries

BoundsInit "bounds.txt"

//- set simulation clocks

int i, j

for (i = 0; i <= 8; i = i + 1)
	setclock {i} {dt}

//- set the output clock

setclock 9 {dt * outputRate}

//- set clock for refresh elements

setclock 10 {dt * 239}

//- set delay in steps for climbing fiber

delaysteps = {delay / dt}

//- setup the hines solver

echo preparing hines solver {getdate}
ce {cellpath}
create hsolve solve

//- We change to current element solve and then set the fields of the parent
//- (solve) to get around a bug in the "." parsing of genesis

ce solve

setfield . \
        path "../##[][TYPE=compartment]" \
        comptmode 1 \
        chanmode {iChanMode} \
        calcmode 0

setfield . \
        path "../b#[][TYPE=compartment],../main[][TYPE=compartment]" \
        comptmode 1 \
        chanmode {iChanMode} \
        calcmode 0

//- create all info widgets


//- create all settings widgets


//- setup the solver with all messages from the settings

call /Purkinje/solve SETUP

//- Use method to Crank-Nicolson

setmethod 11

// setup actions


//- go back to simulation element

ce /Purkinje

//- set colorscale

xcolorscale rainbow3

//- create the xcell widget


//- create the graph widget


//- set default state


//- reset graph


//- create the control panel


//- reset simulation


//- to further initialize all elements (e.g. colors of xcell element)
//- we do one step in the simulation and then a reset

step 1

//- update the firing frequencies for stellate and parallel fibers


//- reset all elements


//! now it's up to the user to do simulations...