Rate model of a cortical RS-FS-LTS network (Hayut et al. 2011)

 Download zip file 
Help downloading and running models
A rate model of cortical networks composed of RS, FS and LTS neurons. Synaptic depression is modelled according to the Tsodyks-Markram scheme.
1 . Hayut I, Fanselow EE, Connors BW, Golomb D (2011) LTS and FS inhibitory interneurons, short-term synaptic plasticity, and cortical circuit dynamics. PLoS Comput Biol 7:e1002248 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Neocortex fast spiking (FS) interneuron; Neocortex spiking regular (RS) neuron; Neocortex spiking low threshold (LTS) neuron;
Gap Junctions:
Simulation Environment: C or C++ program;
Model Concept(s): Short-term Synaptic Plasticity; Rate-coding model neurons;
Implementer(s): Golomb, David [golomb at bgu.ac.il];
#ifndef Mline
#define Mline 120

#ifndef tghfunc
#define tghfunc(x) ( ((x) > (0.0)) ? (tanh(x)) : (0.0) )

#ifndef linthr
#define linthr(x) ( ((x) > (0.0)) ? (x) : (0.0) )

typedef struct nrn_par{
  double beta, theta, Mx, Iapp, nu, IappF;
} nrn_par;

typedef struct syn_par{
  double gg, taus, kf, UV, taur, tauf;
} syn_par;

typedef struct net_par{
  nrn_par R, L, F;
  syn_par RR, LR, RL, FR, RF, FF, FL, LF;
  double sig;
  char tghlin, sfact, nuif;
} net_par;

typedef struct run_par{
  double epsilon;
  double deltat, nt;
  int twrite, tmcol, ttrans, tupdown;
  int sm;
  char method, incond, fpcal, smforce;
} run_par;

typedef struct Varb_ar{
  double *RR, *LR, *RL, *FR, *RF, *FF, *FL, *LF;
  double *ptr;
  int neq;
} Varb_ar;

typedef struct stat_run{
  double MRmin, MRmax;
  double MLmin, MLmax;
  double MFmin, MFmax;
  double MRthr;
  double *tud;
  double TT, freq, Tup, dutyc;
  int mud, nud, iud;
  char *sud;
} stat_run;

/* Function Declaration */

void read_input(net_par *netpar, run_par *runpar, int sm, fl_st fl);
void create_variables(Varb_ar *Varb, int sm, fl_st fl);
void free_variables(Varb_ar *Varb, int sm, fl_st fl);
void in_con(Varb_ar *Varbar, net_par *netpar, run_par *runpar,
     int sm, fl_st fl);
void n_run(Varb_ar *Varbar, net_par *netpar, run_par *runpar,
     int sm, avr_val *av, fl_st fl);
void one_integration_step(net_par *netpar, run_par *runpar, Varb_ar *Varbar,
     Varb_ar *kin, Varb_ar *kout, double delt, int it, double time, 
     Varb_ar *Varc, fl_st fl);
double MRcal(net_par *netpar, run_par *runpar, double sRR, double sRL, 
       double sRF, fl_st fl);
double MLcal(net_par *netpar, run_par *runpar, double sLR, double sLF,
       fl_st fl);
double MFcal(net_par *netpar, run_par *runpar, double sFR, double sFL,
       double sFF, fl_st fl);
double Mcal(double Iall, double beta, double Mx, double sig, char tghlin,
       fl_st fl);
void one_syn_cal(double *Varo_syn, double *kout_syn, double MM, syn_par synpar,
     double time, int it, run_par *runpar, fl_st fl);
void pr_fct(Varb_ar *Varbar, net_par *netpar, run_par *runpar, double time,
     int it, fl_st fl);
void stat_ud_cal(stat_run *statrun, net_par *netpar, run_par *runpar,
     fl_st fl);
double lininter(double x1, double x2, double xc, double y1, double y2);