Multitarget pharmacology for Dystonia in M1 (Neymotin et al 2016)

 Download zip file 
Help downloading and running models
" ... We developed a multiscale model of primary motor cortex, ranging from molecular, up to cellular, and network levels, containing 1715 compartmental model neurons with multiple ion channels and intracellular molecular dynamics. We wired the model based on electrophysiological data obtained from mouse motor cortex circuit mapping experiments. We used the model to reproduce patterns of heightened activity seen in dystonia by applying independent random variations in parameters to identify pathological parameter sets. ..."
1 . Neymotin SA, Dura-Bernal S, Lakatos P, Sanger TD, Lytton WW (2016) Multitarget Multiscale Simulation for Pharmacological Treatment of Dystonia in Motor Cortex. Front Pharmacol 7:157 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Molecular Network;
Brain Region(s)/Organism: Neocortex;
Cell Type(s): Neocortex V1 L6 pyramidal corticothalamic cell; Neocortex U1 L2/6 pyramidal intratelencephalic cell; Neocortex V1 interneuron basket PV cell; Neocortex fast spiking (FS) interneuron; Neocortex spiking regular (RS) neuron; Neocortex spiking low threshold (LTS) neuron; Neocortex layer 4 neuron; Neocortex layer 2-3 interneuron; Neocortex layer 4 interneuron; Neocortex layer 5 interneuron; Neocortex layer 6a interneuron;
Channel(s): I A; I h; I_SERCA; Ca pump; I K,Ca; I Calcium; I L high threshold; I T low threshold; I N; I_KD; I M; I Na,t;
Gap Junctions:
Receptor(s): GabaA; GabaB; AMPA; mGluR;
Gene(s): HCN1;
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON; Python;
Model Concept(s): Oscillations; Activity Patterns; Beta oscillations; Reaction-diffusion; Calcium dynamics; Pathophysiology; Multiscale;
Implementer(s): Neymotin, Sam [samn at]; Dura-Bernal, Salvador [salvadordura at];
Search NeuronDB for information about:  Neocortex V1 L6 pyramidal corticothalamic cell; Neocortex V1 interneuron basket PV cell; Neocortex U1 L2/6 pyramidal intratelencephalic cell; GabaA; GabaB; AMPA; mGluR; I Na,t; I L high threshold; I N; I T low threshold; I A; I M; I h; I K,Ca; I Calcium; I_SERCA; I_KD; Ca pump; Gaba; Glutamate;
cal.mod *
calts.mod *
can.mod *
cat.mod *
IC.mod *
icalts.mod *
ihlts.mod *
kcalts.mod *
km.mod *
mglur.mod *
misc.mod *
MyExp2SynBB.mod *
stats.mod *
vecst.mod * *
declist.hoc *
decnqs.hoc *
decvec.hoc *
default.hoc *
drline.hoc * *
labels.hoc *
local.hoc *
nqs.hoc *
nrnoc.hoc * *
python.hoc *
pywrap.hoc *
simctrl.hoc *
syncode.hoc * *
xgetargs.hoc *
# $Id:,v 1.2 2012/02/15 16:22:52 samn Exp $ 

from neuron import h
import os
import sys
import datetime
import shutil
import pickle
from math import sqrt, pi
import numpy
import types

h("objref p")
h("p = new PythonObject()")

    import pylab
    from pylab import plot, arange, figure
    my_pylab_loaded = True
except ImportError:
    print "Pylab not imported"
    my_pylab_loaded = False

def htype (obj): st=obj.hname(); sv=st.split('['); return sv[0]
def secname (obj): obj.push(); print h.secname() ; h.pop_section()
def psection (obj): obj.push(); print h.psection() ; h.pop_section()

allsecs=None #global list containing all NEURON sections, initialized via mkallsecs

# still need to generate a full allsecs
def mkallsecs ():
  """ mkallsecs - make the global allsecs variable, containing
      all the NEURON sections.
  global allsecs
  allsecs=h.SectionList() # no .clear() command
  for s in roots:
  return allsecs

#forall syntax - c gets executed, allsecs has Sections
def forall (c):
    """ NEURON forall syntax - iterates through all the sections available
        note that there's a dummy loop variable called s used in this function,
        so any command that needs to access a section should be via s.
        example: forall('print') , will print all the section names.
        Also note that this function uses a global list, 'allsecs', which may
        need to get re-initialized when new sections are created, via the mkallsecs
        function above.
    global allsecs
    if (type(allsecs)==types.NoneType): mkallsecs()
    for s in allsecs: exec(c)

#forsec syntax - executes command for each section who's name
# contains secname as a substring
def forsec (secref="soma",command=""): 
    """ NEURON forsec syntax - iterates over all sections which have a substring
        in their names matching secref argument. command is executed if match found.
        this function also utilizes the allsecs global variable.
    global allsecs
    if (type(allsecs)==types.NoneType): mkallsecs()
    if (type(secref)==types.StringTypes[0]):
        for s in allsecs:
            if > 0:
        for s in secref: exec(command)

Loading data, please wait...