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

Author:
Alan Garny <agarny@hellix.com>
Date:
2021-06-11 09:51:39+12:00
Desc:
Removed CSV that can be regenerated. Figure1.csv and Figure2.csv can be generated by running Figure1.sedml and Figure2.sedml, respectively, and then exporting the simulation results to CSV. So, no need for those CSV files to be tracked.
Permanent Source URI:
https://staging.physiomeproject.org/workspace/648/rawfile/4e662cb87f8569d10d40251b876798d0d92f68f7/Figure5.py

# To reproduce the data needed for Figure 3 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 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("Fig05.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()