Ventromedial Thalamocortical Neuron (Bichler et al 2021)

 Download zip file 
Help downloading and running models
Accession:266989
"Biophysical computer modeling of a thalamic neuron demonstrated that an increase in rebound spiking can also be accounted for by a decrease in the M-type potassium current. Modeling also showed that an increase in sag with hyperpolarizing steps found after 6-OHDA treatment could in part but not fully be accounted for by the decrease in M-type current. These findings support the hypothesis that homeostatic changes in BGMT neural properties following 6-OHDA treatment likely influence the signal processing taking place in the BG thalamocortical network in Parkinson's disease."
Reference:
1 . Bichler EK, Cavarretta F, Jaeger D (2021) Changes in Excitability Properties of Ventromedial Motor Thalamic Neurons in 6-OHDA Lesioned Mice. eNeuro [PubMed]
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: Thalamus;
Cell Type(s):
Channel(s): I A; I h; I L high threshold; I T low threshold; I K,Ca; I Sodium; I Potassium; I Na,p; I K;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; Python;
Model Concept(s): Pathophysiology;
Implementer(s):
Search NeuronDB for information about:  I Na,p; I L high threshold; I T low threshold; I A; I K; I h; I K,Ca; I Sodium; I Potassium;
from header import *

import pyneuron
import numpy as np

def sim(cell, ic_holding, ic_stimulus, ic_stim_delay=5000.0, ic_stim_dur=2000.0, tstop=None, vinit=-78):
  
  tstop = ic_stim_delay*2+ic_stim_dur if tstop is None else tstop
  
  try:
    _soma_ref = cell.soma[0]
  except TypeError:
    _soma_ref = cell.soma


  recording = set_recording(_soma_ref(0.5)._ref_v)

  ic_hold       = h.IClamp(0.5, sec=_soma_ref)
  ic_hold.delay = 0
  ic_hold.dur   = tstop
  ic_hold.amp   = ic_holding
  
  ic_stim       = h.IClamp(0.5, sec=_soma_ref)
  ic_stim.delay = ic_stim_delay
  ic_stim.dur   = ic_stim_dur
  ic_stim.amp   = ic_stimulus
  
  run(tstop, vinit=vinit)


  return pyneuron.vector_to_ndarray(recording[0]), \
         pyneuron.vector_to_ndarray(recording[1])


def sim_batch(cell, ic_holding, ic_stim, ic_stim_delay=2000.0, ic_stim_dur=2000.0, tstop=None, vinit=-78):

  def check_arg(ic):
    if type(ic) == int:
      ic += 0.
    if type(ic) == float or type(ic) == np.float64:
      ic = [ ic ]
    #print (ic,type(ic))
    assert type(ic) == list or type(ic) == np.ndarray
    return ic

  
  ic_holding = check_arg(ic_holding)
  ic_stim    = check_arg(ic_stim)

  recording = []
  for i in range(len(ic_holding)):
    for j in range(len(ic_stim)):
      recording.append(
        sim(cell,
          ic_holding[i],
          ic_stim[j],
          ic_stim_delay=ic_stim_delay,
          ic_stim_dur=ic_stim_dur,
          tstop=tstop,
          vinit=vinit)
      )

  return recording



def get_holding_current(cell, vm, ic_min=0.01, ic_max=0.35, ic_inc=0.01):
  ic = np.arange(ic_min, ic_max+ic_inc, ic_inc)
  
  cell.soma[0].push(); apc = h.APCount(0.5); h.pop_section()
  
  i_min = 0
  i_max = len(ic)
  
  while i_min <= i_max:
    apc.n = 0.
    i = int((i_min+i_max)/2)
    
    sim(cell, ic[i], 0, tstop=5000.0)

    if apc.n > 0:
      i_max = i-1
    elif cell.soma[0].v < vm:
      i_min = i+1
    elif cell.soma[0].v > vm:
      i_max = i-1
    else:
      break
      

  return ic[i+1]
    

  

Loading data, please wait...