Data-driven, HH-type model of the lateral pyloric (LP) cell in the STG (Nowotny et al. 2008)

 Download zip file 
Help downloading and running models
Accession:116957
This model was developed using voltage clamp data and existing LP models to assemble an initial set of currents which were then adjusted by extensive fitting to a long data set of an isolated LP neuron. The main points of the work are a) automatic fitting is difficult but works when the method is carefully adjusted to the problem (and the initial guess is good enough). b) The resulting model (in this case) made reasonable predictions for manipulations not included in the original data set, e.g., blocking some of the ionic currents. c) The model is reasonably robust against changes in parameters but the different parameters vary a lot in this respect. d) The model is suitable for use in a network and has been used for this purpose (Ivanchenko et al. 2008)
References:
1 . Nowotny T, Levi R, Selverston AI (2008) Probing the dynamics of identified neurons with a data-driven modeling approach. PLoS ONE 3:e2627 [PubMed]
2 . Ivanchenko MV, Nowotny T, Selverston AI, Rabinovich MI (2008) Pacemaker and network mechanisms of rhythm generation: cooperation and competition. J Theor Biol 253:452-61 [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:
Cell Type(s): Hodgkin-Huxley neuron; Stomatogastric Ganglion (STG) Lateral Pyloric (LP) cell;
Channel(s): I A; I K; I M; I h; I K,Ca; I Sodium; I Calcium; I Potassium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: C or C++ program;
Model Concept(s): Activity Patterns; Bursting; Parameter Fitting; Invertebrate; Methods; Parameter sensitivity;
Implementer(s): Nowotny, Thomas [t.nowotny at sussex.ac.uk];
Search NeuronDB for information about:  I A; I K; I M; I h; I K,Ca; I Sodium; I Calcium; I Potassium;
//--------------------------------------------------------------------------
// Author: Thomas Nowotny
//
// Institute: Institute for Nonlinear Dynamics
//            University of California San Diego
//            La Jolla, CA 92093-0402
//
// email to:  tnowotny@ucsd.edu
//
// initial version: 2005-08-17
//
//--------------------------------------------------------------------------


#ifndef CN_NEURON_CC
#define CN_NEURON_CC

#include "CN_neuron.h"

neuron::neuron(int inlabel, int iniVarNo, int intype, double *inp, int inpno)
{
  label= inlabel;
  iVarNo= iniVarNo;
  type= intype;
  pno= inpno;
  if (pno > 0) {
    p= new double[pno];
    set_p(inp);
  }
  start_spiking= 0;
  spiking= 0;
  spike_time= -1.0;

  // we don't know our index number yet
  idx= 0;
  enabled= 0;
}

neuron::neuron(int inlabel, int iniVarNo, int intype, vector<int> inpos,
	       double *inp, int inpno)
{
  label= inlabel;
  iVarNo= iniVarNo;
  type= intype;
  pno= inpno;
  if (pno > 0) {
    p= new double[pno];
    set_p(inp);
  }
  pos= inpos;
  start_spiking= 0;
  spiking= 0;
  spike_time= -1.0;

 // we don't know our index number yet
  idx= 0;
  enabled= 0;
}

neuron::~neuron()
{
  forall(den, den_it) {
    (*den_it)->target= NULL;
  }
  delete[] p;
}

void neuron::set_p(double *inp)
{
  for (int i= 0; i < pno; i++) p[i]= inp[i];
}

void neuron::spike_detect(double *x)
{
  assert(enabled);
  if (E(x) >= SPK_V_THRESH)
  {
    if (!spiking)
    {
      start_spiking= 1;
      spiking= 1;
      spike_time= x[0];
    }
    else start_spiking= 0;
  }
  else {
    spiking= 0;
    start_spiking= 0;
  }
}

void neuron::init(double *x, double *iniVars)
{
  assert(enabled);
  for (int i= 0; i < iVarNo; i++)
  {
    x[idx+i]= iniVars[i];
  }
  start_spiking= 0;
  spiking= 0;
  spike_time= -1.0;
}

void neuron::setIdx(int inidx)
{
  assert(!enabled);
  idx= inidx;
  enabled= 1;
}

void neuron::noise(double *x, double *dx)
{
  for (int i= 0; i < iVarNo; i++) {
    dx[i]= 0.0;
  }
}

#endif


Loading data, please wait...