Alcohol action in a detailed Purkinje neuron model and an efficient simplified model (Forrest 2015)

 Download zip file 
Help downloading and running models
Accession:180789
" ... we employ a novel reduction algorithm to produce a 2 compartment model of the cerebellar Purkinje neuron from a previously published, 1089 compartment model. It runs more than 400 times faster and retains the electrical behavior of the full model. So, it is more suitable for inclusion in large network models, where computational power is a limiting issue. We show the utility of this reduced model by demonstrating that it can replicate the full model’s response to alcohol, which can in turn reproduce experimental recordings from Purkinje neurons following alcohol application. ..."
Reference:
1 . Forrest MD (2015) Simulation of alcohol action upon a detailed Purkinje neuron model and a simpler surrogate model that runs >400 times faster. BMC Neurosci 16:27 [PubMed]
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: Cerebellum;
Cell Type(s): Cerebellum Purkinje GABA cell;
Channel(s): I Na,t; I T low threshold; I A; I K; I K,leak; I M; I h; I K,Ca; I Sodium; I Calcium; I Potassium; I A, slow; I_HERG; Na/Ca exchanger; Na/K pump; I_AHP; I Cl, leak; I Na, leak; I Ca,p; I_KD; Ca pump;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Activity Patterns; Dendritic Action Potentials; Bursting; Ion Channel Kinetics; Oscillations; Simplified Models; Active Dendrites; Influence of Dendritic Geometry; Detailed Neuronal Models; Sodium pump; Depolarization block; Dendritic Bistability; Markov-type model; Alcohol Use Disorder;
Implementer(s): Forrest, Michael [mikeforrest at hotmail.com];
Search NeuronDB for information about:  Cerebellum Purkinje GABA cell; I Na,t; I T low threshold; I A; I K; I K,leak; I M; I h; I K,Ca; I Sodium; I Calcium; I Potassium; I A, slow; I_HERG; Na/Ca exchanger; Na/K pump; I_AHP; I Cl, leak; I Na, leak; I Ca,p; I_KD; Ca pump;
/
Forrest2015
collapse_algorithm
README.txt
bkpkj.mod *
cad.mod *
cadiff.mod *
cae.mod *
cap2.mod *
captain.mod *
cat.mod *
cha.mod *
erg.mod *
gkca.mod *
hpkj.mod *
k23.mod *
ka.mod *
kc3.mod *
kd.mod *
kdyn.mod *
khh.mod *
km.mod *
kpkj.mod *
kpkj2.mod *
kpkjslow.mod *
kv1.mod *
leak.mod *
lkpkj.mod *
myexchanger.mod *
myexchangersoma.mod *
mypump.mod *
mypumpsoma.mod *
nadifl.mod *
narsg.mod *
newnew.mod *
pump.mod *
2_compartment.hoc
full.ses *
full_data_writer.hoc
full_morph.hoc
lesbos.ses *
mex.hoc
mosinit.hoc
mosinit_full.hoc
mosinit_simple.hoc
simple_data_writer.hoc
                            
COMMENT
: FORREST MD (2014) Two Compartment Model of the Cerebellar Purkinje Neuron
Longitudinal diffusion of sodium (no buffering)
(equivalent modified euler with standard method and
equivalent to diagonalized linear solver with CVODE )
ENDCOMMENT

NEURON {
	SUFFIX nadifl
	USEION na READ ina WRITE nai, ena
:        USEION Na READ iNa WRITE Nai VALENCE 1
	RANGE D, Nai, Total, neo, tau
}

UNITS {
	(mM) = (milli/liter)
	(um) = (micron)
	FARADAY = (faraday) (coulomb)
	PI = (pi) (1)
}

PARAMETER {
	D = .6 (um2/ms)
         k1buf = 0.01          : 1000                    : 
        k2buf =  0          : 1000                   :   
: the smaller these numbers the less equilibriated these are. 
: 0.001 gets a seperation of 3. though note that the seperation grows over time.  
: 0.0001 see a seperation of 10 after a while
       tau = 5000 (ms)
}

ASSIGNED {
	ina (milliamp/cm2)
	diam (um)
        iNa (milliamp/cm2)
        Total (mM)
        neo (milliamp/cm2)
        ena (mV)
}

STATE {
	nai (mM)
        Nai (mM)
}

INITIAL {
lates()
:	nai = 6
nai = 10
Nai = 10
Total = 20
neo = ina	
}

BREAKPOINT {
	SOLVE conc METHOD sparse
}

KINETIC conc {
        lates()
	COMPARTMENT PI*diam*diam/4 {nai}
	LONGITUDINAL_DIFFUSION D {nai}
~ nai << (-neo/(FARADAY)*PI*diam*(1e4))

:	~ nai << (-ina/(FARADAY)*PI*diam*(1e4))
:        ~ Nai << (-iNa/(FARADAY)*PI*diam*(1e4))
:        ~ nai <-> Nai (k1buf,k2buf)
: Total = nai + Nai + ina + iNa
: ~ nai << ((-ina/(FARADAY)*PI*diam*(1e4))/6)
: ~ nai << ((-ina/(FARADAY)*PI*diam*(1e4))+(10-nai)/0.3)
}


PROCEDURE lates() {
LAG ina BY tau
  neo = lag_ina_tau
if (ena < 70) {ena = 70}
if (nai < 10) {nai = 10}
}

Loading data, please wait...