# 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 = 8.633865763157799e-09 # G_GHK [=] mA/mM P_ks = G_GHK/F * 1e12 # Unit pL/s . x_Ks_channel = (30833/1)/N_A*1e15 # fmol. From inferring whole cell conductance (Clancy) against single cell (3 Ps, Chinn) x_Ks_channel = (10e5*30833/70)/N_A*1e15 # fmol. From inferring whole cell conductance (Clancy) against single cell (3 Ps, Chinn) x_Ks_channel = 1.63E+6/N_A*1e15 # load gate transition parameters params_xs1 = [1.4553735686818794, 0.7139137911117777, 1.4406316908249004, -0.48710409409640176] params_xs2 = [0.3348069123572211, 0.7798495649896808, 0.3176442832555819, -0.518794842790217] alpha_xs1 = params_xs1[0] # unit s ^ -1 beta_xs1 = params_xs1[2] # unit s ^ -1 alpha_xs2 = params_xs2[0] # unit s ^ -1 beta_xs2 = params_xs2[2] # unit s ^ -1 # Calculate bond graph constants from kinetic parameters # Note: units of kappa are fmol/s, units of K are fmol^-1 kf_Ks = [P_ks / x_Ks_channel, # R_GHK alpha_xs1, # Rx1_0 alpha_xs1, # Rx1_1 alpha_xs2, # Rx2_0 alpha_xs2] # Rx2_1 kr_Ks = [P_ks / x_Ks_channel, # R_GHK beta_xs1, # Rx1_0 beta_xs1, # Rx1_1 beta_xs2, # Rx2_0 beta_xs2] # Rx2_1 k_kinetic = kf_Ks + kr_Ks # 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)