Hyperexcitability from Nav1.2 channel loss in neocortical pyramidal cells (Spratt et al accepted)

 Download zip file 
Help downloading and running models
Accession:267067
Based on the Layer 5 thick-tufted pyramidal cell from the Blue Brain Project, we modify the distribution of the sodium channel Nav1.2 to recapitulate an increase in excitability observed in ex vivo slice experiments.
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Prefrontal cortex (PFC);
Cell Type(s): Neocortex layer 5 pyramidal cell;
Channel(s): I h; I M; I Potassium; I Sodium; I L high threshold; I T low threshold;
Gap Junctions:
Receptor(s):
Gene(s): Nav1.2 SCN2A;
Transmitter(s):
Simulation Environment: NEURON; Python;
Model Concept(s):
Implementer(s): Ben-Shalom, Roy [bens.roy at gmail.com]; Kyoung, Henry [hkyoung at berkeley.edu];
Search NeuronDB for information about:  I L high threshold; I T low threshold; I M; I h; I Sodium; I Potassium;
/
SprattEtAl2021
Ri Increase
.ipynb_checkpoints
mechanisms
morphology
params
Stims
Volts
README *
.provenance.json *
25% Ri Increase Figures.ipynb *
axon_utils.hoc
biophysics.hoc *
cellinfo.json *
constants.hoc *
creategui.hoc *
createsimulation.hoc *
fit.hoc *
gui.ses *
init.hoc *
LICENSE *
morphology.hoc *
mosinit.hoc *
ringplot.hoc *
run.py *
run_RmpRiTau.py *
runModel.hoc *
template.hoc *
topo_code.hoc *
                            
/*                                                                               
 * @file ringplot.hoc                                                           
 * @brief Horizontally scrolling plot                                
 * @author M. Hines @ Yale, Werner Van Geit @ BBP                                                 
 * @date 2015                                                                    
*/        

load_file("nrngui.hoc")

begintemplate RingPlot
public g, clipped_voltage
public view_count, fastflush, flush, cleanup
objref g, clipped_voltage, clipped_time, voltage, time, max_vec


/** Constructor */
proc init() {
    // Generate graph
    g = new Graph(0)

    // Horizontal width of the plot (in ms)
    clip_size = 3000.0

    // Record voltage
    voltage = new Vector(10000)
    voltage.record(&v(.5))

    // Record time
    time = new Vector(10000)
    time.record(&t)

    // Vector that will contain the clipped data
    clipped_voltage = new Vector()
    clipped_time = new Vector()

    // Set up location and size of window
    g.view(0, -90, 3000, 120, 50, 650, 1007.04, 450)
}

/** View count of the graph */
func view_count() {
    return g.view_count() 
}

/** Fast flush the plot */
func fastflush() {
    update()
    return g.flush()
}

/** Flush the plot */
func flush() {
  update()
  return g.flush()
}

/** Update the plot */
proc update() {
    // Set clipping region (in ms)
    clip_size = 3000.0
  
    // Time at right side of clipping region
    right_t = t

    // Time at left side of clipping region
    // Wait until time reaches clip_size to start scrolling
    if (t >= clip_size) {
        left_t = t - clip_size
    } else {
        left_t = 0.0
    }

    // Calculate clipped vectors
    clipped_voltage.copy(voltage, 0, left_t/dt, right_t/dt-1)
    clipped_time.copy(time, 0, left_t/dt, right_t/dt-1)
    clipped_time.sub(left_t)

    // Erase previous plot
    g.erase()
    // Plot clipped vectors
    clipped_voltage.plot(g, clipped_time)
}

/** Clean up the plot */
proc cleanup() {

    // Vector that will contain the clipped data
    clipped_voltage = new Vector()
    clipped_time = new Vector()
    
}

endtemplate RingPlot