Cerebellum granule cell FHF (Dover et al. 2016)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:206267
"Neurons in vertebrate central nervous systems initiate and conduct sodium action potentials in distinct subcellular compartments that differ architecturally and electrically. Here, we report several unanticipated passive and active properties of the cerebellar granule cell's unmyelinated axon. Whereas spike initiation at the axon initial segment relies on sodium channel (Nav)-associated fibroblast growth factor homologous factor (FHF) proteins to delay Nav inactivation, distal axonal Navs show little FHF association or FHF requirement for high-frequency transmission, velocity and waveforms of conducting action potentials. ...'
Reference:
1 . Dover K, Marra C, Solinas S, Popovic M, Subramaniyam S, Zecevic D, D'Angelo E, Goldfarb M (2016) FHF-independent conduction of action potentials along the leak-resistant cerebellar granule cell axon. Nat Commun 7:12895 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Axon; Dendrite;
Brain Region(s)/Organism: Cerebellum;
Cell Type(s): Cerebellum interneuron granule GLU cell;
Channel(s): I A; I Calcium; I K; I K,Ca; I M; I Na,p; I Na,t; I Potassium; I Sodium; Kir;
Gap Junctions:
Receptor(s): AMPA; Gaba; NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s):
Implementer(s): Solinas, Sergio [solinas at unipv.it]; Subramaniyam, Sathyaa [sakthisathyaa at gmail.com]; D'Angelo, Egidio [dangelo at unipv.it]; Goldfarb, Mitchell goldfarb at genectr.hunter.cuny.edu];
Search NeuronDB for information about:  Cerebellum interneuron granule GLU cell; AMPA; NMDA; Gaba; I Na,p; I Na,t; I A; I K; I M; I K,Ca; I Sodium; I Calcium; I Potassium; Kir;
/
GrC_FHF_ModelDB
images
README.html
AmpaCOD.mod
GRC_CA.mod *
GRC_CALC.mod *
GRC_GABA.mod *
GRC_KA.mod *
GRC_KCA.mod *
GRC_KIR.mod *
GRC_KM.mod
GRC_KV.mod *
GRC_LKG1.mod *
GRC_LKG2.mod *
GRC_LKG3.mod
GRC_NA.mod
Grc_sine.mod
NmdaS.mod
Pregen.mod *
CClamp_soma.ses
ComPanel.hoc
Fig5.ses
Grc_Cell.hoc
helper_procedures.hoc
Ina.ses
KOFHF.DAPF.slowalfabeta.REV5.30.2016.ses
modComPanel.hoc
mosinit.hoc
Parametri.hoc
Start.hoc
WTFHF.DAPF.slowalfabeta.REV5.30.2016.ses
                            
TITLE 

COMMENT
	Reference: Pugh JR and Raman I, Biophysical Journal Volume 88, March 2005 1740-1754
	Model adapted from patch to slice.
ENDCOMMENT

NEURON {
	POINT_PROCESS GRC_GABA
	NONSPECIFIC_CURRENT i
	RANGE g,Cdur,Erev,Open,OpenScaled,ScaleFactor

	:RANGE r1,r2,kon,koff,d1,d2,a1,a2,b1,b2
	RANGE kon,koff,d3,r3,d1d2,r1r2,a1,b1,a2,b2,r1,r2,d1,d2

	RANGE Tmax,gmax,onSET	
	
	RANGE tau_1,tau_rec,tau_facil,U,T 
	RANGE diff_flag,M,Rd,Diff,lamd
	RANGE nd	
}

UNITS {
	(nA) 	= (nanoamp)
	(mV) 	= (millivolt)
	(umho)  = (micromho)
	(mM) 	= (milli/liter)
	(pS) 	= (picosiemens)
	PI   	= (pi)(1)
}

PARAMETER {
	: Parametri Postsinaptici
	gmax	=  756.35	(pS)	:1750 
	Cdur	= 0.3		(ms)	

	kon	= 20		(/ms/mM)	
	koff	= 2		(/ms) 		 
	d3	= 15		(/ms) 		 
	r3	= 3.75		(/ms) 		: 0.15, use 3.75 for slices 

	d1d2	= 15		(/ms/mM)	
	r1r2	= 0.007		(/ms)

	a1	= 0.06		(/ms)
	b1	= 0.03		(/ms)
	a2	= 0.4		(/ms)
	b2	= 10		(/ms)
	
	r1	= 7e-4		(/ms)
	r2	= 6e-3		(/ms)
	d1	= 3.3e-4	(/ms)
	d2	= 1.2		(/ms)

	Erev	= -65	(mV)

	: Parametri Presinaptici
	tau_1 		= 0.1 (ms) 	< 1e-9, 1e9 >
	tau_rec 	= 43.4 (ms) 	< 1e-9, 1e9 > 	:55.11 15.7	(first fit!)
	tau_facil 	= 6.22 (ms) 	< 0, 1e9 >    	:2.66 4.85  (first fit!)	
	U 		= 0.35		< 0, 1 >	:0.24  0.18	(first fit!)
	
	Tmax	= 1  (mM)	
	onSET	= 1
		
	: Diffusion parameters
	: Diffusion: M=21.500, R=1.033, D=0.223, lamd=0.02 as in excitatory synapses	

	M		= 52.76		:	46.93			: 20.95 (first fit!)
: numero di (kilo) molecole in una vescicola		
	Rd		= 4.79 (um)	:4.96	: 4.96 (first fit!)
	Diff		= 0.223 (um2/ms)
	lamd		= 20 	(nm)
	diff_flag	= 1			: flag diffusion on/off
	nd		= 1			: kernel exponent of diffusion

	ScaleFactor	= 1 			: for fit purposes
}


