Location: Computational analysis of the human sinus node action potential @ ee3b51bbb18e / Figure07.py

Author:
nima <nafs080@aucklanduni.ac.nz>
Date:
2021-03-22 11:53:08+13:00
Desc:
Figure 06 and 07 Python codes
Permanent Source URI:
https://staging.physiomeproject.org/workspace/648/rawfile/ee3b51bbb18e879df1098bf0a5bd3dc16e3960fe/Figure07.py

# To reproduce the data needed for Figure 4 in associated Physiome 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 Figure04.py
#

import opencor as opencor
import numpy as np



# load the reference model
simulation = opencor.open_simulation("https://models.physiomeproject.org/workspace/648/rawfile/53b550877456e599044a843dc57edea84f597e7f/New_HumanSAN_Fabbri_Fantini_Wilders_Severi_2017.sedml")
data = simulation.data()
data.set_ending_point(2.5)
data.set_point_interval(0.001)

simulation.reset(True)

results = np.zeros((25, 2501))

for i in range(0,1):
    simulation.run()
    ds = simulation.results().data_store()
    results[0] = ds.voi_and_variables()["environment/time"].values()

for i in range(0,1):
    simulation.run()
    ds = simulation.results().data_store()
    results[1] = ds.voi_and_variables()["Membrane/V"].values()
    results[4] = ds.voi_and_variables()["i_NaK/i_NaK"].values()
    results[7] = ds.voi_and_variables()["Membrane/i_tot"].values()
    results[10] = ds.voi_and_variables()["i_Ks/i_Ks"].values()
    results[13] = ds.voi_and_variables()["i_f/i_f"].values()
    results[16] = ds.voi_and_variables()["i_KACh/i_KACh"].values()
    results[19] = ds.voi_and_variables()["i_CaL/i_CaL"].values()
    results[22] = ds.voi_and_variables()["Ca_intracellular_fluxes/j_up"].values()



for i in range(0,1):
    data.constants()["Rate_modulation_experiments/ACh"] = 1e-5
    simulation.run()
    ds = simulation.results().data_store()
    results[2] = ds.voi_and_variables()["Membrane/V"].values()
    results[5] = ds.voi_and_variables()["i_NaK/i_NaK"].values()
    results[8] = ds.voi_and_variables()["Membrane/i_tot"].values()
    results[11] = ds.voi_and_variables()["i_Ks/i_Ks"].values()
    results[14] = ds.voi_and_variables()["i_f/i_f"].values()
    results[17] = ds.voi_and_variables()["i_KACh/i_KACh"].values()
    results[20] = ds.voi_and_variables()["i_CaL/i_CaL"].values()
    results[23] = ds.voi_and_variables()["Ca_intracellular_fluxes/j_up"].values()

for i in range(0,1):
    data.constants()["Rate_modulation_experiments/Iso_1_uM"] = 1
    simulation.run()
    ds = simulation.results().data_store()
    results[3] = ds.voi_and_variables()["Membrane/V"].values()
    results[6] = ds.voi_and_variables()["i_NaK/i_NaK"].values()
    results[9] = ds.voi_and_variables()["Membrane/i_tot"].values()
    results[12] = ds.voi_and_variables()["i_Ks/i_Ks"].values()
    results[15] = ds.voi_and_variables()["i_f/i_f"].values()
    results[18] = ds.voi_and_variables()["i_KACh/i_KACh"].values()
    results[21] = ds.voi_and_variables()["i_CaL/i_CaL"].values()
    results[24] = ds.voi_and_variables()["Ca_intracellular_fluxes/j_up"].values()
np.savetxt("Fig07.csv", results[:25].T, fmt='%.4e', delimiter=',')