Location: Computational analysis of the human sinus node action potential @ 7cb8a9d44ad7 / Figure5.py

Author:
nima <nafs080@aucklanduni.ac.nz>
Date:
2021-06-19 09:23:55+12:00
Desc:
1 script instead of 2
Permanent Source URI:
https://staging.physiomeproject.org/workspace/648/rawfile/7cb8a9d44ad7e22d7ee5ee37d836a6f97e05758f/Figure5.py

# To reproduce the data needed for Figure 5 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/the/folder/this/file/is/in
#     In [2]: %run Figure5.py

import opencor as opencor

# import numpy as np

# different values for y_shift
y_shift = [-15, -10, -5, 0, 5, 10, 15]
t = ["time"]
V_m = {}

# load the reference model
simulation = opencor.open_simulation("HumanSAN_Fabbri_Fantini_Wilders_Severi_2017.sedml")
data = simulation.data()
data.set_ending_point(1.9)
data.set_point_interval(0.001)

for y in y_shift:
    # reset everything in case we are running interactively and have existing results
    simulation.reset(True)
    simulation.clear_results()
    data.constants()["i_f/i_f_y_gate/y_shift"] = y
    simulation.run()
    ds = simulation.results().data_store()
    V_m[y] = ds.voi_and_variables()["Membrane/V"].values()

simulation.reset(True)

Time = {}

simulation.run()
ds = simulation.results().data_store()
Time[t[0]] = ds.voi_and_variables()["environment/time"].values()

V_m.update(Time)

# cache results for plotting
outfile = open("Figure5.csv", 'w')
cols = []
for key, item in V_m.items():
    outfile.write(str(key) + ",")
    cols.append(item)
outfile.write("\n")

for i in range(0, len(cols[0])):
    for j in range(0, len(cols)):
        outfile.write(str(cols[j][i]) + ",")
    outfile.write("\n")
outfile.close()