ModelDB is moving. Check out our new site at The corresponding page is

Electrostimulation to reduce synaptic scaling driven progression of Alzheimers (Rowan et al. 2014)

 Download zip file 
Help downloading and running models
"... As cells die and synapses lose their drive, remaining cells suffer an initial decrease in activity. Neuronal homeostatic synaptic scaling then provides a feedback mechanism to restore activity. ... The scaling mechanism increases the firing rates of remaining cells in the network to compensate for decreases in network activity. However, this effect can itself become a pathology, ... Here, we present a mechanistic explanation of how directed brain stimulation might be expected to slow AD progression based on computational simulations in a 470-neuron biomimetic model of a neocortical column. ... "
1 . Rowan MS, Neymotin SA, Lytton WW (2014) Electrostimulation to reduce synaptic scaling driven progression of Alzheimer's disease. Front Comput Neurosci 8:39 [PubMed]
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; Neocortex spiking regular (RS) neuron; Neocortex spiking low threshold (LTS) neuron;
Gap Junctions:
Receptor(s): GabaA; AMPA; NMDA;
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON; Python;
Model Concept(s): Long-term Synaptic Plasticity; Aging/Alzheimer`s; Deep brain stimulation; Homeostasis;
Implementer(s): Lytton, William [bill.lytton at]; Neymotin, Sam [Samuel.Neymotin at]; Rowan, Mark [m.s.rowan at];
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; Glutamate;
autotune.hoc *
basestdp.hoc *
batch.hoc *
batch2.hoc *
checkirreg.hoc * *
col.hoc *
comppowspec.hoc *
condisconcellfig.hoc *
condisconpowfig.hoc *
declist.hoc *
decmat.hoc *
decnqs.hoc *
decvec.hoc *
default.hoc *
drline.hoc *
e2hubsdisconpow.hoc *
e2incconpow.hoc *
filtutils.hoc *
geom.hoc *
graphplug.hoc *
grvec.hoc *
infot.hoc *
init.hoc *
labels.hoc *
load.hoc *
local.hoc *
makepopspikenq.hoc *
matfftpowplug.hoc *
matpmtmplug.hoc *
matpmtmsubpopplug.hoc *
matspecplug.hoc *
network.hoc *
nload.hoc *
nqpplug.hoc *
nqs.hoc *
nqsnet.hoc *
nrnoc.hoc *
powchgtest.hoc *
python.hoc *
pywrap.hoc *
ratlfp.dat *
redE2.hoc *
setup.hoc *
shufmua.hoc *
simctrl.hoc *
spkts.hoc *
stats.hoc *
syncode.hoc *
vsampenplug.hoc *
xgetargs.hoc *
// $Id: matpmtmsubpopplug.hoc,v 1.3 2010/10/10 02:34:03 samn Exp $ 

// "plugin" (for batch.hoc) to do analysis on sim data

// want power of: subpop E, total E , total E - subpop . . . bring I along for the ride

binsz = 5 // bin size in ms
sampr = 1e3 / binsz // sampling rate
initAllMyNQs() // initialize counts per time, by type, column, etc.

objref nqf,nqtmp
objref vintraty[numcols][CTYPi] // HUB(SIMTYP) subpop within column
objref vintraE[numcols]         // total of all Es within column
objref vintraI[numcols]         // all Is within column
objref vintraEMINUS[numcols]    // total minus subpop, within column
objref vintraIMINUS[numcols]    // total minus subpop, within column


proc myrsz () { // util func to call matpmtm and add results to nqf
  {vec.resize(0) vec.copy($o1) vec.sub(vec.mean)}
  if("f")==-1) {nqf.resize("f") nqf.v[nqf.m-1].copy(nqtmp.getcol("f"))}
  {nqf.resize($s2) nqf.v[nqf.m-1].copy(nqtmp.getcol("pow"))}

nqf=new NQS()

for i = 0 , numcols - 1 { // setup all the vectors that will have matpmtm run on them
  {vintraE[i]=new Vector(sz)  vintraI[i]=new Vector(sz)}
  {vintraIMINUS[i]=new Vector(sz) vintraEMINUS[i]=new Vector(sz)}
  for j = 0, CTYPi - 1 {
    if(nqCTY[i].v[j].size>0) {
      if(j==SIMTYP) {
        vintraty[i][j]=new Vector(sz)
        vintraty[i][j].copy(nqCTY[i].v[j]) // subpop
      if(ice(j)) {
        if(j!=SIMTYP) vintraIMINUS[i].add(nqCTY[i].v[j]) // total I minus I hub subpop
      } else {
        vintraE[i].add(nqCTY[i].v[j]) // total
        if(j!=SIMTYP) vintraEMINUS[i].add(nqCTY[i].v[j]) // total E minus E hub subpop

for i=0,numcols-1 {
  {sprint(tstr,"C%dintraE",i) myrsz(vintraE[i],tstr)}
  if(ice(SIMTYP)) {
    {sprint(tstr,"C%dintraIMINUS",i) myrsz(vintraIMINUS[i],tstr)}
  } else {
    {sprint(tstr,"C%dintraEMINUS",i) myrsz(vintraEMINUS[i],tstr)}
  {sprint(tstr,"C%dintraI",i) myrsz(vintraI[i],tstr)}
  for j=0,CTYPi-1 if(vintraty[i][j]!=nil) {
    if(vintraty[i][j].size>0) {sprint(tstr,"C%dintra%s",i,CTYP.o(j).s) myrsz(vintraty[i][j],tstr)}


Loading data, please wait...