MEG of Somatosensory Neocortex (Jones et al. 2007)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:113732
"... To make a direct and principled connection between the SI (somatosensory primary neocortex magnetoencephalography) waveform and underlying neural dynamics, we developed a biophysically realistic computational SI model that contained excitatory and inhibitory neurons in supragranular and infragranular layers. ... our model provides a biophysically realistic solution to the MEG signal and can predict the electrophysiological correlates of human perception."
Reference:
1 . Jones SR, Pritchett DL, Stufflebeam SM, Hämäläinen M, Moore CI (2007) Neural correlates of tactile detection: a combined magnetoencephalography and biophysically based computational modeling study. J Neurosci 27:10751-64 [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:
Cell Type(s): Neocortex L5/6 pyramidal GLU cell; Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell;
Channel(s): I T low threshold; I K; I M; I K,Ca; I Sodium; I Calcium; I R;
Gap Junctions:
Receptor(s): GabaA; GabaB; AMPA; NMDA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Magnetoencephalography; Touch;
Implementer(s): Sikora, Michael [Sikora at umn.edu];
Search NeuronDB for information about:  Neocortex L5/6 pyramidal GLU cell; Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell; GabaA; GabaB; AMPA; NMDA; I T low threshold; I K; I M; I K,Ca; I Sodium; I Calcium; I R; Gaba; Glutamate;
begintemplate PNOISE
public setmean
objref r, pp
proc init() {
pp=new IClamp(0.5)
pp.dur=5000
r=new Random($1)
}
proc setmean() {
r.poisson($1)
r.play(&pp.amp)
}
endtemplate PNOISE

objref noisyV[200]
// Insert Poisson noise into all compartments of the Pyramidal V cells
proc PnoiseV(){
j=0
for i=0,9{ forsec PL5[i].all {noisyV[j]=new PNOISE(j) noisyV[j].setmean($1) j=j+1 } } }

objref noisyII[200]
// Insert Poisson noise into all compartments of the Pyramidal II/III cells
proc PnoiseII(){
j=0
for i=0,9{ forsec PL2[i].all {noisyII[j]=new PNOISE(j) noisyII[j].setmean($1) j=j+1 } } }

objref noisyIPL5[10]
// Insert Poisson noise into all compartments of inhibitory LayerV cells
proc PnoiseIPL5(){
j=0
for i=0,2{ IPL5[i].cell {noisyIPL5[j]=new PNOISE(j) noisyIPL5[j].setmean($1) j=j+1 } } }

objref noisyIPL2[10]
// Insert Poisson noise into all compartments of inhibitory LayerII/III cells
proc PnoiseIPL2(){
j=0
for i=0,2{ IPL2[i].cell {noisyIPL2[j]=new PNOISE(j) noisyIPL2[j].setmean($1) j=j+1 } } }

begintemplate GNOISE
public setmean
objref r, pp
proc init() {
pp=new IClamp(0.5)
pp.dur=5000
r=new Random($1)
}
proc setmean() {
r.normal($1,$2)
r.play(&pp.amp)
}
endtemplate GNOISE

objref GnoisyV[200]
// Insert Gaussian noise into all compartments of the Pyramidal V cells
proc GnoiseV(){
j=0
for i=0,9{ forsec PL5[i].all {GnoisyV[j]=new GNOISE(j) GnoisyV[j].setmean($1,$2) j=j+1 } } }

objref GnoisyII[200]
// Insert Gaussian noise into all compartments of the Pyramidal II/III cells
proc GnoiseII(){
j=0
for i=0,9{ forsec PL2[i].all {GnoisyII[j]=new GNOISE(j) GnoisyII[j].setmean($1,$2) j=j+1 } } }

objref GnoisyIPL5[10]
// Insert Gaussian noise into all compartments of inhibitory LayerV cells
proc GnoiseIPL5(){
j=0
for i=0,2{ IPL5[i].cell {GnoisyIPL5[j]=new GNOISE(j) GnoisyIPL5[j].setmean($1,$2) j=j+1 } } }

objref GnoisyIPL2[10]
// Insert Gaussian noise into all compartments of inhibitory LayerII/III cells
proc GnoiseIPL2(){
j=0
for i=0,2{ IPL2[i].cell {GnoisyIPL2[j]=new GNOISE(j) GnoisyIPL2[j].setmean($1,$2) j=j+1 } } }


begintemplate UNOISE
public setmean
objref r, pp
proc init() {
pp=new IClamp(0.5)
pp.dur=5000
r=new Random($1)
}
proc setmean() {
r.uniform($1,$2)
r.play(&pp.amp)
}
endtemplate UNOISE

objref UnoisyV[200]
// Insert Uniform noise into all compartments of the Pyramidal V cells
proc UnoiseV(){
j=0
for i=0,9{ forsec PL5[i].all {UnoisyV[j]=new UNOISE(j) UnoisyV[j].setmean($1,$2) j=j+1 } } }

objref UnoisyII[200]
// Insert Uniform noise into all compartments of the Pyramidal II/III cells
proc UnoiseII(){
j=0
for i=0,9{ forsec PL2[i].all {UnoisyII[j]=new UNOISE(j) UnoisyII[j].setmean($1,$2) j=j+1 } } }

objref UnoisyIPL5[10]
// Insert Uniform noise into all compartments of inhibitory LayerV cells
proc UnoiseIPL5(){
j=0
for i=0,2{ IPL5[i].cell {UnoisyIPL5[j]=new UNOISE(j) UnoisyIPL5[j].setmean($1,$2) j=j+1 } } }

objref UnoisyIPL2[10]
// Insert Uniform noise into all compartments of inhibitory LayerII/III cells
proc UnoiseIPL2(){
j=0
for i=0,2{ IPL2[i].cell {UnoisyIPL2[j]=new UNOISE(j) UnoisyIPL2[j].setmean($1,$2) j=j+1 } } }