# fast Na module # 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 = 4.606372687363260e-07 #1.289597323559330e-06 # Unit mA/mM P_TCC = G_GHK/F * 1e12 # Unit pL/s . G_GHK [=] Amp/(mol/s) x_TCC = 228000/N_A*1e15 # unit fmol. From Droogmans 1989 x_TCC = V['numChannels']/N_A*1e15 # unit fmol # load gate transition parameters params_d = [2.66722621712886, 0.876568910405296, 0.483332201416662, -0.872117216889333] params_f = [0.00284309660183583, -0.576510778245838, 0.830414906761407, 1.73582739545622] z_df = params_d[1] z_dr = params_d[3] z_ff = params_f[1] z_fr = params_f[3] zf = [z_df, z_ff] zr = [z_dr, z_fr] # unit s ^ -1 alpha_d = params_d[0]*1e3 # unit s ^ -1 beta_d = params_d[2]*1e3 # unit s ^ -1 alpha_f = params_f[0]*1e3 # unit s ^ -1 beta_f = params_f[2]*1e3 # unit s ^ -1 kf_Ca = [P_TCC / x_TCC, # R_GHK alpha_d, # Rb_10 alpha_d, # Rb_11 alpha_f, # Rg_00 alpha_f] # Rg_20 kr_Ca = [P_TCC / x_TCC, # R_GHK beta_d, # Rb_00 beta_d, # Rb_01 beta_f, # Rg_00 beta_f] # Rg_20 k_kinetic = kf_Ca + kr_Ca # 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)