- Author:
- Shelley Fong <s.fong@auckland.ac.nz>
- Date:
- 2021-10-27 11:22:54+13:00
- Desc:
- Adding GEF stuff
- Permanent Source URI:
- https://models.cellml.org/workspace/700/rawfile/fcefc10a7dd7e17af448dbb9d7bab2ee8a2746f1/parameter_finder/grand_kinetic_parameters.py
# Kinetic rate constants for composite model of FCU-AC
# they must be computed together because of the presence of new potential closed loops
# order: {'cAMP','LRGbinding_B1AR','LRGbinding_M2','GsProtein','GiProtein'}
import numpy as np
def grand_kinetic_parameters(M, include_type2_reactions, dims, V, noLRG):
num_cols = dims['num_cols']
num_rows = dims['num_rows']
# shared large/small constants
bigNum = 1e5
fastKineticConstant = bigNum
smallReverse = 1e0
# M2 composite: LRG_M2 + GiProtein
K_M2sig1 = 30 # uM Kc
K_M2sig2 = 0.16 # uM Kh
K_M2sig4 = 11 # uM Kl
k_M2sig1p = fastKineticConstant
k_M2sig1m = k_M2sig1p*K_M2sig1
k_M2sig2p = fastKineticConstant
k_M2sig2m = k_M2sig2p*K_M2sig2
k_M2sig4p = fastKineticConstant
k_M2sig4m = k_M2sig4p*K_M2sig4
k_M2sig3p = fastKineticConstant
k_M2sig3m = k_M2sig1m*k_M2sig2m*k_M2sig3p*k_M2sig4p/(k_M2sig1p*k_M2sig2p*k_M2sig4m) # interim?
k_Doff1p = fastKineticConstant
k_Doff1m = smallReverse
k_Ton1p = fastKineticConstant
k_Ton1m = smallReverse
k_Doff2p = fastKineticConstant
k_Doff2m = smallReverse
k_Ton2p = fastKineticConstant
k_Ton2m = smallReverse
k_M2Act1p = 2.5 # 1/s
k_M2Act1m = smallReverse # 1/s
k_M2Act2p = 0.05 # 1/s
k_M2Act2m = smallReverse # 1/s
k_M2Hydp = 0.8 # 1/s
k_M2Hydm = smallReverse # 1/s
k_M2Reassocp = 1.21e3 # 1/uM.s
k_M2Reassocm = k_M2Reassocp/fastKineticConstant # 1/s
# phosphorylation of GDP by NDPK (nucleoside diphosphate kinase) - omitting MM enzyme
# Loop1: find kact1m using detailed balance
k_M2Act1m = (k_M2Act1p*k_M2sig1p)/k_M2sig1m
# Loop2: find kact1m using detailed balance
k_M2Act2m = (k_M2Act2p*k_M2sig3p)/k_M2sig3m
# Big Loop: find k_M2sig3p or kact2m using detailed balance
# *** unnecessary ***
k_M2sig3m = k_M2Act1p*k_M2sig2m*k_M2sig3p*k_M2sig4p/(k_M2Act1m*k_M2sig2p*k_M2sig4m)
# CLOSED LOOP involving G - aGTP - aGDP - G
# use detailed balance to find kReasocm with either Act (as they have
# same equilibrium constant
if True:
k_M2Reassocm = k_M2Act1p*k_M2Hydp*k_M2Reassocp/(k_M2Act1m*k_M2Hydm)
# TOTAL
# order: {'cAMP','LRGbinding_B1AR','LRGbinding_M2','GsProtein','GiProtein'}
# forwaard first, then reverse!
k_kinetic = [k_M2sig1p, k_M2sig2p, k_M2sig3p, k_M2sig4p,# LRG_M2
k_Doff1p, k_Ton1p, k_M2Act1p, k_Doff2p, k_Ton2p, k_M2Act2p, k_M2Hydp, k_M2Reassocp, #GiProtein
k_M2sig1m, k_M2sig2m, k_M2sig3m, k_M2sig4m,
k_Doff1m, k_Ton1m, k_M2Act1m, k_Doff2m, k_Ton2m, k_M2Act2m, k_M2Hydm, k_M2Reassocm
]
# CONSTRAINTS
N_cT = []
if False:
N_cT = np.zeros([1,size(M,2)])
# substrate B1ARp is in eqlm with product B1ARtot
N_cT[0][num_cols] = 1
N_cT[0][num_cols + 1] = -1
K_C = np.ones([1,len(N_cT)])
# volume vector
W = [np.ones([num_cols,1]), V['V_myo']*np.ones([num_rows,1])]
return ([k_kinetic, N_cT, K_C, W])