Emergence of physiological oscillation frequencies in neocortex simulations (Neymotin et al. 2011)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:138379
"Coordination of neocortical oscillations has been hypothesized to underlie the "binding" essential to cognitive function. However, the mechanisms that generate neocortical oscillations in physiological frequency bands remain unknown. We hypothesized that interlaminar relations in neocortex would provide multiple intermediate loops that would play particular roles in generating oscillations, adding different dynamics to the network. We simulated networks from sensory neocortex using 9 columns of event-driven rule-based neurons wired according to anatomical data and driven with random white-noise synaptic inputs. ..."
Reference:
1 . Neymotin SA, Lee H, Park E, Fenton AA, Lytton WW (2011) Emergence of physiological oscillation frequencies in a computer model of neocortex. Front Comput Neurosci 5:19 [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 L5/6 pyramidal GLU cell; Neocortex L2/3 pyramidal GLU cell; Neocortex V1 interneuron basket PV GABA cell; Neocortex fast spiking (FS) interneuron; Neocortex spiny stellate cell;
Channel(s):
Gap Junctions:
Receptor(s): GabaA; AMPA; NMDA; Gaba;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Activity Patterns; Oscillations; Synchronization; Laminar Connectivity;
Implementer(s): Lytton, William [bill.lytton at downstate.edu]; Neymotin, Sam [Samuel.Neymotin at nki.rfmh.org];
Search NeuronDB for information about:  Neocortex L5/6 pyramidal GLU cell; Neocortex L2/3 pyramidal GLU cell; Neocortex V1 interneuron basket PV GABA cell; GabaA; AMPA; NMDA; Gaba; Gaba; Glutamate;
/
fdemo
readme.txt
intf6_.mod
misc.mod *
nstim.mod *
stats.mod *
vecst.mod
col.hoc
declist.hoc *
decmat.hoc *
decnqs.hoc *
decvec.hoc *
default.hoc *
drline.hoc *
filtutils.hoc
finish_run.hoc
grvec.hoc *
init.hoc *
labels.hoc *
local.hoc *
misc.h
mosinit.hoc
network.hoc
nload.hoc
nqs.hoc *
nqsnet.hoc *
nrnoc.hoc *
params.hoc
python.hoc *
pywrap.hoc *
run.hoc
setup.hoc
simctrl.hoc *
spkts.hoc *
stats.hoc *
syncode.hoc *
xgetargs.hoc *
                            
// $Id: nqsnet.hoc,v 1.65 2010/09/07 18:56:17 samn Exp $
// xopen("nqsnet.hoc")

//      pre-id  post-id  pre#  post#   distance weight  syn-id   nc ptr  wt1 (eg AMPA+NMDA)
objref nq[2],sq[CTYPi][CTYPi],cp
obfunc mkcp0 () { localobj lo
  lo = new NQS("PRID","POID","STYP","PIJ","DIV","CONV","NSYN","NPRE")
  lo.useslist("PRID",CTYP) lo.useslist("POID",CTYP) lo.useslist("STYP",STYP)
  return lo
}

// CODE: PRID,POID,INCOL,COL1,COL2
obfunc mksp () { localobj lo
  lo=new NQS("CODE","PR","PO","DEL","WT0","WT1") // CODE==PRID(1),POID(2),COLA(3),COLB(4)
  lo.coddec("CODE")
  // lo.useslist("PRID",CTYP) lo.useslist("POID",CTYP) 
  return lo
}
sp=mksp()

//* Numbers and connectivity params

// layer return layer location with 'sublayer' defined by Inhib (+0.5) or other suffix
// E or I should be 1st letter of name, suffix letter will ideally dichotomize into late
// alphabet or early alphabet
func layer () { local x,in,la
  la=0
  if (sscanf(CTYP.o($1).s,"%c%d%c",&in,&x,&la)<2) return -1
  if (x==23) x=3 // layer 2/3
  if (in==73) x+=0.5 // ascii 73 is 'I'
  if (la>77) x+=0.2 // <='M'
  return x
}

//* routines
//** styp() sets synapse type based on presynaptic cell
func styp () { local pr,po
  pr=$1 po=$2
  if (pr==IN && po==IN) { return GA 
  } else if (pr==IN) { return IX
  } else if (pr==SU || pr==DP) { return EX
  } else if (pr==SM) { return AM
  } else if (strm(CTYP.o[pr].s,"^E")) { return EX
  } else if (strm(CTYP.o[pr].s,"^I")) { return IX
  } else printf("styp ERR %s->%s not classified",CTYP.object(pr).s,CTYP.object(po).s)
}

//** ellfld() place the cells inside an ellipse
// r for an ellipse = a*b/sqrt((a*sin(theta))^2 + (b*cos(theta))^2)
proc ellfld () { local a,b,ii,jj,p,seed localobj xv,yv,xo
  seed=239023229
  a=1 b=2
  p=allocvecs(xv,yv) vrsz(allcells*10,xv,yv)
  xv.setrnd(4,2*a,seed) yv.setrnd(4,2*b) xv.sub(a) yv.sub(b)
  jj=0
  for vtr2(&x,&y,xv,yv,&ii) {
    if (a*x^2+b*y^2<1) { ce.o(jj).xloc=x ce.o(jj).yloc=y jj+=1 }
    if (jj==ce.count) break
  }
  print ii,jj
  if (jj!=ce.count) print "Not filled"
  dealloc(p)
}