- Author:
- Randall Britten <r.britten@auckland.ac.nz>
- Date:
- 2010-08-17 19:14:11+12:00
- Desc:
- Replaced use of MathML "rem" (i.e. remainder / modulus) for repeated pacing with 10 explicit pacing "pieces".
Only paces 10 times though, at spacings of 1 second, duration of 5 milliseconds, as per original MATLAB.
This commit has pacing switched off (protocol set to 0).
Have tried with pacing on (protocol set to 1), and do get sort of action potentials, but shape and sign seems wrong.
If the problem with remainder/modulus is sorted out, just revert this commit out.
- Permanent Source URI:
- https://models.physiomeproject.org/workspace/saucerman_brunton_michailova_mcculloch_2003/rawfile/fb6bde2fe936787b55de310e9b774314098f73d2/saucerman_jbc2003.m
function output = saucerman_jbc2003(tspan)
% coupled signaling/EC for adult rat ventricular myocytes
%
% Reference:
% Jeffrey J. Saucerman, Laurence L. Brunton, Anushka P. Michailova, and Andrew D. McCulloch
% "Modeling beta-adrenergic control of cardiac myocyte contractility in silico", J. Biol. Chem., Vol 278: 47977-48003
%
% Copyright (2004) The Regents of the University of California
% All Rights Reserved
%
% Last modified: 4/19/2004
% Implemented by: Jeffrey Saucerman <jsaucer@ucsd.edu>
%
% Notes
% This version uses a reduced-order model of the L-type Ca channel: Michailova et al. (2004), submitted.
% For the original version, see the Berkeley Madonna code.
% Parameters
% ----- Signaling model parameters -------
% b-AR/Gs module
p(1) = 1; % Ltotmax [uM]
p(2) = 0.0132; % sumb1AR [uM]
p(3) = 3.83; % Gstot [uM]
p(4) = 0.285; % Kl [uM]
p(5) = 0.062; % Kr [uM]
p(6) = 33.0; % Kc [uM]
p(7) = 1.1e-3; % k_barkp [1/sec]
p(8) = 2.2e-3; % k_barkm [1/sec]
p(9) = 3.6e-3; % k_pkap [1/sec/uM]
p(10) = 2.2e-3; % k_pkam [1/sec]
p(11) = 16.0; % k_gact [1/sec]
p(12) = 0.8; % k_hyd [1/sec]
p(13) = 1.21e3; % k_reassoc [1/sec/uM]
% cAMP module
p(14) = 49.7e-3;% AC_tot [uM]
p(15) = 5.0e3; % ATP [uM]
p(16) = 38.9e-3;% PDEtot [uM]
p(17) = 0.0; % IBMXtot [uM]
p(18) = 0.0; % Fsktot [uM] (10 uM when used)
p(19) = 0.2; % k_ac_basal[1/sec]
p(20) = 8.5; % k_ac_gsa [1/sec]
p(21) = 7.3; % k_ac_fsk [1/sec]
p(22) = 5.0; % k_pde [1/sec]
p(23) = 1.03e3; % Km_basal [uM]
p(24) = 315.0; % Km_gsa [uM]
p(25) = 860.0; % Km_fsk [uM]
p(26) = 1.3; % Km_pde [uM]
p(27) = 0.4; % Kgsa [uM]
p(28) = 44.0; % Kfsk [uM]
p(29) = 30.0; % Ki_ibmx [uM]
% PKA module
p(30) = 0.59; % PKAItot [uM]
p(31) = 0.025; % PKAIItot [uM]
p(32) = 0.18; % PKItot [uM]
p(33) = 9.14; % Ka [uM]
p(34) = 1.64; % Kb [uM]
p(35) = 4.375; % Kd [uM]
p(36) = 0.2e-3; % Ki_pki [uM]
% PLB module
p(37) = 10; % epsilon [none]
p(38) = 106; % PLBtot [uM]
p(39) = 0.89; % PP1tot [uM]
p(40) = 0.3; % Inhib1tot [uM]
p(41) = 54; % k_pka_plb [1/sec]
p(42) = 21; % Km_pka_plb [uM]
p(43) = 8.5; % k_pp1_plb [1/sec]
p(44) = 7.0; % Km_pp1_plb [uM]
p(45) = 60; % k_pka_i1 [1/sec]
p(46) = 1.0; % Km_pka_i1 [uM]
p(47) = 14.0; % Vmax_pp2a_i1 [uM/sec]
p(48) = 1.0; % Km_pp2a_i1 [uM]
p(49) = 1.0e-3; % Ki_inhib1 [uM]
% LCC module
p(50) = 25e-3; % LCCtot [uM]
p(51) = 25e-3; % PP1lcctot [uM]
p(52) = 25e-3; % PP2Alcctot [uM]
p(53) = 54; % k_pka_lcc [1/sec]
p(54) = 21; % Km_pka_lcc [uM]
p(55) = 8.52; % k_pp1_lcc [1/sec]
p(56) = 3; % Km_pp1_lcc [uM]
p(57) = 10.1; % k_pp2a_lcc [1/sec]
p(58) = 3; % Km_pp2a_lcc [uM]
% ---- EC Coupling model parameters ------
% universal parameters
p(59) = 20.8e-6; % Vmyo [uL]
p(60) = 9.88e-7; % Vnsr [uL]
p(61) = 9.3e-8; % Vjsr [uL]
p(62) = 1.534e-4; % ACap [cm^2] with C = 1 uF/cm^2
p(63) = 310; % Temp [K]
% extracellular concentrations
p(64) = 140; % Extracellular Na [mM]
p(65) = 5.4; % Extracellular K [mM]
p(66) = 1.8; % Extracellular Ca [mM]
% current conductances
p(67) = 8.0; % G_Na [mS/uF]
p(68) = 0.35; % G_to [mS/uF]
p(69) = 0.07; % G_ss [mS/uF]
p(70) = 0.24; % G_kibar [mS/uF]
p(71) = 0.008; % G_kp [mS/uF]
% I_Ca parameters
p(72) = 300; % f [1/sec]
p(73) = 2e3; % g [1/sec]
p(74) = 5187.5; % gammao [1/sec/mM]
p(75) = 10; % omega [1/sec]
p(76) = 5.823e-9*3.0; % pCa [cm/sec]
p(77) = 1.078e-11*3.0; % pK [cm/sec]
p(78) = 3e5; % Nlcc [#/cell]
p(79) = -0.458; % I_Ca05 [uA/uF]
% pumps and background currents
p(80) = 1483; % k_NaCa [uA/uF]
p(81) = 87.5; % Km_Na [mM]
p(82) = 1.38; % Km_Ca [mM]
p(83) = 0.1; % k_sat [none]
p(84) = 0.35; % eta [none]
p(85) = 1.1; % ibarnak [uA/uF]
p(86) = 10; % Km_Nai [mM]
p(87) = 1.5; % Km_Ko [mM]
p(88) = 1.15; % ibarpca [uA/uF]
p(89) = 0.5e-3; % Km_pca [mM]
p(90) = 2.8e-3; % G_Cab [uA/uF]
p(91) = 1.18e-3; % G_Nab [uA/uF]
p(92) = 0; % Pns
p(93) = 1.2e-3; % Km_ns [mM]
% Calcium handling parameters
p(94) = 4.7; % I_upbar [mM/sec]
p(95) = 3e-4; % Km_up [mM]
p(96) = 15; % nsrbar [mM]
p(97) = 2e-3; % tauon [sec]
p(98) = 2e-3; % tauoff [sec]
p(99) = 60e3; % gmaxrel [mM/sec]
p(100) = 0.18e-3;% dcaith [mM]
p(101) = 0.8e-3; % Km_rel [mM]
p(102) = 8.75; % CSQNth [mM]
p(103) = 15; % CSQNbar [mM]
p(104) = 0.8; % Km_csqn [mM]
p(105) = 5.7e-4; % tau_tr [sec]
p(106) = 0.07; % TRPNbar [mM]
p(107) = 0.05; % CMDNbar [mM]
p(108) = 0.07; % INDObar [mM]
p(109) = 0.5128e-3; % Km_trpn [mM]
p(110) = 2.38e-3; % Km_cmdn [mM]
p(111) = 8.44e-4; % Km_indo [mM]
% Initial conditions and mass matrix
% b-AR/Gsa module
% 1 2 3 4 5 6 7 8 9
% L R Gs b1ARtot b1ARd b1ARp Gsagtptot Gsagdp Gsbg
y10=[10; 0.01079;3.829; 0.01205;0.0; 1.154e-3;0.02505; 6.446e-4;0.02569];
m1 =[0, 0, 0, 1, 1, 1, 1, 1, 1];
% cAMP module and PKA module
% 10 11 12 13 14 15
% Gsa_gtp Fsk AC PDE IBMX cAMPtot
y20=[0.02241;0; 0.04706;0.0389; 0; 0.8453];
m2 =[0, 0, 0, 0, 0, 1];
% PKA module
% 16 17 18
% cAMP PKACI PKACII
y30=[0.2268;0.05868;8.278e-3];
m3 =[0, 0, 0];
% PLB
% 19 20 21 22
% PLBs Inhib1ptot Inhib1p PP1
y40=[4.105; 0.0526; 6.3e-5; 0.838];
m4 =[1, 1, 0, 0];
% LCC module
% 23 24
% LCCap LCCbp
y50=[5.103e-3; 5.841e-3];
m5 =[1, 1];
% Gating variables
% 25 26 27 28 29 30 31 32 33
% m h j v w x y z rto sto ssto rss sss
y60=[1.4e-3;0.99; 0.99; 0.0; 0.0; 0.13; 0.96; 0.92; 1.4e-3; 1.0; 0.613; 198e-3; 0.43];
m6 =[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
% Intracellular concentrations/ Membrane voltage
% 38 39 40 41 42 43 44
% Ca_nsr Ca_jsr Nai Ki Cai Vm trel
y70=[1.92; 1.92; 16; 145; 1.58e-4;-85.66; 0.9];
m7 =[1, 1, 1, 1, 1, 1, 1];
% Put everything together
y0 = [y10;y20;y30;y40;y50;y60;y70];
M = diag([m1,m2,m3,m4,m5,m6,m7]);
% Options
%tspan = [0;120];
options = odeset('Mass',M,'RelTol',1e-5,'MaxStep',5e-3,'Stats','on'); % set Reltol to 1e-6 for vclamp?
% Run simulation
[t,y] = ode15s(@f,tspan,y0,options,p);
yfinal = y(end,:)
Gsagtptot = y(:,7); cAMPtot = y(:,15); cAMPfree = y(:,16);
Nai = y(:,40); Ki = y(:,41); Cai = y(:,42); Vm = y(:,43);
Ca_nsr = y(:,38); Ca_jsr = y(:,39);
vlcc = y(:,28); wlcc = y(:,29); xlcc = y(:,30); ylcc = y(:,31); zlcc = y(:,32);
% global evars;
% evars = remove_repeats(evars);
% % Q_CaL = -1e3/10*trapz(evars(:,1),evars(:,2)) % Q_CaL [pC] should be 16.2+/-3
% % SRcontent = evars(end,3)
% te = evars(:,1); I_Ca = evars(:,2); I_rel = evars(:,3);
% clear global evars;
subplot(2,2,1);
plot(t,y(:,17));
title('Vm');
subplot(2,2,2);
plot(t,Cai);
title('Cai');
% subplot(2,2,3);
% plot(te,I_Ca);
output = [t,y];
function ydot = f(t,y,p)
ydot = zeros(size(y));
% -------- SIGNALING MODEL -----------
% b-AR module
LR = y(1)*y(2)/p(4);
LRG = LR*y(3)/p(5);
RG = y(2)*y(3)/p(6);
BARKDESENS = p(7)*(LR+LRG);
BARKRESENS = p(8)*y(5);
PKADESENS = p(9)*y(17)*y(4);
PKARESENS = p(10)*y(6);
GACT = p(11)*(RG+LRG);
HYD = p(12)*y(7);
REASSOC = p(13)*y(8)*y(9);
ydot(1) = p(1)-LR-LRG-y(1);
ydot(2) = y(4)-LR-LRG-RG-y(2);
ydot(3) = p(3)-LRG-RG-y(3);
ydot(4) = (BARKRESENS-BARKDESENS)+(PKARESENS-PKADESENS);
ydot(5) = BARKDESENS-BARKRESENS;
ydot(6) = PKADESENS-PKARESENS;
ydot(7) = GACT-HYD;
ydot(8) = HYD-REASSOC;
ydot(9) = GACT-REASSOC;
% end b-AR module
% cAMP module
Gsa_gtp_AC = y(10)*y(12)/p(27);
Fsk_AC = y(11)*y(12)/p(28);
AC_ACT_BASAL = p(19)*y(12)*p(15)/(p(23)+p(15));
AC_ACT_GSA = p(20)*Gsa_gtp_AC*p(15)/(p(24)+p(15));
AC_ACT_FSK = p(21)*Fsk_AC*p(15)/(p(25)+p(15));
PDE_ACT = p(22)*y(13)*y(16)/(p(26)+y(16)); % FIXME: change 0.3*y(15) to cAMPfree
PDE_IBMX = y(13)*y(14)/p(29);
ydot(10) = y(7)-Gsa_gtp_AC-y(10);
ydot(11) = p(18)-Fsk_AC-y(11);
ydot(12) = p(14)-Gsa_gtp_AC-y(12); % note: assumes Fsk = 0. Change Gsa_gtp_AC to Fsk_AC for Forskolin.
ydot(13) = p(16)-PDE_IBMX-y(13);
ydot(14) = p(17)-PDE_IBMX-y(14);
ydot(15) = AC_ACT_BASAL+AC_ACT_GSA+AC_ACT_FSK-PDE_ACT;
% end cAMP module
% PKA module
% 4/13/04 note:
% I am currently not using an analytical solution for cAMPfree, but the
% below analytical solution does work.
% cAMPtemp = y(15)-(2*A2RC_I+2*A2R_I)-(2*A2RC_II+2*A2R_II);
% ydot(16) = cAMPtemp-sqrt(cAMPtemp^2-4*p(33)*(A2RC_I+A2RC_II))-y(16);
PKI = p(32)*p(36)/(p(36)+y(17)+y(18));
A2RC_I = (y(17)/p(35))*y(17)*(1+PKI/p(36));
A2R_I = y(17)*(1+PKI/p(36));
A2RC_II = (y(18)/p(35))*y(18)*(1+PKI/p(36));
A2R_II = y(18)*(1+PKI/p(36));
ARC_I = (p(33)/y(16))*A2RC_I;
ARC_II = (p(33)/y(16))*A2RC_II;
ydot(16) = y(15)-(ARC_I+2*A2RC_I+2*A2R_I)-(ARC_II+2*A2RC_II+2*A2R_II)-y(16);
PKAtemp = p(33)*p(34)/p(35)+p(33)*y(16)/p(35)+y(16)^2/p(35);
ydot(17) = 2*p(30)*y(16)^2-y(17)*(1+PKI/p(36))*(PKAtemp*y(17)+y(16)^2);
ydot(18) = 2*p(31)*y(16)^2-y(18)*(1+PKI/p(36))*(PKAtemp*y(18)+y(16)^2);
% end PKA module
% PLB module
PLB = p(38)-y(19);
PLB_PHOSPH = p(41)*y(17)*PLB/(p(42)+PLB);
PLB_DEPHOSPH = p(43)*y(22)*y(19)/(p(44)+y(19));
ydot(19) = PLB_PHOSPH-PLB_DEPHOSPH;
Inhib1 = p(40)-y(20);
Inhib1p_PP1 = y(21)*y(22)/p(49);
Inhib1_PHOSPH = p(45)*y(17)*Inhib1/(p(46)+Inhib1);
Inhib1_DEPHOSPH = p(47)*y(20)/(p(48)+y(20));
ydot(20) = Inhib1_PHOSPH-Inhib1_DEPHOSPH;
ydot(21) = y(20)-Inhib1p_PP1-y(21);
ydot(22) = p(39)-Inhib1p_PP1-y(22);
fracPLBp = y(19)/p(38);
fracPLB = PLB/p(38);
fracPLBo = 0.9613; % adjust when changes are made to signaling model!
% end PLB module
% LCC module
LCCa = p(50)-y(23);
LCCa_PHOSPH = p(37)*p(53)*y(18)*LCCa/(p(54) + p(37)*LCCa);
LCCa_DEPHOSPH = p(37)*p(57)*p(52)*y(23)/(p(58)+p(37)*y(23));
ydot(23) = LCCa_PHOSPH - LCCa_DEPHOSPH;
fracLCCap = y(23)/p(50);
fracLCCapo = 0.2041;
LCCb = p(50)-y(24);
LCCb_PHOSPH = p(37)*p(53)*y(18)*LCCb/(p(54)+p(37)*LCCb);
LCCb_DEPHOSPH = p(37)*p(55)*p(51)*y(24)/(p(56)+p(37)*y(24));
ydot(24) = LCCb_PHOSPH-LCCb_DEPHOSPH;
fracLCCbp = y(24)/p(50);
fracLCCbpo = 0.2336;
% end LCC module
% -------- END SIGNALING MODEL ---------
% -------- EC COUPLING MODEL -----------
% Constants
R = 8314; % R [J/kmol*K]
Frdy = 96485; % Frdy [C/mol]
FoRT = Frdy/R/p(63);
zna = 1; % Na valence
zk = 1; % K valence
zca = 2; % Ca valence
% Nernst Potentials
ena = (1/FoRT/zna)*log(p(64)/y(40)); % should be 70.54 mV
ek = (1/FoRT/zk)*log(p(65)/y(41)); % should be -87.94 mV
eca = (1/FoRT/zca)*log(p(66)/y(42)); % should be 120 mV
%eks = (1/FoRT)*logn((ko+prnak*nao)/(ki+prnak*nai)) % should be -77.54
ecl = -40.0;
% I_Na: Fast Na Current
am = 0.32*(y(43)+47.13)/(1-exp(-0.1*(y(43)+47.13)));
bm = 0.08*exp(-y(43)/11);
if y(43) >= -40
ah = 0; aj = 0;
bh = 1/(0.13*(1+exp(-(y(43)+10.66)/11.1)));
bj = 0.3*exp(-2.535e-7*y(43))/(1+exp(-0.1*(y(43)+32)));
else
ah = 0.135*exp((80+y(43))/-6.8);
bh = 3.56*exp(0.079*y(43))+3.1e5*exp(0.35*y(43));
aj = (-1.2714e5*exp(0.2444*y(43))-3.474e-5*exp(-0.04391*y(43)))*(y(43)+37.78)/(1+exp(0.311*(y(43)+79.23)));
bj = 0.1212*exp(-0.01052*y(43))/(1+exp(-0.1378*(y(43)+40.14)));
end
ydot(25) = 1e3*(am*(1-y(25))-bm*y(25));
ydot(26) = 1e3*(ah*(1-y(26))-bh*y(26));
ydot(27) = 1e3*(aj*(1-y(27))-bj*y(27));
I_Na = p(67)*y(25)^3*y(26)*y(27)*(y(43)-ena);
% I_Ca: L-type Calcium Current
alcc = 400*exp( (y(43)+2)/10 ); % [1/sec]
blcc = 50*exp( -1*(y(43)+2)/13 ); % [1/sec]
flcc = p(72)*(0.375*fracLCCap/fracLCCapo+0.625); % PHOSPHOREGULATION
ylccinf = 1.0/(1+exp((y(43)+55.0)/7.5 )) +0.1/(1+exp((-y(43)+21.0)/6.0 ));
tauylcc = 0.02 + 0.3/( 1 +exp( (y(43)+30)/9.5 ) ); % [sec]
gamma = p(74)*y(42); % [1/sec/mM]
vgamma = gamma*((1-y(28))^4+2*y(28)*(1-y(28))^3+4*y(28)^2*(1-y(28))^2+8*y(28)^3*(1-y(28))+16*y(28)^4*(1-flcc/p(73)));
vomega = p(75)*((1-y(29))^4+1/2*y(29)*(1-y(29))^3+1/4*y(29)^2*(1-y(29))^2+1/8*y(29)^3*(1-y(29))+1/16*y(29)^4);
ydot(28) = alcc*(1-y(28))-blcc*y(28);
ydot(29) = 2*alcc*(1-y(29))-blcc/2*y(29);
ydot(30) = flcc*(1-y(30))-p(73)*y(30);
ydot(31) = (ylccinf - y(31))/tauylcc;
ydot(32) = vomega*(1-y(32))-vgamma*y(32);
if abs(y(43)) < 1e-6
disp('Warning! Voltage near zero, could influence ibarca and ibark!');
end
ibarca = p(76)*4*(y(43)*Frdy*FoRT) * (1e-3*exp(2*y(43)*FoRT)-0.341*p(66)) /(exp(2*y(43)*FoRT)-1);
ibark = p(77)*(y(43)*Frdy*FoRT)*(y(41)*exp(y(43)*FoRT)-p(65)) /(exp(y(43)*FoRT)-1);
favail = 0.5*(0.4*fracLCCbp/fracLCCbpo+0.60); % PHOSPHOREGULATION
I_Ca = ibarca*p(78)*favail*y(28)^4*y(30)*y(31)*y(32);
I_CaK = ibark/(1+I_Ca/p(79))*p(78)*favail*y(28)^4*y(30)*y(31)*y(32);
%I_Ca = 0; I_CaK = 0;
I_Catot = I_Ca+I_CaK;
% I_to: Transient Outward K Current
rtoss = 1/(1+exp((y(43)+10.6)/-11.42));
stoss = 1/(1+exp((y(43)+45.3)/6.8841));
taurto = 1.0/(45.16*exp(0.03577*(y(43)+50))+98.9*exp(-0.1*(y(43)+38))); % [sec]
tausto = 0.35*exp(-((y(43)+70)/15)^2)+0.035; % [sec]
taussto = 3.7*exp(-((y(43)+70)/30)^2)+0.035; % [sec]
ydot(33) = (rtoss-y(33))/taurto;
ydot(34) = (stoss-y(34))/tausto;
ydot(35) = (stoss-y(35))/taussto;
I_to = p(68)*y(33)*(0.886*y(34)+0.114*y(35))*(y(43)-ek); % [uA/uF]
% I_ss: Steady-state K Current
rssinf = 1/(1+exp(-(y(43)+11.5)/11.82));
taurss = 10/(45.16*exp(0.03577*(y(43)+50))+98.9*exp(-0.1*(y(43)+38)));
sssinf = 1/(1+exp((y(43)+87.5)/10.3));
tausss = 2.1;
ydot(36) = (rssinf-y(36))/taurss;
ydot(37) = (sssinf-y(37))/tausss;
I_ss = p(69)*y(36)*y(37)*(y(43)-ek);
% I_ki: Time-Independent K Current
aki = 1.02/(1+exp(0.2385*(y(43)-ek-59.215)));
bki =(0.49124*exp(0.08032*(y(43)+5.476-ek)) + exp(0.06175*(y(43)-ek-594.31))) /(1 + exp(-0.5143*(y(43)-ek+4.753)));
kiss = aki/(aki+bki);
I_ki = p(70)*sqrt(p(65)/5.4)*kiss*(y(43)-ek) ;
% I_kp: Plateau K Current
kp = 1/(1+exp((7.488-y(43))/5.98));
I_kp = p(71)*kp*(y(43)-ek);
% I_ncx: Na/Ca Exchanger Current
s4 = exp(p(84)*y(43)*FoRT)*y(40)^3*p(66);
s5 = exp((p(84)-1)*y(43)*FoRT)*p(64)^3*y(42);
I_ncx = p(80)/(p(81)^3+p(64)^3) /(p(82)+p(66)) /(1+p(83)*exp((p(84)-1)*y(43)*FoRT)) *(s4-s5);
% I_nak: Na/K Pump Current
sigma = (exp(p(64)/67.3)-1)/7;
fnak = 1/(1+0.1245*exp(-0.1*y(43)*FoRT)+0.0365*sigma*exp(-y(43)*FoRT));
I_nak = p(85) *fnak /(1+(p(86)/y(40))^1.5) *(p(65)/(p(65)+p(87)));
% I_pca: Sarcolemmal Ca Pump Current
I_pca = p(88)*y(42)/(p(89)+y(42));
% I_cab: Ca Background Current
I_cab = p(90)*(y(43)-eca);
% I_nab: Na Background Current
I_nab = p(91)*(y(43)-ena);
% I_nsca: Nonspecific Ca-Activated Current: not used
% Total Membrane Currents
I_Na_tot = I_Na+I_nab+3*I_ncx+3*I_nak; % [uA/uF]
I_K_tot = I_to+I_ss+I_ki+I_kp-2*I_nak+I_CaK; % [uA/uF]
I_Ca_tot = I_Ca+I_cab+I_pca-2*I_ncx; % [uA/uF]
% Calcium Induced Calcium Release (CICR)
trel = y(44)+2e-3;
ryron = 1-exp(-trel/p(97));
ryroff = exp(-trel/p(98));
grel = p(99)/(1+exp((I_Ca_tot+5)/0.9)); % adjusted for rat [1/sec]
I_rel = grel*ryron*ryroff*(y(39)-y(42)); % [mM/sec]
% Other SR fluxes and concentrations
Km_up = p(95)*(1+2*fracPLB)/(1+2*fracPLBo); % PHOSPHOREGULATION
I_up = p(94)*y(42)^2/(Km_up^2+y(42)^2); % [mM/sec]
% Original: I_up = p(94)*y(42)^2/(p(95)^2+y(42)^2); % [mM/sec]
I_leak = p(94)*y(38)/p(96); % [mM/sec]
I_tr = (y(38)-y(39))/p(105); % [mM/sec]
Bjsr = 1/( 1+p(103)*p(104)/(p(104)+y(39))^2 );
ydot(38) = I_up-I_leak-I_tr*p(61)/p(60); % [mM/sec]
ydot(39) = Bjsr*(I_tr-I_rel); % [mM/sec]
SRcontent = 1e3*((y(39)+y(39)/Bjsr)*p(61)/p(59)+y(38)*p(60)/p(59)); % [umol/L cytosol]
% Cytoplasmic Calcium Buffering
btrpn = p(106)*p(109)/(p(109)+y(42))^2;
bcmdn = p(107)*p(110)/(p(110)+y(42))^2;
bindo = p(108)*p(111)/(p(111)+y(42))^2;
Bmyo = 1/( 1+ bcmdn + btrpn + btrpn + bindo);
% Ion Concentrations and Membrane Potential
ydot(40) = -1e3*I_Na_tot*p(62)/(p(59)*zna*Frdy); % [mM/sec]
ydot(41) = -1e3*I_K_tot*p(62)/(p(59)*zk*Frdy); % [mM/sec]
ydot(42) = -Bmyo*(1e3*I_Ca_tot*p(62)/(p(59)*zca*Frdy) ...
+((I_up-I_leak)*p(60)/p(59))-(I_rel*p(61)/p(59))); % [mM/sec]
% Simulation type
protocol = 'none';
switch lower(protocol)
case {'none',''},
I_app = 0;
case 'pace', % pace w/ current injection at rate 'rate'
rate = 1;
if mod(t+0.9,1/rate) <= 5e-3
I_app = 10.0;
else
I_app = 0.0;
end
case 'vclamp',
V_hold = -40;
V_test = -10;
if (t > 59.1 & t < 59.5)
V_clamp = V_test;
else
V_clamp = V_hold;
end
R_clamp = .02;
I_app = (V_clamp-y(43))/R_clamp;
end
ydot(43) = -1e3*(I_Ca_tot+I_K_tot+I_Na_tot-I_app);
% CICR timing: y(44) tracks the last time when Vdot > 30 mV/msec
if (ydot(43) > 30e3)
ydot(44) = 1-1e4*y(44);
else
ydot(44) = 1;
end
% ----- END EC COUPLING MODEL ---------------
% Export intermediate variables (comment out for general usage)
% global evars;
% evars = [evars;t,I_Ca];%,SRcontent,I_nak];%,fracLCCap,fracLCCbp,fracPLB];