ASSIGNED {
	v		(mV)		: postsynaptic voltage
	i 		(nA)		: current = g*(v - Erev)
	g 		(pS)		: conductance
	Open
	OpenScaled	: for fit purposes
	
	T		(mM)	
	Trelease	(mM)
	Mres		(mM)	
	tpre		(ms)

	tspike[50]	(ms)	: will be initialized by the pointprocess
	PRE[50]
	numpulses
	tzero
}

STATE {	
	C
	CA1
	CA2
	DA1
	DA2
	DA2f
	OA1
	OA2	
}

INITIAL {
	C=1
	CA1=0
	CA2=0
	DA1=0
	DA2=0
	DA2f=0
	OA1=0  	
	OA2=0
	CA1=0
	CA2=0
	Open=0
	T=0 		(mM)
	:tpre=1e8	(ms)
		
	numpulses=0
	Mres=1e3* (1e3 * 1e15 / 6.022e23 * M)     : (M) to (mM) so 1e3, 1um^3=1dm^3*1e-15 so 1e15
	FROM i=1 TO 50{ PRE[i-1]=0 tspike[i-1]=0}
	tspike[0]=1e12	(ms)
	if(tau_1>=tau_rec){ 
		printf("Warning: tau_1 (%g) should never be higher neither equal to tau_rec (%g)!\n",tau_1,tau_rec)
		tau_rec=tau_1+1e-5
		:printf("tau_rec has been set to %g\n",tau_rec) 
	} 
}

FUNCTION diffusione(){
	LOCAL DifWave,i	
	DifWave=0
	FROM i=1 TO numpulses{
		tzero=tspike[i-1]
		if(t>tzero){
			DifWave=DifWave+PRE[i-1]*Mres*exp(-Rd*Rd/(4*Diff*(t-tzero)))/((4*PI*Diff*(1e-3)*lamd)*(t-tzero))^nd
		}
	}	
	diffusione=DifWave :Mres*exp(-Rd*Rd/(4*Diff*(t-tpre)))/((4*PI*Diff*(1e-3)*lamd)*(t-tpre))	
}


BREAKPOINT {
	SOLVE kstates METHOD sparse
	Open = OA1 + OA2
	OpenScaled=Open*ScaleFactor
	g = gmax * Open
	i = (1e-6) * g * (v - Erev)
}

KINETIC kstates {
	if ( diff_flag ) { Trelease = T + diff_flag * diffusione() } else { Trelease = T }
	: second row
	~	C  	<-> 	CA1	(2*kon*Trelease,koff)
	~	CA1 	<-> 	CA2	(kon*Trelease,2*koff)
	~	CA2	<->	DA2f	(d3,r3)
	: third row
	~ 	DA1  	<-> 	DA2	(d1d2*Trelease,r1r2)
	: first <=> second row
	~ 	OA1  	<-> 	CA1	(a1,b1)
	~ 	OA2  	<-> 	CA2	(a2,b2)
	: third <=> second row
	~	DA1	<->	CA1	(r1,d1)
	~	DA2	<->	CA2	(r2,d2)
	CONSERVE C+CA1+CA2+DA1+DA2+DA2f+OA1+OA2 = 1
}


NET_RECEIVE(weight, on, nspike, tzero (ms),x,y, z, u, tsyn (ms)) {

	INITIAL {
		x = 0
		y = 0
		z = 0
		u = 0 :u0
		tsyn = t
		nspike = 1
	}

	if(onSET){on=0 onSET=0}
        if (flag == 0) { 
		: Qui faccio rientrare la modulazione presinaptica
		nspike = nspike + 1
		if (!on) {
			tzero = t	
			tpre=t	: activates diffusion
			on = 1				
			z = z*exp(-(t - tsyn)/tau_rec)		
			z = z + ( y*(exp(-(t - tsyn)/tau_1) - exp(-(t - tsyn)/tau_rec)) / ((tau_1/tau_rec)-1) )
			y = y*exp(-(t - tsyn)/tau_1)			
			x = 1-y-z
				
			if (tau_facil > 0) { 
				u = u*exp(-(t - tsyn)/tau_facil)
				u = u + U * ( 1 - u )							
			} else { u = U }
			
			y = y + x * u
			T=Tmax*y
				
			PRE[numpulses]=y
			tspike[numpulses]=t
			numpulses=numpulses+1
			tsyn = t			
		}
		net_send(Cdur, nspike)
        }
	if (flag == nspike) { 
			T = 0
			on = 0
	}
}