# funny 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) # Translated from 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'] G_GHK_Na = 8.167940775713335e-10 # Unit mA/mM G_GHK_K = 2.366168724266607e-09 # Unit mA/mM P_f_Na = G_GHK_Na/F * 1e12 # Unit pL/s . G_GHK [=] Amp/(mol/s) P_f_K = G_GHK_K/F * 1e12 # Unit pL/s . G_GHK [=] Amp/(mol/s) x_fK_channel = 5000e3*6673/N_A*1e15 # unit fmol x_fNa_channel = x_fK_channel/100 # for Na component # load gate transition parameters params_gate = [5.78970090430308e-07, -1.83090386964676, 0.0116300002850840, 0.787348904990578] alpha = params_gate[0]*1e3 # unit s ^ -1 beta = params_gate[2]*1e3 # unit s ^ -1 kf = [P_f_Na / x_fNa_channel, # R_GHK P_f_K / x_fK_channel, # R_GHK alpha] kr = [P_f_Na / x_fNa_channel, # R_GHK P_f_K / x_fK_channel, # R_GHK beta] k_kinetic = kf + 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'], V['V_myo'], V['V_o']] + [1] * (num_rows-4) return (k_kinetic, N_cT, K_C, W)