# Author: Leyla Noroozbabaee # Date: 12/12/2021 # To reproduce Figure 6 from original paper, the python file 'Fig6_sim.py' should be run. import matplotlib.pyplot as plt import pandas as pd from sklearn import preprocessing import numpy as np # Figure name prefilename = 'Fig10' # Set figure dimension (width, height) in inches. fw, fh = 16, 8 # Set subplots subpRow, subpCol = 4,2 ax, lns = {}, {} # This gives list with the colors from the cycle, which you can use to iterate over. cycle = plt.rcParams [ 'axes.prop_cycle' ].by_key() [ 'color' ] # Set subplots lfontsize, labelfontsize = 10, 15 # legend, label fontsize fig, axs = plt.subplots(subpRow, subpCol, figsize=(fw, fh), facecolor='w', edgecolor='k') fig.subplots_adjust(hspace = .3, wspace=.3) axs = axs.ravel() tit = ['Steady state','Steady state','Time constant (ms)','Time constant (ms)','I (normalised)','I (normalised)'] cycle = plt.rcParams [ 'axes.prop_cycle' ].by_key() [ 'color' ] # To add the extracted data from original paper to your plot, modify the path to have access to the # "Extracted_data" I_V = [] prefilename = 'Fig10' # v_clamp =[50, 40, 30, 25, 20, 10, 0,-10,-20,-30,-40,-50,-60, -70,-80] # print(I_V) # axs[5].plot(V, I_V, '-b')# y_data = data [ var [ i ] prefilename = 'Fig10' # for i in range(6): # filename = '%s_%s.csv' % (prefilename, i+1) # data = pd.read_csv(filename) # data = pd.read_csv(filename) # y_d = data [ 'Curve1' ] # x_d = data [ 'x' ] # axs [ i ].plot(x_d, y_d, 'k*') # # axs [ i ].set_xlim([ -90, 60 ]) # axs [ i ].set_xlabel('V (mV)', fontsize=labelfontsize) # axs [ i ].set_ylabel('%s' % (tit [ i ]), fontsize=labelfontsize) # if i == 0 or i == 3: # y_d_2 = data [ 'Curve2' ] # axs [ 0 ].plot(x_d, y_d_2, 'k*') # #axs [ 3 ].plot(x_d, y_d_2, 'k*') # elif i == 1: # # y_d_2 = data [ 'Curve1' ] # axs [ 1 ].semilogy(x_d, y_d, 'k*') # elif i == 2: # y_d_2 = data [ 'Curve2' ] # axs [ i ].semilogy(x_d, y_d, 'k*', x_d, y_d_2, 'k*') # # elif i == 4 or i == 5 : # y_d_2 = data [ 'Curve2' ] # y_d_3 = data [ 'Curve3' ] # y_d_4 = data [ 'Curve4' ] # y_d_5 = data [ 'Curve5' ] # axs [ 4 ].plot(x_d, y_d_2, '*', x_d, y_d_3, '*', x_d, y_d_4, '*', x_d, y_d_5, '*', color=cycle [ i % 4 ]) # axs [ 5 ].plot(x_d, y_d_2, '*', x_d, y_d_3, '*', x_d, y_d_4, '*', x_d, y_d_5, '*', color=cycle [ i % 4 ]) # # axs [ i ].set_xlim([ 0, 50 ]) # axs [ i ].set_xlabel('Time (ms)', fontsize=labelfontsize) # # axs [ i ].set_ylim([ -1, 0 ]) # # axs [i].set_xlabel('V (mV)', fontsize=labelfontsize) # axs [i].set_ylabel('%s' % (tit[i]),fontsize=labelfontsize) # ##axs[1].semilogy( v_data, htc_data, 'b', v_data, mtc_data, 'r') # 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 Fig1_sim.py import matplotlib.pyplot as plt import numpy as np # The prefix of the saved output file name Sub_A=0 sub =['A','B','C','D','E'] varName = np.array([ "Time", "css", "ctc", "icl", "c", "v", "cai"]) cai = [100, 250, 500, 1000] for i in range(len(cai)): filename = '%s_%s_%s.csv' % (prefilename, sub [ 0 ], i) print(filename) data = pd.read_csv(filename) time = data [ varName [ 0 ] ] css_data = data [ varName [ 1 ] ] ctc_data = data [ varName [ 2 ] ] icl_data = data [ varName [ 3 ] ] c_data = data [ varName [ 4 ] ] v_data = data [ varName [ 5 ] ] cai_data = data [ varName [ 6 ] ] # axs [ 0 ].plot(time, ik1_data, '-r')#, color=cycle [ j % 8 ]) # axs [ 1 ].plot( time, ik2_data, 'b.')#, color=cycle [ j % 8 ]) # axs [ 2 ].plot(time, 0.7*iBKa_data+0.3*iBKab_data, 'k') # axs [ 3 ].plot(time, iBKab_data, 'g')#, color=cycle [ j % 8 ]) axs [ 0 ].plot(v_data, css_data, color=cycle [ i % 8 ]) axs [ 1 ].plot(v_data, ctc_data, 'y') #axs [ 2 ].plot(v_data, c_data, color=cycle [ i % 8 ]) # plt.show() v_hold = [ 30, 0,-30,-60] for i in range(len(v_hold)): filename = '%s_%s_%s.csv' % (prefilename, sub [ 1 ], i) data = pd.read_csv(filename) print(filename) time = data [ varName [ 0 ] ] cs_data = data [ varName [ 1 ] ] ctc_data = data [ varName [ 2 ] ] icl_data = data [ varName [ 3 ] ] c_data = data [ varName [ 4 ] ] v_data = data [ varName [ 5 ] ] cai_data = data [ varName [ 6 ] ] axs [ 2 ].plot(cai_data , cs_data, color=cycle [ i % 8 ]) # axs [ 2 ].plot(v_data , ctc_data, color=cycle [ i % 8 ]) # plt.show() # v_hold =[-60] # simulation.reset(True) prefilename='Fig10_D' varName = np.array([ "Time", "css", "ctc", "icl", "c", "v", "cai","I_tot" ]) v_clamp = [40, 30, 20, 10, 0, -10, -20] for i in range(len(v_clamp)): filename = '%s_%s.csv' % (prefilename, i) data = pd.read_csv(filename) time = data [ varName [ 0 ] ] css_data = data [ varName [ 1 ] ] ctc_data = data [ varName [ 2 ] ] icl_data = data [ varName [ 3 ] ] c_data = data [ varName [ 4 ] ] v_data = data [ varName [ 5 ] ] cai_data = data [ varName [ 6 ] ] I_data = data [ varName [ 7 ] ] axs [ 3 ].plot(time, icl_data, color=cycle [ i % 8 ]) axs [ 4 ].plot(time, I_data, color=cycle [ i % 8 ]) plt.show()