Synthesis of spatial tuning functions from theta cell spike trains (Welday et al., 2011)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:129067
A single compartment model reproduces the firing rate maps of place, grid, and boundary cells by receiving inhibitory inputs from theta cells. The theta cell spike trains are modulated by the rat's movement velocity in such a way that phase interference among their burst pattern creates spatial envelope function which simulate the firing rate maps.
Reference:
1 . Welday AC, Shlifer IG, Bloom ML, Zhang K, Blair HT (2011) Cosine directional tuning of theta cell burst frequencies: evidence for spatial coding by oscillatory interference. J Neurosci 31:16157-76 [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:
Cell Type(s): Hippocampus CA1 pyramidal GLU cell; Hippocampus CA3 pyramidal GLU cell; Entorhinal cortex stellate cell;
Channel(s): I Na,p;
Gap Junctions:
Receptor(s): GabaA; AMPA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON; MATLAB;
Model Concept(s): Synchronization; Envelope synthesis; Grid cell; Place cell/field;
Implementer(s): Blair, Hugh T.;
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; Hippocampus CA3 pyramidal GLU cell; GabaA; AMPA; I Na,p; Gaba; Glutamate;
/
Welday_et_al
Welday_et_al_Fig9AB
README.txt
ampa.mod *
Nap.mod *
vecevent.mod *
lintrack25_1.dat
lintrack25_2.dat
lintrack25_3.dat
lintrack25_4.dat
lintrack25_5.dat
lintrack25_6.dat
lintrack25_7.dat
lintrack25_8.dat
lintrackB25_1.dat
lintrackB25_2.dat
lintrackB25_3.dat
lintrackB25_4.dat
lintrackB25_5.dat
lintrackB25_6.dat
lintrackB25_7.dat
lintrackB25_8.dat
lintrackC25_1.dat
lintrackC25_2.dat
lintrackC25_3.dat
lintrackC25_4.dat
lintrackC25_5.dat
lintrackC25_6.dat
lintrackC25_7.dat
lintrackC25_8.dat
lintrackD25_1.dat
lintrackD25_2.dat
lintrackD25_3.dat
lintrackD25_4.dat
lintrackD25_5.dat
lintrackD25_6.dat
lintrackD25_7.dat
lintrackD25_8.dat
placetrack_GABAinputs_Fig9A.ses
placetrack_GABAinputs_Fig9B.ses
placetrack_vecstims_Fig9A.ses
placetrack_vecstims_Fig9B.ses
read_thetaspikes_Fig9A.hoc
read_thetaspikes_Fig9B.hoc
RUNSIM_FIG9A.hoc
RUNSIM_FIG9B.hoc
savespikes.hoc *
savevm.hoc
                            
// This hoc file reproduces simulations of a place cell on a linear track formed from 32 excitatory theta cell inputs
// (Fig. 9B of Welday et al.)
// 
// Theta cell spike trains (shown in the Fig. 9B rasters) are read into NEURON from disk by the accompanying hoc file:
//  read_thetaspikes_Fig9B.hoc. 
// 
//To save the postsynaptic neuron's (place cell's) spike times, type:
//
//   >>load_file("savespikes.hoc")
//
//at the interpreter prompt after the simulation has finished running. Spikes will be saved in a file called 'SPIKOUT.dat'.  
//
//To save the postsynaptic neuron's (place cell's) membrane voltage trace, type:
//
//   >>load_file("savevm.hoc")
//
//at the interpreter prompt after the simulation has finished running. Spikes will be saved in a file called 'VmOUT.dat'.  


load_file("nrngui.hoc")

// -----------------------------------------------------------------
// read theta cell spike trains from disk files into NEURON vectors
// -----------------------------------------------------------------

load_file("placetrack_vecstims_Fig9B.ses") 	//create vecstim objects for delivering theta spike trains to the model neuron

numinputs = 32				//number of inhibitory theta inputs to the model neuron

objref evec[numinputs] 			//array of event vectors (VecStim.mod) for reading theta spike trains
objref spikefile       			//file object through which to read in theta cell spike times from disk
objref pplist          			//list of point processes containing theta spike trains
objref vmvec
objref vmfile

spikefile = new File()
pplist = new List()

vmfile = new File()


load_file("read_thetaspikes_Fig9B.hoc")  //read in theta cell spike timestamps from files
simlength=1000*200/25


// --------------------------------------------------------------
// build a single-compartment postsynaptic cell
// --------------------------------------------------------------

ra        = 150 	// axial resistance through cytoplasm (ohms)
global_ra = ra		
rm        = 15000 	// passive membrane resistance (ohms) 
c_m       = 1   	// membrane capacitance (microFarads per centimeter squared, uF/cm^2)

create soma		//single somatic compartment
access soma

PI=3.14159
{L=10/PI  diam=10}
nseg=1
Ra = ra
cm = c_m 

vmvec = new Vector()
vmvec.record(&v(.5))

//Insert voltage-activated persistent sodium current (Nap.mod)
    insert nap
    gbar_nap=.00005	//Nap conductance
    sh_nap=-10		//Nap voltage activation threshold shift parameter (mV)

//Insert Hodkin-Huxley kinetics (hh.mod, standard NEURON mechanism)
    insert hh
 
    gkbar_hh=.005	//delayed rectifier K+ conductance
    gnabar_hh=.05	//voltage-gated Na+ conductance
    el_hh=-65		//leak reversal potential 
    gl_hh=1/rm		//leak conductance

// --------------------------------------------------------------
// connect theta spike train inputs to the model neuron
// --------------------------------------------------------------

objref nclist          			//list of netcon objects for synaptic connections
nclist = new List()

load_file("placetrack_GABAinputs_Fig9B.ses") 	//synaptic currents

// Uncomment the following two lines to run the simulation with excitatory theta cell inputs (uncomment for inhibitory inputs):
synw=.0000017			//set conductance of AMPA synapses
gbar_nap=0			//uncomment to shut off Nap conductance

// Uncomment the following three lines to run the simulation with inhibitory theta cell inputs (comment for excitatory inputs):
//Erev_AMPA_S=-80			//set reversal potential to -80 mV to convert the AMPA synapse to GABA
//Beta_AMPA_S=.12			//slow down the decay time a little bit for GABA currents
//synw=.001			//set conductance of GABA synapses

// Uncomment the following two lines to disable active currents and run the simulation without spikes (comment to run with spikes):   
//gkbar_hh=0			//delayed rectifier K+ conductance
//gnabar_hh=0			//voltage-gated Na+ conductance

for i=0,numinputs-1 {
	nclist.append(new NetCon(pplist.o(i), AMPA_S[i], -20, 1, synw)) //make the input connections
}

tstop=simlength

// ------------------------------------------------------------------------
// store model neuron's spike times in a vector to be saved later if needed
// ------------------------------------------------------------------------

objref spiketimes	//vector in which to store timestamps of spikes generated by the model neuron
objref spikenc		//netcon object through which spikes are passed into the 'spiketimes' vector
objref null		//null object

spiketimes = new Vector()
spikenc = new NetCon(&v(0.5), null)
spikenc.threshold = -25    // store a spike timestamp if the postsynaptic membrane voltage exceeds -25 mV
spikenc.record(spiketimes) // record the spike times to the 'spiketimes' vector


Loading data, please wait...