# To reproduce the data needed for Figure 7 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 Fig07.py # # NOTE: these are very time consuming simulations to perform in the graphical # user interface. Running them using the command line client version of # OpenCOR is much quicker. In a command window/console, run the following # # $> path/to/opencor/bin/OpenCOR -c PythonShell Fig07.py import opencor as opencor # our cache of results to save header = [] cols = [] # open the SED-ML for this simulation simulation = opencor.open_simulation("Fig07.sedml") # reset everything in case we are running interactively and have existing results simulation.reset(True) # clear the results simulation.clear_results() # loop over desired values for nu_SR nu_SR_values = [4.875, 15, 25, 35] for nu_SR in nu_SR_values: print("nu_SR = " + str(nu_SR)) simulation.data().constants()["wal_environment/razumova/nu_SR"] = nu_SR # run to steady state simulation.data().set_starting_point(0) simulation.data().set_ending_point(7200000) simulation.data().set_point_interval(1000) simulation.run() # run simulation we want to save simulation.data().set_starting_point(7200000) simulation.data().set_ending_point(7300000) simulation.data().set_point_interval(1) simulation.run() # cache the contraction results ds = simulation.results().data_store() variables = ds.voi_and_variables() header.append(nu_SR) cols.append(list(variables["wal_environment/razumova/A_2"].values())) outfile = open("Fig07.csv", 'w') for i in range(0, len(header)): outfile.write(str(header[i]) + ",") 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()