# 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 = 'Fig9' # Set figure dimension (width, height) in inches. fw, fh = 15, 10 # Set subplots subpRow, subpCol = 3,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() # varName = np.array(["Time", "ik1", "ik2" , "iBKa","iBKab","ika","ib","v"]) # filename = '%s.csv' % (prefilename) # print(filename) # data = pd.read_csv(filename) # print('filename', filename) # data = pd.read_csv(filename) # time = data [ varName[0] ] # pss_data = data [varName[1]] # kss_data = data [varName[2]] # ptc_data = data [varName[3]] # k1tc_data = data [varName[4]] # k2tc_data = data [varName[5]] # ik2_data = data [varName[6]] # v_data = data [varName[7]] # axs[0].plot( v_data, pow(pss_data,2), 'b', v_data, kss_data, '--b') # axs[1].plot(v_data, ptc_data, 'b') # axs[2].semilogy(v_data, k1tc_data/1000, 'b', v_data, k2tc_data/1000, '--b') #axs[4].plot( v_data, ik2_data, 'b') # Set ylable 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 = 'Fig9' varName = np.array([ "Time", "ik1", "ik2", "iBKa", "iBKab", "ika", "ib", "v", "I_K_tot" ]) sub =['A','B','C'] v_clamp = [ -40, -30, -20, -10, 0, 10, 20, 30, 40, 50, 60, 70 ] v_hold = [ -80,-40 ] for i in range(len(v_hold)): print(sub [ i ]) for j in range(len(v_clamp)): filename = '%s_%s_%s.csv' % (prefilename, sub [ i ], j) print(filename) data = pd.read_csv(filename) time = data [ varName[0] ] ik1_data = data [varName[1]] ik2_data = data [varName[2]] iBKa_data = data [varName[3]] iBKab_data = data [varName[4]] ika_data = data [varName[5]] ib_data = data [varName[6]] v_data = data [varName[7]] I_K = data [ varName [ 8 ] ] ik_tot = ik1_data + ik2_data + (iBKa_data) + (iBKab_data) + ib_data + ika_data # 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 [ i ].plot(time, I_K , color=cycle [ j % 8 ]) #axs [ i+1 ].plot(time, ika_data, 'y') plt.show() # 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 = 'Fig9' # 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')