# Kr module, translated from Kernik19 # Return kinetic parameters, constraints, and vector of volumes in each # compartment (pL) (1 if gating variable, or in element corresponding to # kappa) # Based on Pan 2018 cardiac AP import numpy as np def kinetic_parameters(M, include_type2_reactions, dims, V): # Set the kinetic rate constants num_cols = dims['num_cols'] num_rows = dims['num_rows'] # constants are stored in V F = V['F'] R = V['R'] T = V['T'] N_A = V['N_A'] cKo = V['cKo'] G_GHK = 2.134709059004477e-08 # G_GHK [=] mA/mM P_Kr = G_GHK/F * 1e12 # Unit pL/s . x_Kr_channel = 143*414/N_A*1e15 x_Kr_channel = 3000/N_A*1e15 x_Kr_channel = V['numChannels']/N_A*1e15 # unit fmol # load gate transition parameters params_xr1 = [0.003702708442915483, 1.6149028778859738, 4.5365827167917646E-4, -1.3218634652232777] params_xr2 = [0.01245000000189733, -1.0273976425216251, 0.4649999999963666, -0.18153135376657775] alpha_xr1 = params_xr1[0]*1e3 # unit s ^ -1 beta_xr1 = params_xr1[2]*1e3 # unit s ^ -1 alpha_xr2 = params_xr2[0]*1e3 # unit s ^ -1 beta_xr2 = params_xr2[2]*1e3 # unit s ^ -1 # Calculate bond graph constants from kinetic parameters # Note: units of kappa are fmol/s, units of K are fmol^-1 kf_Kr = [P_Kr / x_Kr_channel/np.sqrt(cKo), # R_GHK alpha_xr1, # Rx1_0 alpha_xr1, # Rx1_1 alpha_xr2, # Rx2_0 alpha_xr2] # Rx2_1 kr_Kr = [P_Kr / x_Kr_channel/np.sqrt(cKo), # R_GHK beta_xr1, # Rx1_0 beta_xr1, # Rx1_1 beta_xr2, # Rx2_0 beta_xr2] # Rx2_1 k_kinetic = kf_Kr + kr_Kr # CONSTRAINTS N_cT = [] K_C = [] # volume vector # W = list(np.append([1] * num_cols, [V['V_myo']] * num_rows)) W = [1] * num_cols + [V['V_myo'], V['V_o']] + [1] * (num_rows-2) return (k_kinetic, N_cT, K_C, W)