Temporal decorrelation by intrinsic cellular dynamics (Wang et al 2003)

 Download zip file 
Help downloading and running models
Accession:84593
"... Recent investigations in primary visual (V1) cortical neurons have demonstrated that adaptation to prolonged changes in stimulus contrast is mediated in part through intrinsic ionic currents, a Ca2+ activated K+ current (IKCa) and especially a Na+ activated K+ current (IKNa). The present study was designed to test the hypothesis that the activation of adaptation ionic currents may provide a cellular mechanism for temporal decorrelation in V1. A conductance-based neuron model was simulated, which included an IKCa and an IKNa. We show that the model neuron reproduces the adaptive behavior of V1 neurons in response to high contrast inputs. ...". See paper for details and more.
Reference:
1 . Wang XJ, Liu Y, Sanchez-Vives MV, McCormick DA (2003) Adaptation and temporal decorrelation by single neurons in the primary visual cortex. J Neurophysiol 89:3279-93 [PubMed]
Citations  Citation Browser
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): Neocortex L2/3 pyramidal GLU cell;
Channel(s): I Na,t; I L high threshold; I K; I Calcium; I Potassium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: C or C++ program;
Model Concept(s): Ion Channel Kinetics; Temporal Pattern Generation; Oscillations; Calcium dynamics; Vision;
Implementer(s): Wang, Xiao-Jing [xjwang at yale.edu];
Search NeuronDB for information about:  Neocortex L2/3 pyramidal GLU cell; I Na,t; I L high threshold; I K; I Calcium; I Potassium;
/
decorr-model
images
readme.html
driver.c
header.h
myutils.c
nrutil.c
nrutil.h
rk4.c
                            
#include "header.h"

double alpha_n(double V)
{
  return -0.01*(V+34.0)/(exp(-0.1*(V+34.0))-1.0);
}

double beta_n(double V)
{
  return 0.125*exp(-(V+44.0)/25.0);
}

double n_inf(double V)
{
  return alpha_n(V)/(alpha_n(V)+beta_n(V));
}

double alpha_m(double V)
{
  return -0.1*(V+33.0)/(exp(-0.1*(V+33.0)) - 1.0);
}

double beta_m(double V)
{
  return 4.0*exp(-(V+58.0)/12.0);
}

double m_inf(double V)
{
  return alpha_m(V)/(alpha_m(V)+beta_m(V));
}

double alpha_h(double V)
{
  return 0.07*exp(-(V+50.0)/10.0);
}

double beta_h(double V)
{
  return 1.0/(exp(-0.1*(V+20.0))+1.0);
}

double h_inf(double V)
{
  return alpha_h(V)/(alpha_h(V)+beta_h(V));
}

double power_2(double x)
{
  return x*x;
}

double power_3(double x)
{
  return x*x*x;
}

double power_4(double x)
{
  return x*x*x*x;
}

double m_Ca_inf(double V)
{
  return 1.0/(1.0+exp(-(V+20.0)/9.0));
}

double m_KNa_inf(double x)
{
   return m_inf_max/(1.0+pow(EC_50/x,Hill_order));
}

double phi_Na(double x)
{
  return(x*x*x/(x*x*x+Kp*Kp*Kp));
}

int within_proxy(double x,double target,double tolerance)
{
  while(x>500.0) x-=500.0;
  
  if(x>=(target-tolerance) && x<=(target+tolerance))
    return 1;
  else return 0;
}