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
                            
TITLE BK calcium-activated potassium current
: Calcium activated K channel.
: FORREST MD (2014) Two Compartment Model of the Cerebellar Purkinje Neuron

COMMENT
  from "An Active Membrane Model of the Cerebellar Purkinje Cell
        1. Simulation of Current Clamp in Slice"
ENDCOMMENT

UNITS {
	(molar) = (1/liter)
}

UNITS {
	(mV) =	(millivolt)
	(mA) =	(milliamp)
	(mM) =	(millimolar)
}


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

NEURON {
	SUFFIX kc3
	USEION ca READ cai
	USEION k READ ek WRITE ik
	RANGE gkbar,gk,zinf,ik
}


PARAMETER {
	celsius=37	(degC)
	v		(mV)
	gkbar=.08	(mho/cm2)	: Maximum Permeability
	cai = .04e-3	(mM)
:	ek  = -85	(mV)
	dt		(ms)
}


ASSIGNED {
	ik		(mA/cm2)
	minf
	mexp
	zinf
	zexp
	gk
        ek (mV)
}

STATE {	m z }		: fraction of open channels

BREAKPOINT {
	SOLVE state
:	gk = gkbar*m*z*z
	ik = gkbar*m*z*z*(v - ek)
}
:UNITSOFF
:LOCAL fac

:if state_cagk is called from hoc, garbage or segmentation violation will
:result because range variables won't have correct pointer.  This is because
: only BREAKPOINT sets up the correct pointers to range variables.
PROCEDURE state() {	: exact when v held constant; integrates over dt step
	rate(v, cai)
	m = m + mexp*(minf - m)
	z = z + zexp*(zinf - z)
	VERBATIM
	return 0;
	ENDVERBATIM
}

INITIAL {
	rate(v, cai)
	m = minf
	z = zinf
}

FUNCTION alp(v (mV), ca (mM)) (1/ms) { :callable from hoc
	alp = 400/(ca*1000)
}

FUNCTION bet(v (mV)) (1/ms) { :callable from hoc
	bet = 0.11/exp((v-35)/14.9)
}

PROCEDURE rate(v (mV), ca (mM)) { :callable from hoc
	LOCAL a,b
	a = alp(v,ca)
	zinf = 1/(1+a)
	zexp = (1 - exp(-dt/10))
	b = bet(v)
	minf = 7.5/(7.5+b)
	mexp = (1 - exp(-dt*(7.5+b)))
}
:UNITSON

Loading data, please wait...