# Author : Leyla Noroozbabaee # Bioengineering Institute # The University of Auckland # Date: 26/10/2021 # To reproduce the data needed for Figure 6D and Figure 10D in associated original paper, # execute this script in the Python console in OpenCOR. This can be done # with the following commands at the prompt in the OpenCOR Python console: # In [1]: cd path/to/folder_this_file_is_in # In [2]: run Fig6D_10D_sim.py import opencor as oc import numpy as np import json f = open('ORAI.json', 'r') J_ORAI = json.load(f) f.close() print('ORAI', J_ORAI) # for key, value in J_ORAI.items(): # print(key, '->', value) simfile = 'Yoast_2020_subplot4.sedml' simulation = oc.open_simulation(simfile) data = simulation.data() # # Reset states and parameters simulation.reset(True) # # Set constant parameter values start = 0 end = 250 pointInterval = 0.01 data.set_starting_point(start) data.set_ending_point(end) data.set_point_interval(pointInterval) scale = 0.15 scale_ce = 50 # print(data.constants()) ORAI_HEK_293, ORAI_23_DKO, ORAI_2_SKO, ORAI_12_DKO, ORAI_1_SKO = [ 0,0,0, 1, 1] if ORAI_HEK_293: data.constants() [ 'ca/H_ca_c_init' ] = 1 data.constants() [ 'ca/H_ca_e_init' ] = 1 data.constants() [ 'ca/L_ca_c_init' ] = 0 data.constants() [ 'ca/L_ca_e_init' ] = 0 prefilename = 'ORAI_HEK' data.constants()['ca/J_in/J_in_ORAI'] = scale * J_ORAI["ORAI_HEK"][0] print(data.constants()) elif ORAI_23_DKO: data.constants() [ 'ca/H_ca_c_init' ] = 1 data.constants() [ 'ca/H_ca_e_init' ] = 1 data.constants() [ 'ca/L_ca_c_init' ] = 0 data.constants() [ 'ca/L_ca_e_init' ] = 0 prefilename = 'ORAI23_DKO' data.constants()['ca/J_in/J_in_ORAI'] = scale * J_ORAI["ORAI23_DKO"][0] elif ORAI_2_SKO: data.constants() [ 'ca/H_ca_c_init' ] = 1 data.constants() [ 'ca/H_ca_e_init' ] = 1 data.constants() [ 'ca/L_ca_c_init' ] = 0 data.constants() [ 'ca/L_ca_e_init' ] = 0 prefilename = 'ORAI2_SKO' data.constants()['ca/J_in/J_in_ORAI'] = scale*J_ORAI["ORAI2_SKO"][0] elif ORAI_12_DKO: data.constants() [ 'ca/H_ca_c_init' ] = 0 data.constants() [ 'ca/H_ca_e_init' ] = 0 data.constants() [ 'ca/L_ca_c_init' ] = 1 data.constants() [ 'ca/L_ca_e_init' ] = 1 prefilename = 'ORAI12_DKO' data.constants()['ca/J_in/J_in_ORAI'] = scale*J_ORAI["ORAI12_DKO"][0] elif ORAI_1_SKO: data.constants() [ 'ca/H_ca_c_init' ] = 0 data.constants() [ 'ca/H_ca_e_init' ] = 0 data.constants() [ 'ca/L_ca_c_init' ] = 1 data.constants() [ 'ca/L_ca_e_init' ] = 1 prefilename = 'ORAI1_SKO' data.constants()['ca/J_in/J_in_ORAI'] = scale * J_ORAI["ORAI1_SKO"][0] else: data.constants() [ 'ca/H_ca_c_init' ] = 0 data.constants() [ 'ca/H_ca_e_init' ] = 0 data.constants() [ 'ca/L_ca_c_init' ] = 1 data.constants() [ 'ca/L_ca_e_init' ] = 1 prefilename = 'ORAI_TKO' data.constants()['ca/J_in/off_on'] = 1 data.constants() [ 'ca/delta' ] = 1.5 data.constants() [ 'ca/gamma' ] = 5.5 * scale_ce data.constants() [ 'ca/J_in/k_e' ] = 200 data.constants() [ 'ca/J_SERCA/k_bar' ] = 0.00001957 / scale_ce ** 2 data.constants() [ 'ca/J_IPR/k_f' ] = 10 / scale_ce # # Run simulation simulation.run() # Access simulation results results = simulation.results() # Grab the selected results varName = np.array(["time", "ca_c", "ca_e"]) vars = np.reshape(varName, (1, 3)) rows = end * 100 + 1 print(rows) r = np.zeros((rows, len(varName))) r[:, 0] = results.voi().values() r[:, 1] = results.states()['ca/ca_c'].values() r[:, 2] = results.states()['ca/ca_e'].values() # # Save the data filename = '%s_D.csv' % prefilename np.savetxt(filename, vars, fmt='%s', delimiter=",") with open(filename, "ab") as f: np.savetxt(f, r, delimiter=",") f.close # print(data.constants())