Minimal model of interictal and ictal discharges “Epileptor-2” (Chizhov et al 2018)

 Download zip file 
Help downloading and running models
Accession:263074
"Seizures occur in a recurrent manner with intermittent states of interictal and ictal discharges (IIDs and IDs). The transitions to and from IDs are determined by a set of processes, including synaptic interaction and ionic dynamics. Although mathematical models of separate types of epileptic discharges have been developed, modeling the transitions between states remains a challenge. A simple generic mathematical model of seizure dynamics (Epileptor) has recently been proposed by Jirsa et al. (2014); however, it is formulated in terms of abstract variables. In this paper, a minimal population-type model of IIDs and IDs is proposed that is as simple to use as the Epileptor, but the suggested model attributes physical meaning to the variables. The model is expressed in ordinary differential equations for extracellular potassium and intracellular sodium concentrations, membrane potential, and short-term synaptic depression variables. A quadratic integrate-and-fire model driven by the population input current is used to reproduce spike trains in a representative neuron. ..."
Reference:
1 . Chizhov AV, Zefirov AV, Amakhin DV, Smirnova EY, Zaitsev AV (2018) Minimal model of interictal and ictal discharges "Epileptor-2". PLoS Comput Biol 14:e1006186 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Extracellular; Realistic Network; Synapse;
Brain Region(s)/Organism:
Cell Type(s): Abstract integrate-and-fire leaky neuron;
Channel(s): I Potassium; I Sodium; Na/K pump;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: Python; Pascal/Delphi; Mathematica; Javascript;
Model Concept(s): Synaptic Plasticity; Depression; Bifurcation; Oscillations; Epilepsy; Activity Patterns; Short-term Synaptic Plasticity;
Implementer(s): Chizhov, Anton [anton.chizhov at mail.ioffe.ru];
Search NeuronDB for information about:  I Sodium; I Potassium; Na/K pump;
unit Stimulation;

interface
uses Graphics,Forms,
     Unit1,Unit2;

type
    TStim = class(TObject)
     private
     protected
     public
       Status                           :string;
       t0,dtPulse,Interpulse,
       StimCurrent,StimRate,
       Current,Rate
                                        :double;
       NPulses,iPulse                   :integer;

    procedure StartStimulation(t_:double);
    procedure Stimulate(t_,dt_:double);

    constructor Create;
  end;


implementation
uses Equations2;

constructor TStim.Create;
begin
  inherited Create;
end;


procedure TStim.StartStimulation(t_:double);
begin
  Form2.Visible:=true;
  Form2.LineSeries6.Clear;
  Status:='On';
  t0:=t_;
  StimCurrent:=0;
  StimRate   :=0;
  case Form2.ComboBox1.ItemIndex of
  0: StimCurrent:=Form2.DDSpinEdit7.Value; {pA}
  1: StimRate   :=Form2.DDSpinEdit7.Value; {Hz}
  end;
  dtPulse    :=Form2.DDSpinEdit18.Value; {ms}
  Interpulse :=Form2.DDSpinEdit1.Value; {ms}
  NPulses    :=trunc(Form2.DDSpinEdit2.Value);
  iPulse:=0;
end;

procedure TStim.Stimulate(t_,dt_:double);
begin
  Current:=0;
  Rate:=0;
  if (Status='On')or(Status='Pulse') then begin
     { Start of pulse }
     if abs(trunc((t_-t0        )/Interpulse)*Interpulse+t0        -t_)<dt_ then begin
        Status:='Pulse';
        iPulse:=iPulse+1;
        Form2.Panel1.Color:=clGreen;
        Form2.LineSeries6.AddXY(t_,max(StimCurrent,StimRate));
//        Application.ProcessMessages;
     end;
     { End of pulse }
     if abs(trunc((t_-t0-dtPulse)/Interpulse)*Interpulse+t0+dtPulse-t_)<dt_ then begin
        Status:='On';
        Form2.Panel1.Color:=clRed;
        if iPulse=NPulses then begin
           Status:='Off';
           Form2.Panel1.Color:=clBtnFace;
        end;
        Form2.LineSeries6.AddXY(t_,max(StimCurrent,StimRate));
        Application.ProcessMessages;
     end;
     { During the pulse }
     if Status='Pulse' then begin
        Current:=StimCurrent;
        Rate   :=StimRate;
     end;
  end;
end;

end.

Loading data, please wait...