//Created by libAntimony v2.4 model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__PU_membrane(I_iCa, I_iNa, I_ion_PU, alpha_scale, I_Ca, I_Na, I_NaP, I_NSCC_Ca, I_PM, I_NSCC_Na) // Assignment Rules: I_iCa := alpha_scale * (I_Ca + I_NSCC_Ca + I_PM); I_iNa := alpha_scale * (I_NSCC_Na + I_Na + I_NaP); I_ion_PU := I_iCa + I_iNa; // Variable initializations: alpha_scale = ; I_Ca = ; I_Na = ; I_NaP = ; I_NSCC_Ca = ; I_PM = ; I_NSCC_Na = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_Ca(I_Ca, Vm, T, R, F, CO, CS1) // Assignment Rules: I_Ca := gCa * (Vm - ECa_PU); gCa := (gCa_ * exp(kCa * Vm)) / (1.0 + exp(kVCa * (Vm - VhCa))); ECa_PU := ((R * T) / (2.0 * F)) * ln(CO / CS1); // Variable initializations: gCa_ = 0.074; kCa = 0.013; kVCa = -0.20; VhCa = -85.0; Vm = ; T = ; R = ; F = ; CO = ; CS1 = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_Na(I_Na, Vm, T, R, F, NO, NS1) // Assignment Rules: I_Na := gNa * (Vm - ENa_PU); ENa_PU := ((R * T) / F) * ln(NO / NS1); // Variable initializations: gNa = 13.5; Vm = ; T = ; R = ; F = ; NO = ; NS1 = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_NSCC_Ca(I_NSCC_Ca, hNSCC, Vm, ENSCC, KNSCC, CS1) // Assignment Rules: I_NSCC_Ca := gNSCC_Ca * (Vm - ENSCC); gNSCC_Ca := gNSCC_Ca_ * (power(KNSCC, hNSCC) / (power(KNSCC, hNSCC) + power(CS1, hNSCC))); // Variable initializations: gNSCC_Ca_ = 0.10; hNSCC = ; Vm = ; ENSCC = ; KNSCC = ; CS1 = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_NSCC_Na(I_NSCC_Na, hNSCC, Vm, ENSCC, KNSCC, CS1) // Assignment Rules: I_NSCC_Na := gNSCC_Na * (Vm - ENSCC); gNSCC_Na := gNSCC_Na_ * (power(KNSCC, hNSCC) / (power(KNSCC, hNSCC) + power(CS1, hNSCC))); // Variable initializations: gNSCC_Na_ = 160.0; hNSCC = ; Vm = ; ENSCC = ; KNSCC = ; CS1 = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_PM(I_PM, CS1) // Assignment Rules: I_PM := gPM * (power(CS1, 2.0) / (power(KPM, 2.0) + power(CS1, 2.0))); // Variable initializations: gPM = 675.0; KPM = 1.0; CS1 = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_NaP(I_NaP, NS1, Vm) // Assignment Rules: I_NaP := gNaP * (power(NS1, hNaP) / (power(KNaP, hNaP) + power(NS1, hNaP))) * (ENaP - Vm); // Variable initializations: gNaP = 187.5; KNaP = 1.0E4; hNaP = 4.0; ENaP = 10.0; NS1 = ; Vm = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__JSERCA(JSERCA, CER, CS1) // Assignment Rules: JSERCA := (VSERCA * (CS1 - A2 * CER)) / (1.0 + A4 * CS1 + A5 * CER + A6 * CS1 * CER); // Variable initializations: VSERCA = 1.0E5; A2 = 6E-4; A4 = 3.57; A5 = 2.7E-5; A6 = 2.31E-5; CER = ; CS1 = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__JMCU(JMCU, CS2, CMT) // Assignment Rules: JMCU := VMCU * (power(CS2, 2.0) / (power(KMCU, 2.0) + power(CS2, 2.0))) * epsilon_INH; epsilon_INH := power(KINH, hINH) / (power(KINH, hINH) + power(CMT, hINH)); // Variable initializations: VMCU = 800.0; KMCU = 10.0; KINH = 10.0; hINH = 4.0; CS2 = ; CMT = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__JIPR(JIPR, CER, CS2, P, time_) // Assignment Rules: JIPR := kIPR * power((P * phi1 * H) / (P * phi1 + phi_1), 4.0) * (CER - CS2); phi1 := (k1 * R1 + r2 * CS2) / (R1 + CS2); phi_1 := ((k_1 + r_2) * R3) / (R3 + CS2); phi2 := (k2 * R3 + r4 * CS2) / (R3 + CS2); phi3 := (g_phi3 * zeta) / ((1.0 + power(K_phi3_act / CS2, h_phi3_act)) * (1.0 + power(CS2 / K_phi3_inh, h_phi3_inh))); alpha_zeta := g_alpha; beta_zeta := g_beta / (1.0 + power(K_beta / CS2, h_beta)); // Rate Rules: H' = phi3 * (1.0 - H) - ((P * phi1 * phi2) / (P * phi1 + phi_1)) * H; zeta' = alpha_zeta * (1.0 - zeta) - beta_zeta * zeta; // Variable initializations: kIPR = 2000.0; k_1 = 6.4; k1 = 0.0; k2 = 4.0; r2 = 250.0; r_2 = 0.0; r4 = 750.0; R1 = 36.0; R3 = 300.0; H = 0.200; g_beta = 1500.0; h_beta = 4.0; g_alpha = 0.85; K_beta = 0.35; zeta = 0.300; K_phi3_act = 0.1; K_phi3_inh = 0.5; h_phi3_act = 3.0; h_phi3_inh = 3.0; g_phi3 = 4.5; CER = ; CS2 = ; P = ; time_ = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__JNCX(JNCX, CMT) // Assignment Rules: JNCX := VNCX * (CMT / (CMT + KNCX)); // Variable initializations: VNCX = 3.0; KNCX = 0.3; CMT = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__CS1(CS1, JS1S2, JNCX, JSERCA, I_iCa, delta_SPU, gamma_S1, gamma_MT, gamma_ER, alpha_scale, time_) // Assignment Rules: lambda_MT_S1 := gamma_MT / gamma_S1; lambda_ER_S1 := gamma_ER / gamma_S1; // Rate Rules: CS1' = (JS1S2 + lambda_MT_S1 * JNCX) - ((delta_SPU / (alpha_scale * 2.0)) * I_iCa + lambda_ER_S1 * JSERCA); // Variable initializations: CS1 = 0.120; JS1S2 = ; JNCX = ; JSERCA = ; I_iCa = ; delta_SPU = ; gamma_S1 = ; gamma_MT = ; gamma_ER = ; alpha_scale = ; time_ = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__CS2(CS2, JS1S2, JS2Cy, JMCU, JIPR, gamma_S1, gamma_S2, gamma_MT, gamma_ER, time_) // Assignment Rules: lambda_MT_S2 := gamma_MT / gamma_S2; lambda_ER_S2 := gamma_ER / gamma_S2; lambda_S1_S2 := gamma_S1 / gamma_S2; // Rate Rules: CS2' = (JS2Cy + lambda_ER_S2 * JIPR) - (lambda_S1_S2 * JS1S2 + lambda_MT_S2 * JMCU); // Variable initializations: CS2 = 0.023; JS1S2 = ; JS2Cy = ; JMCU = ; JIPR = ; gamma_S1 = ; gamma_S2 = ; gamma_MT = ; gamma_ER = ; time_ = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__CER(CER, JSERCA, JIPR, time_) // Rate Rules: CER' = JSERCA - JIPR; // Variable initializations: CER = 200.0; JSERCA = ; JIPR = ; time_ = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__CMT(CMT, JMCU, JNCX, time_) // Assignment Rules: fm := 1.0 / (1.0 + (Km * Bm) / power(Km + CMT, 2.0)); // Rate Rules: CMT' = fm * (JMCU - JNCX); // Variable initializations: CMT = 0.200; Km = 0.01; Bm = 100.0; JMCU = ; JNCX = ; time_ = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__NS1(NS1, alpha_scale, delta_SPU, I_iNa, time_) // Rate Rules: NS1' = -(delta_SPU / (1.0 * alpha_scale)) * I_iNa; // Variable initializations: NS1 = 1.01E4; alpha_scale = ; delta_SPU = ; I_iNa = ; time_ = ; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__model_parameters(R, F, T, NO, CO, KO, Ki, P, delta_SPU, gamma_S1, gamma_S2, gamma_MT, gamma_ER, KNSCC, ENSCC, hNSCC, alpha_scale, n_PU) // Assignment Rules: alpha_scale := n_PU_base / n_PU; // Variable initializations: R = 8.314E-3; F = 0.09649; T = 310.16; NO = 140.0E3; CO = 1.8E3; KO = 5400.0; Ki = 145E3; P = 1.0; delta_SPU = 18.5; gamma_S1 = 100.0; gamma_S2 = 1.0; gamma_MT = 200.0; gamma_ER = 20.0; KNSCC = 0.12; ENSCC = 0.0; hNSCC = 3.0; n_PU = ; n_PU_base = 50.0; end model faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__pacemaker_unit_model(I_ion_PU, CS1, CS2, n_PU, JS2Cy, JS1S2, Vm, time_) // Sub-modules, and any changes to those submodules: PU_membrane: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__PU_membrane(I_iCa, I_iNa, I_ion_PU, alpha_scale, I_Ca0, I_Na0, I_NaP0, I_NSCC_Ca0, I_PM0, I_NSCC_Na0); I_Ca: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_Ca(I_Ca0, Vm, T, R, F, CO, CS1); I_Na: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_Na(I_Na0, Vm, T, R, F, NO, NS10); I_NSCC_Ca: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_NSCC_Ca(I_NSCC_Ca0, hNSCC, Vm, ENSCC, KNSCC, CS1); I_NSCC_Na: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_NSCC_Na(I_NSCC_Na0, hNSCC, Vm, ENSCC, KNSCC, CS1); I_PM: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_PM(I_PM0, CS1); I_NaP: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__I_NaP(I_NaP0, NS10, Vm); JSERCA: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__JSERCA(JSERCA0, CER0, CS1); JMCU: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__JMCU(JMCU0, CS2, CMT0); JIPR: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__JIPR(JIPR0, CER0, CS2, P, time_); JNCX: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__JNCX(JNCX0, CMT0); CS1_mod: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__CS1(CS1, JS1S2, JNCX0, JSERCA0, I_iCa, delta_SPU, gamma_S1, gamma_MT, gamma_ER, alpha_scale, time_); CS2_mod: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__CS2(CS2, JS1S2, JS2Cy, JMCU0, JIPR0, gamma_S1, gamma_S2, gamma_MT, gamma_ER, time_); CER: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__CER(CER0, JSERCA0, JIPR0, time_); CMT: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__CMT(CMT0, JMCU0, JNCX0, time_); NS1: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__NS1(NS10, alpha_scale, delta_SPU, I_iNa, time_); model_parameters: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__model_parameters(R, F, T, NO, CO, KO, Ki, P, delta_SPU, gamma_S1, gamma_S2, gamma_MT, gamma_ER, KNSCC, ENSCC, hNSCC, alpha_scale, n_PU); end model *faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker____main() // Sub-modules, and any changes to those submodules: pacemaker_unit_model: faville_pullan_sanders_koh_lloyd_smith_2009_pacemaker__pacemaker_unit_model(I_ion_PU, CS1, CS2, n_PU, JS2Cy, JS1S2, Vm, time_); end