- Author:
- Shelley Fong <s.fong@auckland.ac.nz>
- Date:
- 2022-03-03 10:55:44+13:00
- Desc:
- Changing Xi to X_i, and adding python param finder code
- Permanent Source URI:
- https://models.cellml.org/workspace/82e/rawfile/69d036e6a95bd97edb9c847f14b18f00d01e45cd/parameter_finder/kinetic_parameters_to.py
# 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 = 2.643525659662276E-7 # Unit mA/mM
P_to = G_GHK/F * 1e12 # Unit pL/s . G_GHK [=] Amp/(mol/s)
x_to_channel = 5369/N_A*1e15 # unit fmol
# load gate transition parameters
params_z = [1716.638590496878, 0.6689147804065088, 582.0046176878634, -0.6044222122873464]
params_y = [1.4166704626281983, -0.6527909696920009, 71.5477113842319, 0.5912126484520355]
z_zf = params_z[1]
z_zr = params_z[3]
z_yf = params_y[1]
z_yr = params_y[3]
zf = [z_zf, z_yf]
zr = [z_zr, z_yr]
# unit s ^ -1
alpha_zdv_bg = params_z[0] # unit s ^ -1
beta_zdv_bg = params_z[2] # unit s ^ -1
alpha_ydv_bg = params_y[0] # unit s ^ -1
beta_ydv_bg = params_y[2] # unit s ^ -1
kf_to = [P_to / x_to_channel, # R_GHK
3 * alpha_zdv_bg, # Rzdv_00
3 * alpha_zdv_bg, # Rzdv_01
2 * alpha_zdv_bg, # Rzdv_10
2 * alpha_zdv_bg, # Rzdv_11
alpha_zdv_bg, # Rzdv_20
alpha_zdv_bg, # Rzdv_21
alpha_ydv_bg, # Rydv_00
alpha_ydv_bg, # Rydv_10
alpha_ydv_bg, # Rydv_20
alpha_ydv_bg] # Rydv_30
kr_to = [P_to / x_to_channel, # R_GHK
beta_zdv_bg, # Rzdv_00
beta_zdv_bg, # Rzdv_01
2 * beta_zdv_bg, # Rzdv_10
2 * beta_zdv_bg, # Rzdv_11
3 * beta_zdv_bg, # Rzdv_20
3 * beta_zdv_bg, # Rzdv_21
beta_ydv_bg, # Rydv_00
beta_ydv_bg, # Rydv_10
beta_ydv_bg, # Rydv_20
beta_ydv_bg] # Rydv_30
k_kinetic = kf_to + kr_to
# 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)