import math import numpy as np def kinetic_parameters(M, include_type2_reactions, dims, V): # R1-2 k_12p = 25900 # R2-4 K_dCai = 0.91 k_24m = 259e8 k_24p = k_24m/pow(K_dCai,2) # R2-2a K_dH1 = 1.09e-5 k_22am = 259e8 k_22ap = k_22am/K_dH1 # R4-5 K_dHi = 3.54e-3 k_45p = 259e8 k_45m = k_45p/K_dHi # R5-6 k_56p = 2540 k_56m = 67200 # R6-8 K_dCasr = 2.24 k_68m = 259e8 k_68p = k_68m*pow(K_dCasr,2) # R8-9 K_dHsr = 1.05e-8 k_89m = 259e8 k_89p = k_89m/K_dHsr # R9-10 K_dH = 7.24e-5 k_910p = 259e8 k_910m = k_910p/K_dH # R10-1 k_101p = 20.5 k_101m = 149 G_0_MgATP = 11900 R = 8.314 T = 310 K_MgATP = math.exp(-G_0_MgATP/(R*T))*pow(10,6) # Calculate remaining parameter using detailed balance k_12m = (k_12p*k_24p*k_45p*k_56p*k_68p*k_89p*k_910p*k_101p)/(k_24m*k_45m*k_56m*k_68m*k_89m*k_910m*k_101m*K_MgATP) ## Calculate bond graph constants from kinetic parameters # Note: units of kappa are fmol/s, units of K are fmol^-1 K_C = [K_MgATP, 1] k = [k_12p, k_24p, k_22ap, k_45p, k_56p, k_68p, k_89p, k_910p, k_101p, k_12m, k_24m, k_22am, k_45m, k_56m, k_68m, k_89m, k_910m, k_101m] # constraints N_cT = np.zeros([2,len(M[0])]) # Add constraint for MgATP hydrolysis N_cT[0][21] = 1 N_cT[0][22] = -1 N_cT[0][23] = -1 N_cT[0][18] = -1 # Add constraint for calcium transport N_cT[1][19] = 1 N_cT[1][20] = -1 W = [1]*18 + [ V['V_ISR'], V['V_myo'], V['V_SR'], V['V_myo'], V['V_myo'], V['V_myo']] return (k, N_cT, K_C, W)