Excitation-contraction coupling in an integrative heart cell model (Greenstein et al 2006)

 Download zip file 
Help downloading and running models
Accession:62286
"... In this study, we generalize a recently developed analytical approach for deriving simplified mechanistic models of CICR (Ca(2+)-induced Ca(2+) release) to formulate an integrative model of the canine cardiac myocyte which is computationally efficient. The resulting model faithfully reproduces experimentally measured properties of EC (excitation-contraction) coupling and whole cell phenomena. The model is used to study the role of local redundancy in L-type Ca(2+) channel gating and the role of dyad configuration on EC coupling. Simulations suggest that the characteristic steep rise in EC coupling gain observed at hyperpolarized potentials is a result of increased functional coupling between LCCs (L-type Ca(2+) channels) and RyRs (ryanodine-sensitive Ca(2+) release channels). We also demonstrate mechanisms by which alterations in the early repolarization phase of the action potential, resulting from reduction of the transient outward potassium current, alters properties of EC coupling."
Reference:
1 . Greenstein JL, Hinch R, Winslow RL (2006) Mechanisms of excitation-contraction coupling in an integrative model of the cardiac ventricular myocyte. Biophys J 90:77-91 [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): Heart cell; Cardiac ventricular cell;
Channel(s): I L high threshold; I Potassium; I Calcium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s): Action Potentials;
Implementer(s):
Search NeuronDB for information about:  I L high threshold; I Calcium; I Potassium;
%        -------------------------------------------------------------
% 
%          NOTICE OF COPYRIGHT AND OWNERSHIP OF SOFTWARE
% 
%          Copyright 2005, The Johns Hopkins University
%             School of Medicine and Whiting School of Engineering. 
%             All rights reserved.
% 			For research use only; commercial use prohibited.
% 			Distribution without permission of Joseph L. Greenstein or
% 			Raimond L. Winslow not permitted. 
%           (jgreenst@jhu.edu, rwinslow@jhu.edu)
% 
%          Name of Program: 40-State coupled LCC-RyR Model
%          Version: version 1.0
%          Date: September 2005
% 
%        -------------------------------------------------------------  

global Vclamp_flag Period Shift Pulse_duration Pulse_amplitude Nstates_CaRU
global Counter T_array ICaL_array JCaL_array JRyR_array CaSSavg_array 

Counter = 1;
Length_array = 100000;
options1 = odeset('MaxStep',0.1);       %   Set integrator options

T_array = zeros(Length_array,1);        %   Initialize large arrays
T_array(1) = 123;                       %   Large value here prevents Counter from incrementing on first call to fcn_40state
ICaL_array = zeros(Length_array,1);
JCaL_array = zeros(Length_array,1);
JRyR_array = zeros(Length_array,1);
CaSSavg_array = zeros(Length_array,1);
T = [];
Y = [];

Vclamp_flag = 0;                        %   = 0 for APs, = 1 for voltage clamp 
Period = 1000;                          %   Period between stimuli or voltage clamp (ms)
Shift=5;                                %   Delay between start of Period and stimulus (ms)
Pulse_duration=0.5;                     %   Duration of stimulus (ms)
Pulse_amplitude=-80;                    %   Amplitude of stimulus current (A/F)
Num_beats = 10;                         %   Simulation runs on interval [0, Num_beats*Period]

Nstates_CaRU = 40;                      %   Number of states in the coupled LCC-RyR model

                                        %   Set initial conditions of states
if Vclamp_flag
    IC_CaRU = zeros(1,40);
    IC_CaRU(1) = 1;
    IC_global_VC = [ -100.0100    0.0001    0.9995    0.9995   10.0000  134.5668    0.0001    0.7500    0.1033    0.9781 ...
                        0.0001    0.9683    0.0134    0.0001    0.0000    0.0000    0.0153    0.0027    0.0002    0.0000 ...
                        0.0000    0.8232    0.0522    0.0012    0.0000    0.0000    0.1192    0.0034    0.0007    0.0001 ...
                        0.0000    0.9998    0.0002    0.0000    0.0000    0.0000 ];
    IC_VC = [ IC_CaRU IC_global_VC];
    IC = IC_VC;
