# linalg for Ryanodine channel: gated by Ca, and allowing passage of Ca from SR to diadic space import numpy as np def kinetic_parameters(M, include_type2_reactions, dims, vp): num_cols = dims['num_cols'] num_rows = dims['num_rows'] F = vp['F'] R = vp['R'] T = vp['T'] z = 2 N_A = vp['N_A'] x_ryr = 1e15*50e3/N_A # fmol Hinch: 50000 units x_ryr = vp['numChannels']/N_A*1e15 # unit fmol # c_di = 1.7374E-04 # mM # c_sr = 5.5545E-01 # mM c_di = vp['c_di'] c_sr = vp['c_sr'] # channel conductance (without gating) k_ryr = 25 # 1/ms (Shannon/Stern value) WRONG UNITS FOR A CHANNEL g_ryr = 103 # pS. from Ondrias et al https://pubmed.ncbi.nlm.nih.gov/8809932/ E_Ca = (R*T/(z*F))*np.log(c_di/c_sr) # finding permeability value by setting I_ohmic = I_ghk: # P [=] pL/s (permeability) V = -E_Ca P_ryr = 1e3*(V - E_Ca)*g_ryr*R*T*(1-np.exp(-z*F*V/(R*T)))/(((z*F)^2)*(c_sr-(c_di*np.exp(-z*F*V/(R*T))))) k_ryr = P_ryr / x_ryr # 1/mM.s both fwd and bwd # gate transitions ko = 35e3 # 1/(mM2.s) ki = 500 # 1/(mM.s) kim = 5 # 1/s kom = 60 # 1/s # rxnID: [RyR OC CCI CII IO] # set up ensures detailed balance already kf = [k_ryr, kom, ki, ko, kim] kr = [k_ryr, ko, kim, kom, ki] k = kf + kr N_cT = [] K_C = [] # Vume vector W = [1]*num_cols + [vp['V_SR']] + [vp['V_di']] + [1]*4 return (k, [N_cT], K_C, W)