ModelDB is moving. Check out our new site at https://modeldb.science. The corresponding page is https://modeldb.science/266864.

Multiplexed coding in Purkinje neuron dendrites (Zang and De Schutter 2021)

 Download zip file 
Help downloading and running models
Accession:266864
Neuronal firing patterns are crucial to underpin circuit level behaviors. In cerebellar Purkinje cells (PCs), both spike rates and pauses are used for behavioral coding, but the cellular mechanisms causing code transitions remain unknown. We use a well-validated PC model to explore the coding strategy that individual PCs use to process parallel fiber (PF) inputs. We find increasing input intensity shifts PCs from linear rate-coders to burst-pause timing-coders by triggering localized dendritic spikes. We validate dendritic spike properties with experimental data, elucidate spiking mechanisms, and predict spiking thresholds with and without inhibition. Both linear and burst-pause computations use individual branches as computational units, which challenges the traditional view of PCs as linear point neurons. Dendritic spike thresholds can be regulated by voltage state, compartmentalized channel modulation, between-branch interaction and synaptic inhibition to expand the dynamic range of linear computation or burst-pause computation. In addition, co-activated PF inputs between branches can modify somatic maximum spike rates and pause durations to make them carry analogue signals. Our results provide new insights into the strategies used by individual neurons to expand their capacity of information processing.
Reference:
1 . Zang Y, De Schutter E (2021) The Cellular Electrophysiological Properties Underlying Multiplexed Coding in Purkinje Cells. J Neurosci [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Dendrite; Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Cerebellum;
Cell Type(s): Cerebellum Purkinje GABA cell;
Channel(s): I T low threshold; I Na,p; I h; I Potassium; I Sodium; I p,q; I K,Ca;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Dendritic Action Potentials; Detailed Neuronal Models; Synaptic Integration; Temporal Coding; Reaction-diffusion;
Implementer(s): Zang, Yunliang ;
Search NeuronDB for information about:  Cerebellum Purkinje GABA cell; I Na,p; I T low threshold; I p,q; I h; I K,Ca; I Sodium; I Potassium;
/
purkinje_pf_source_code
mod
BK_Slow.mod *
CaP.mod *
capmax.mod *
CaT.mod *
cdp_AIS.mod *
cdp_smooth.mod *
cdp_soma.mod *
cdp_spiny.mod *
distr.mod
ih.mod *
Kv1.mod *
kv3.mod *
kv4f.mod *
kv4s.mod *
mslo.mod *
nap.mod *
narsg.mod *
peak.mod *
pkjlk.mod *
SK2.mod *
syn2.mod *
                            
TITLE peak.mod

COMMENT 
pk: record peak time and peak value of membrane potential
Michael Hausser & Arnd Roth                     25.9.1997
Philipp Vetter	modified last			30.12.1998
Mickey 	London	modified last			30.12.1998

vpeak/tpeak are locked to first peak
dvdt2 is for time t - 2*dt
AP measurements		dvdtmax, dvdtmaxII, onset, vonset, halfwidth, vhalf, vrest, dVdr
electrotonic lengths	X, Xsec
impedance mismatch	Zmismatch, Rmismatch, aZmismatch, aRmismatch, f

Copyright (C) 2001  Philipp Vetter, Arnd Roth and Michael Hausser

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
ENDCOMMENT

UNITS {
	(mV) = (millivolt)
	(Mohms) = (megohms)
}

INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}

NEURON {
	SUFFIX pk
	RANGE tpeak, vpeak, vpeakm,tpeakdvdt
	RANGE dvdtpeak, dvdt2peak, onset_ref, onset, vonset, halfwidth, vhalf, vrest, dvdr
	RANGE Zmismatch, Rmismatch, aZmismatch, aRmismatch, f
	RANGE Zback, Rback, aZback, aRback
	RANGE Zfwd, Rfwd, aZfwd, aRfwd
	RANGE Z, R, aZ, aR
	RANGE Xsec, Xfrc, Xlen, Xo, sign
	RANGE dvdt2,dvdt
	RANGE thresh
}

PARAMETER {
	vhalf (mV)
	v (mV)
	dt (ms)
}

ASSIGNED {
	tpeak (ms)
	tpeakdvdt (ms)
	vpeak (mV)
	vpeakm (mV)
	dvdt (ms)
	dvdt2 (mV/ms*ms)
	dvdt2peak (mV/ms*ms)
	dvdtpeak (mV/ms)
	onset_ref (mV/ms)
	onset (ms)
	v1 (mV)
	v2 (mV)
	v3 (mV)
	vonset (mV)
	halfwidth (ms)
	below
	below_old
	upstroke (ms)
	downstroke (ms)
	dvdr     (mv/micron)
	vrest (mV)
	Rmismatch     (1)
	Zmismatch     (1)
	Rback   (Mohm)
	Zback   (Mohm)
	Rfwd    (Mohm)
	Zfwd    (Mohm)
	R     	(Mohm)
	Z     	(Mohm)


	aRmismatch  (1)
	aZmismatch  (1)
	aRback  (Mohm)
	aZback  (Mohm)
	aRfwd   (Mohm)
	aZfwd   (Mohm)
	aR     	(Mohm)
	aZ     	(Mohm)




	f     (0.001/ms)
	Xo 	(1)
	Xlen    (1)
	Xsec	(1)
	Xfrc	(1)
	sign	(1)
	thresh (nA)
}

INITIAL {
	tpeak = 0 (ms)
	tpeakdvdt = 0 (ms)
	vpeak = -100 (mV)
	vpeakm = -100 (mV)
	onset = 0    (ms)
	dvdtpeak  = 0 (mV/ms)
	dvdt2peak  = 0 (mV/ms)
	downstroke = 0 (ms)
	upstroke   = 0 (ms)
	vrest = v
	check()
}

BREAKPOINT {	SOLVE check  }


PROCEDURE check() {
			if (v > vpeak && vpeakm==-100) { tpeak = t
					 		 vpeak = v }

			if (v+4 < vpeak) { vpeakm = 1 }

			v1        = v2
			v2        = v3
			v3        = v
		        dvdt	  = (v3 - v2)/(dt)
			dvdt2	  = (v3 - 2*v2 +v1)/(dt*dt)
			if (t < 1)  {
			dvdt2 =0
			}
			

			if (dvdt > dvdtpeak) 			      	{ 
			   	   					  dvdtpeak = dvdt 
			   	   					  tpeakdvdt = t	     	  
									}
			if (dvdt2 > dvdt2peak) 			      	{ dvdt2peak = dvdt2 }

			if (dvdt > onset_ref && onset == 0 && t > 1) 	{ onset  = t-dt
							                  vonset = v2 }
			below     = 0	
			if (vhalf > v) {below = 1}
			if (below == 0 && below_old == 1 && upstroke == 0)   {upstroke = t}
			if (below == 1 && below_old == 0 && downstroke == 0) {downstroke = t}

			halfwidth = downstroke - upstroke
			below_old = below
}

Loading data, please wait...