Mechanisms underlying subunit independence in pyramidal neuron dendrites (Behabadi and Mel 2014)

 Download zip file 
Help downloading and running models
"...Using a detailed compartmental model of a layer 5 pyramidal neuron, and an improved method for quantifying subunit independence that incorporates a more accurate model of dendritic integration, we first established that the output of each dendrite can be almost perfectly predicted by the intensity and spatial configuration of its own synaptic inputs, and is nearly invariant to the rate of bAP-mediated 'cross-talk' from other dendrites over a 100-fold range..."
1 . Behabadi BF, Mel BW (2014) Mechanisms underlying subunit independence in pyramidal neuron dendrites. Proc Natl Acad Sci U S A 111:498-503 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Synapse; Dendrite;
Brain Region(s)/Organism:
Cell Type(s): Neocortex L5/6 pyramidal GLU cell;
Channel(s): I Sodium; I Potassium;
Gap Junctions:
Receptor(s): AMPA; NMDA;
Transmitter(s): Glutamate;
Simulation Environment: NEURON; Python;
Model Concept(s): Dendritic Action Potentials; Spatio-temporal Activity Patterns; Parameter Fitting; Simplified Models; Active Dendrites; Detailed Neuronal Models; Action Potentials; Synaptic Integration;
Implementer(s): Behabadi, Bardia [bardiafb+mdb at];
Search NeuronDB for information about:  Neocortex L5/6 pyramidal GLU cell; AMPA; NMDA; I Sodium; I Potassium; Glutamate;
#!/usr/bin/env python
import sys
import cPickle
import numpy as npy

# numpy 'pretty print'

from neuron import h

numbranches = int(sys.argv[1])
simiter = int(sys.argv[2])-1
if numbranches==2:
    theseclist = [h.a1_111, h.a10_11]
if numbranches==8:
    theseclist = [h.a1_111, h.a8_11, h.a9_122, h.a3_11, h.a10_11, h.a7_1221, h.a5_1, h.a4_121]

sl2 = h.SectionList()
for sec in theseclist:
    sl2.append(sec = sec)
poppedsecs = sl2.unique()
print "nseg", h.nsegcnt()

def getfi(amp,simiter):
    h.tstop = 500 # to match synaptic input runs

    # 'background' injection
    icr = h.IClamp(h.soma(.5))
    icr.dur = h.tstop
    if numbranches==2:
        icmean = .75
    if numbranches==8:
        icmean = 0
    icstd = 1
    icrand = h.Vector(icmean+icstd*npy.random.randn(h.tstop/h.dt+1)),h.dt)

    # do current injection run
    ic = h.IClamp(h.soma(.5))
    ap = h.APCount(h.soma(.5))
    ic.delay = 0
    ic.dur = h.tstop 
    ic.amp = amp
    return ap.n*1000./h.tstop

# current amps
imin = 0
if numbranches==2:
    imax = 1.1
if numbranches==8:
    imax = 4
istep = .05
Is = npy.arange(imin,imax+istep,istep)
f = npy.zeros((Is.size))
for ind,I in enumerate(Is):
    f[ind] = getfi(I,simiter)

cPickle.dump(f,open('data/fI-%dbranch-run%d.pkl' % (numbranches,simiter),'w'))
cPickle.dump(Is,open('data/fI-I-%dbranch.pkl' % (numbranches),'w'))

Loading data, please wait...