else
    IC_AP = 100* ...
     [0.00682939648962  0.00000003363556  0.00000000054922  0.00004610432538  0.00000009423947 ...
      0.00035998715326  0.00000000177342  0.00000000075367  0.00000242134125  0.00000000495121 ...
      0.00000000252252  0.00000000000001  0.00000000000000  0.00000000002125  0.00000000000004 ...
      0.00000000012458  0.00000000000000  0.00000000000000  0.00000000000091  0.00000000000000 ...
      0.00000021351848  0.00000000000603  0.00000001314943  0.00000016333934  0.00000000033371 ...
      0.00000000364257  0.00000000000002  0.00000000000001  0.00000000284231  0.00000000000581 ...
      0.00261492026499  0.00000001288289  0.00000000607437  0.00001796055777  0.00000003671797 ...
      0.00012775068729  0.00000000063057  0.00000000026748  0.00000086504155  0.00000000177104 ...
     -0.93319772769854  0.00000380504749  0.00997668179931  0.00998165969884  0.10447882220110 ...
      1.31625456905363  0.00000128015497  0.00891915411676  0.00114462781701  0.00980722138327 ...
      0.00000175551540  0.00957567652704  0.00021947168410  0.00000188633504  0.00000000720571 ...
      0.00000000001032  0.00015206520187  0.00004470341235  0.00000665651077  0.00000052176869 ...
      0.00000001229128  0.00749980626396  0.00088108760299  0.00003881711321  0.00000076012995 ...
      0.00000000560386  0.00146019656332  0.00007653042561  0.00002905030557  0.00001075016020 ...
      0.00000657420277  0.00999574286291  0.00000355495242  0.00000062513877  0.00000006753310 ...
      0.00000000951191  ];
    IC = IC_AP;
end

if Vclamp_flag              %   Uses Vclamp_flag to choose simulation(s) below
    AP_flag = 0;
    Gain_flag = 1;
else
    AP_flag = 1;
    Gain_flag = 0;
end    

                            % Run APs.  Requires Vclamp_flag = 0
if AP_flag
    for i = 1:Num_beats
        T_range = [(i-1)*Period (i-1)*Period+Shift+5];
        [Ta,Ya] = ode23t(@fcn_40state,T_range,IC,options1);
        T_range = [(i-1)*Period+Shift+5 i*Period];
        IC = Ya(end,:);
        [Tb,Yb] = ode23t(@fcn_40state,T_range,IC);
        T = [T; Ta; Tb];
        Y = [Y; Ya; Yb];
        IC = Yb(end,:);
        i
    end
    figure; plot(T,Y(:,Nstates_CaRU+1))
end

                            % Generate EC coupling gain curve.  Requires Vclamp_flag = 1
if Gain_flag
    VC = [ -50.01:5:-5.01 0.01:5:60.01];
    clear JCaLp JRyRp
    rVC = round(VC);
    for i = 1:length(VC)
        Counter1 = Counter + 1;
        T_range = [0 5];
        IC = IC_VC;
        IC(Nstates_CaRU+1) = -100.01;
        [T1,Y1] = ode23t(@fcn_40state,T_range,IC,options1);
        T_range = [5 100];
        IC = Y1(end,:);
        IC(Nstates_CaRU+1) = VC(i);
        [T2,Y2] = ode23t(@fcn_40state,T_range,IC,options1);
        JCaLp(i) = max(JCaL_array(Counter1:Counter));
        JRyRp(i) = max(JRyR_array(Counter1:Counter));
        rVC(i)
    end
    ECGain1 = JRyRp./JCaLp;
    VolScale = 0.203e-12/25.84e-6*1000;  %  = VSS/Vmyo*1000
    figure;
    subplot(3,1,1); plot(rVC,JRyRp*VolScale,rVC,JCaLp*VolScale)
    subplot(3,1,2); plot(rVC,JRyRp/max(JRyRp),rVC,JCaLp/max(JCaLp))
    subplot(3,1,3); plot(rVC,ECGain1)
    set(gcf,'Position', [150   150   350   700])
end

T_array = T_array(1:Counter);           %   Truncate unused space from these storage arrays
ICaL_array = ICaL_array(1:Counter);
JCaL_array = JCaL_array(1:Counter);
JRyR_array = JRyR_array(1:Counter);
CaSSavg_array = CaSSavg_array(1:Counter);


Loading data, please wait...