# Chloride-hydroxide exchanger, based on 6 state transporter by Crampin and Smith 2006 # Return kinetic parameters, constraints, and vector of volumes in each # compartment (pL) (1 if gating variable, or in element corresponding to # kappa) 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'] fkc = 1e6 # dissociation constants for A+B>C where Kd = k-/k+ # K_H is given as pK_H. K_H = 10^(-pK_H) K_HCO3 = 1.11e3 K_Cl = 9.84e3 # [=] mM kp = [3.52e2, 3.54e2] # [=] 1/s km = [3.47e2, 3.6e2] # [=] 1/s pKi = 7.537 pKo = 6.506 ni = 5.11 no = 1.44 Kd_pHi = pow(pow(10, -pKi), ni) Kd_pHo = pow(pow(10, -pKo), -no) kf_1 =[kp[0], fkc*K_HCO3, fkc, kp[1], fkc*K_Cl, fkc] kr_1 =[km[0], fkc, fkc*K_Cl, km[1], fkc, fkc*K_HCO3] # pH_dependent reactions kf_pHi = fkc kr_pHi = kf_pHi*Kd_pHi kf_2 = [kf_pHi]*6 kr_2 = [kr_pHi]*6 kf_pHo = fkc kr_pHo = kf_pHo*Kd_pHo kf_3 = [kf_pHo]*6 kr_3 = [kr_pHo]*6 # detailed bal? They said they did it already if False: kr_1[5] = np.product(kf_1)/(np.product(kr_1[0:4])) kr_2[5] = np.product(kf_2)/(np.product(kr_2[0:4])) kr_3[5] = np.product(kf_3)/(np.product(kr_3[0:4])) # total kf and kr kf = kf_1 #+ kf_2 + kf_3 kr = kr_1 #+ kr_2 + kr_3 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']]*2 + [1]*6# + [V['V_myo'], V['V_o']] return (k_kinetic, N_cT, K_C, W)