A fast model of voltage-dependent NMDA Receptors (Moradi et al. 2013)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:145836
These are two or triple-exponential models of the voltage-dependent NMDA receptors. Conductance of these receptors increase voltage-dependently with a "Hodgkin and Huxley-type" gating style that is also depending on glutamate-binding. Time course of the gating of these receptors in response to glutamate are also changing voltage-dependently. Temperature sensitivity and desensitization of these receptor are also taken into account. Three previous kinetic models that are able to simulate the voltage-dependence of the NMDARs are also imported to the NMODL. These models are not temperature sensitive. These models are compatible with the "event delivery system" of NEURON. Parameters that are reported in our paper are applicable to CA1 pyramidal cell dendrites.
Reference:
1 . Moradi K, Moradi K, Ganjkhani M, Hajihasani M, Gharibzadeh S, Kaka G (2013) A fast model of voltage-dependent NMDA receptors. J Comput Neurosci 34:521-31 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Synapse;
Brain Region(s)/Organism: Neocortex; Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Channel(s):
Gap Junctions:
Receptor(s): NMDA; Glutamate;
Gene(s): NR2B GRIN2B;
Transmitter(s): Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Ion Channel Kinetics; Simplified Models; Long-term Synaptic Plasticity; Methods;
Implementer(s): Moradi, Keivan [k.moradi at gmail.com];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; NMDA; Glutamate; Glutamate;
/* In our experiments we understand that voltage dependent change in
the condunctance of NMDAR alone cannot explain the voltage-dependnent change 
in the time constant: we understand that in a double-exponential model
tau1 and tau2 are also voltage dependent
tau1 has a exponential dacey in responce to voltage
tau2 has a exponential rise to a maximum in responce to voltage

Using data from Spruston95 data, in this experiment we want to find 
an estimate of these parameters in CA1 pyramidal cells.

note: SynExp3NMDA2.mod model resets itself after 590 ms from the start of
the simulation so that we can fit our model to both recordings at the same time
*/
load_file("nrngui.hoc")
load_file("params.hoc")

//fully activates cache efficiency
cvode.cache_efficient(1)  

tstop = 1200
dt = .025
celsius = 18	//room temperature in spruston95 experiment
v_init = 40

A1 = 1.5006
A2 = 27.954
Tau1_0 = 3.531
Tau2_0 = 462.39
SynWeight = 0.55376

// ------------------
create soma
access soma

objref sNMDA, stim, nc
stim = new NetStim(.5)
	stim.interval = 600	//ms (mean) time between spikes
	stim.number = 3	//(average) number of spikes
	stim.start 	= 0	//ms (most likely) start time of first spike
	stim.noise 	= 0		//---- range 0 to 1. Fractional randomness.
	//0 deterministic, 1 intervals have negexp distribution.
sNMDA = new Exp3NMDA2(.5)
nc = new NetCon(stim, sNMDA)

proc init_NMDA() {
	sNMDA.a1 = A1
	sNMDA.tau1_0 = Tau1_0
	sNMDA.a2 = A2
	sNMDA.tau2_0 = Tau2_0
	
	nc.weight = SynWeight
	nc.delay = .001
}
objref FinNMDA
FinNMDA = new FInitializeHandler(3,"init_NMDA()")
	
//----------------------------------------------------	
objref vc, vscr, tvec

vscr = new Vector(12)
tvec = new Vector(12)

vscr.x[0] = 40
tvec.x[0] = 0

vscr.x[1] = -80
tvec.x[1] = 510

vscr.x[2] = 40
tvec.x[2] = 647.175

vscr.x[3] = -80
tvec.x[3] = 652.743

vscr.x[4] = 40
tvec.x[4] = 745.74

vscr.x[5] = -80
tvec.x[5] = 751.352

vscr.x[6] = 40
tvec.x[6] = 845.027

vscr.x[7] = -80
tvec.x[7] = 850.629

vscr.x[8] = 40
tvec.x[8] = 944.315

vscr.x[9] = -80
tvec.x[9] = 950.179

vscr.x[10] = 40
tvec.x[10] = 1044.6659

vscr.x[11] = -80
tvec.x[11] = 1049.6795

vc = new VClamp(.5)
	vc.dur[0] = tstop
	vscr.play(&vc.amp[0],tvec)
/*
objref iNMDA, vSoma
iNMDA = new Graph()
iNMDA.size(0,tstop,-1,50)
iNMDA.addvar("sNMDA.i",3,0)
iNMDA.save_name("graphList[0].")
graphList[0].append(iNMDA)

vSoma = new Graph()
vSoma.size(0,tstop,-100,50)
vSoma.addvar("soma.v(.5)",3,0)
vSoma.save_name("graphList[0].")
graphList[0].append(vSoma)
*/

load_file("MRFExp3SynFull.ses")

// objref iNMDA, iFile, time, tFile
// iNMDA = new Vector()
// iNMDA.record(&sNMDA.i)
// iFile = new File("iFile.dat")
// iFile.wopen("iFile.dat")

// time = new Vector()
// time.record(&t)
// tFile = new File("tFile.dat")
// tFile.wopen("tFile.dat")

// init()
// run()

// iNMDA.printf(iFile)
// iFile.close()

// time.printf(tFile)
// tFile.close()