Location: BG_to_channel @ 69d036e6a95b / parameter_finder / kinetic_parameters_to.py

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)