Cortical pyramidal neuron, phase response curve (Stiefel et al 2009)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:144372
Three models of increasing complexity all showing a switch from type II (biphasic) to type I (monophasic) phase response curves with a cholinergic down-modulation of K+ conductances.
Reference:
1 . Stiefel KM, Gutkin BS, Sejnowski TJ (2009) The effects of cholinergic neuromodulation on neuronal phase-response curves of modeled cortical neurons. J Comput Neurosci 26:289-301 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type:
Brain Region(s)/Organism:
Cell Type(s): Neocortex L2/3 pyramidal GLU cell;
Channel(s): I Na,p; I Na,t; I M;
Gap Junctions:
Receptor(s): Muscarinic;
Gene(s):
Transmitter(s): Acetylcholine;
Simulation Environment: NEURON;
Model Concept(s): Action Potentials;
Implementer(s): Stiefel, Klaus [stiefel at salk.edu];
Search NeuronDB for information about:  Neocortex L2/3 pyramidal GLU cell; Muscarinic; I Na,p; I Na,t; I M; Acetylcholine;
/
StiefelEtAl2009
README.txt
ca.mod *
cacum.mod
cad.mod *
H.mod
iahp2.mod *
il.mod *
im.mod *
KA.mod
kca.mod *
Kdr.mod
km.mod *
Ks.mod
kv.mod *
Na.mod *
NaP.mod
cell.ses
displayshape.hoc
fig4A.hoc
fig4A_new.hoc
fig5A.hoc
fig5B.hoc
fig5C.hoc
gui.hoc
j8.hoc *
ksprc.ses
makeIF.hoc
multi.hoc
PRC.hoc
PRCsweep.hoc
PY-golomb_original.hoc
PY-golomb_plus.hoc
PY-golomb_simple.hoc
PyMainen.hoc
single.hoc
single_plus.hoc
single1.ses
surface.hoc
synproxy_cch.hoc
synproxy_sweeps.hoc
                            
// determination of a 
// phase-response curve of a neuron
// K. M. Stiefel, CNL, Salk, 2004

steps=64

objref prc[100], prcplot, xvec
nrprc=0

prcplot = new Graph()
prcplot.exec_menu("Keep Lines")

xvec = new Vector()
for k=1, steps { xvec.append(k/steps*2*PI) }

proc makeprc() {
	
	prc[nrprc]= new Vector()
	
	spikesouttimes = new Vector()
	spikesout.record(spikesouttimes)
	
	// 1. determine spikenr where stationarity is reached
	// set simulation run length to that time
	
	tstop=2000 
	input.start=2001
	
	init()
	run()

	n=2
	while ((spikesouttimes.x[n]-spikesouttimes.x[n-1])-(spikesouttimes.x[n-1]-spikesouttimes.x[n-2])>(spikesouttimes.x[n]-spikesouttimes.x[n-1])/50) { n=n+1 }
	stable=n
	tstop=spikesouttimes.x[n+1]						
	delay=spikesouttimes.x[stable-1]
	isi=spikesouttimes.x[stable]-spikesouttimes.x[stable-1]
	
	print "ISIs stationary after spike ", n
	print "at a frequency of ", 1/isi*1000, "Hz"

	// determine PRC
	// vary stimulus time from delay to delay+isi

	for phase=0, steps {
			spikesouttimes = new Vector()
			spikesout.record(spikesouttimes)
				
			input.start=delay+isi*phase/steps

			init()
			run()
			prc[nrprc].append(-(spikesouttimes.x[stable]-spikesouttimes.x[stable-1]-isi)/isi)
			}

	for j=0, nrprc { prc[j].plot(prcplot, xvec) }
	nrprc=nrprc+1
}