Engaging distinct oscillatory neocortical circuits (Vierling-Claassen et al. 2010)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:141273
"Selective optogenetic drive of fast-spiking (FS) interneurons (INs) leads to enhanced local field potential (LFP) power across the traditional “gamma” frequency band (20–80 Hz; Cardin et al., 2009). In contrast, drive to regular-spiking (RS) pyramidal cells enhances power at lower frequencies, with a peak at 8 Hz. The first result is consistent with previous computational studies emphasizing the role of FS and the time constant of GABAA synaptic inhibition in gamma rhythmicity. However, the same theoretical models do not typically predict low-frequency LFP enhancement with RS drive. To develop hypotheses as to how the same network can support these contrasting behaviors, we constructed a biophysically principled network model of primary somatosensory neocortex containing FS, RS, and low-threshold spiking (LTS) INs. ..."
Reference:
1 . Vierling-Claassen D, Cardin JA, Moore CI, Jones SR (2010) Computational modeling of distinct neocortical oscillations driven by cell-type selective optogenetic drive: separable resonant circuits controlled by low-threshold spiking and fast-spiking interneurons. Front Hum Neurosci 4:198 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Neocortex;
Cell Type(s): Neocortex L2/3 pyramidal GLU cell; Neocortex fast spiking (FS) interneuron; Neocortex spiking regular (RS) neuron; Neocortex spiking low threshold (LTS) neuron;
Channel(s): I Na,t; I T low threshold; I K; I M; I h; I K,Ca; I Calcium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Oscillations; Detailed Neuronal Models; Brain Rhythms; Evoked LFP; Touch;
Implementer(s): Vierling-Claassen, Dorea ;
Search NeuronDB for information about:  Neocortex L2/3 pyramidal GLU cell; I Na,t; I T low threshold; I K; I M; I h; I K,Ca; I Calcium;
/
Vierling-ClaassenEtAl2010
batchsims
confiles
README
ar.mod
ca.mod *
cad.mod *
cat.mod
fdsexp2syn.mod *
Gfluct.mod *
gnetstim.mod
kca.mod *
km.mod *
kv.mod *
na_2.mod
light_batch_FSdrive.hoc
light_genconn_DB.m
lightgamma_drive_DB.hoc
lightgamma_init_DB.hoc
lightgamma_LFP_DB.hoc
lightgamma_localconn_DB.hoc
lightgamma_network_DB.hoc
lightgamma_noise_DB.hoc
lightgamma_wiring_DB.hoc
lightgamma_wiring_proc_DB.hoc
                            
// Code for simulations described in:

// Front Hum Neurosci. 2010 Nov 22;4:198. Computational modeling of distinct 
// neocortical oscillations driven by cell-type selective optogenetic drive: 
// separable resonant circuits controlled by low-threshold spiking and 
// fast-spiking interneurons. Vierling-Claassen D, Cardin
// JA, Moore CI, Jones SR.

// Primary author Dorea Vierling-Claassen (dorea@brown.edu), in consultation 
// with Mike Sikora & based on previous work by Stephanie R. Jones, 2009 & 2010

// This file generates 11 600 ms trials with excitatory light drive to fast
// spiking cells, one baseline, and 10 driven at frequencies between 8 and 80 Hz

load_file("nrngui.hoc")
load_file("lightgamma_init_DB.hoc")

strdef FN0, FN1, FN2, FN3, FN4, FN5, FN6, FN7, FN8, FN9, FN10

//--------------
// Output file names, one file for each drive frequency
//--------------

FN0="batchsims/FS0.dat" //
FN1="batchsims/FS8.dat" //
FN2="batchsims/FS16.dat"//
FN3="batchsims/FS32.dat"//
FN5="batchsims/FS40.dat" //
FN6="batchsims/FS48.dat" //
FN7="batchsims/FS56.dat" //
FN8="batchsims/FS64.dat" //
FN9="batchsims/FS72.dat" //
FN10="batchsims/FS80.dat" //

// Number of runs for each set of parameters
NRUN = 1  //any more than 1 run appended at end of the same file

//----------------
// Process to run simulation with modeled optogenetic drive, saves file with 
// drive frequency in column one, time in column 2, and the model LFP (voltage //average at mid-apical dendrite compartment over all pyramidal cells) in column //3
//----------------

proc runonce(){
finitialize(-65)
fcurrent()

while (t<tstop){
          fadvance()
          fprint( "%f %f %f \n", \
 			1000/FB.pp.MeanInterval,\
 			t,\
 			LFP_d())
} // end while
} //end runonce()


//------------------
// Process to run baseline simulation (no optogenetic drive)
//------------------

proc runonce_bl(){
finitialize(-65)
fcurrent()

while (t<tstop){
          fadvance()
          fprint( "%f %f %f \n", \
 			0,\
 			t,\
 			LFP_d())
} // end while
} //end runonce()

//----------------
// Process to run one simulation for each of 10 frequency drives 
// from 8 to 80 Hz, each saved in separate files according to the names listed // above for F0 through F10. In saved file, first column is drive frequency,
// second column is time, third column is average voltage //across all pyramical
// cells at the mid-apical dendrite compartment.
//----------------

proc runit(){ local j
FB.pp.MeanInterval=1000/8
FB.pp.number=0

wopen(FN0)
FB.pp.number=0
for j=1,NRUN {runonce_bl() print(0) print(j)}
wopen()

wopen(FN1)
FB.pp.number=5000
FB.pp.MeanInterval=1000/8
	for j=1,NRUN {runonce() print(1) print (j)}
wopen()

wopen(FN2)
FB.pp.number=5000
FB.pp.MeanInterval=1000/16
	for j=1,NRUN {runonce() print(2) print (j)}
wopen()

wopen(FN3)
FB.pp.number=5000
FB.pp.MeanInterval=1000/(3*8)
	for j=1,NRUN {runonce() print(3) print (j)}
wopen()

wopen(FN4)
FB.pp.number=5000
FB.pp.MeanInterval=1000/(4*8)
	for j=1,NRUN {runonce() print(4) print (j)}
wopen()

wopen(FN5)
FB.pp.number=5000
FB.pp.MeanInterval=1000/(5*8)
	for j=1,NRUN {runonce() print(5) print (j)}
wopen()

wopen(FN6)
FB.pp.number=5000
FB.pp.MeanInterval=1000/(8*6)
	for j=1,NRUN {runonce() print(6) print (j)}
wopen()

wopen(FN7)
FB.pp.number=5000
FB.pp.MeanInterval=1000/(8*7)
	for j=1,NRUN {runonce() print(7) print (j)}
wopen()

wopen(FN8)
FB.pp.number=5000
FB.pp.MeanInterval=1000/(8*8)
	for j=1,NRUN {runonce() print(8) print (j)}
wopen()

wopen(FN9)
FB.pp.number=5000
FB.pp.MeanInterval=1000/(8*9)
	for j=1,NRUN {runonce() print(9) print (j)}
wopen()

wopen(FN10)
FB.pp.number=5000
FB.pp.MeanInterval=1000/(10*8)
	for j=1,NRUN {runonce() print(10) print (j)}
wopen()
}

runit()