- 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/Figure6-plot.py
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.patches as patches
from matplotlib.patches import Rectangle
# read the csv file extracted from sedml file
data = pd.read_csv('Fig06.csv')
# define the x and y axis and match the units
X1 = data[data.keys()[4]]*1000
Y1 = data[data.keys()[2]]
Y2 = data[data.keys()[0]]
Y3 = data[data.keys()[3]]
Y4 = data[data.keys()[1]]
Y5 = data[data.keys()[7]]*1e6
Y6 = data[data.keys()[5]]*1e6
Y7 = data[data.keys()[8]]*1e6
Y8 = data[data.keys()[6]]*1e6
Y9 = data[data.keys()[11]]*1000/57
Y10 = data[data.keys()[9]]*1000/57
Y11 = data[data.keys()[12]]*1000/57
Y12 = data[data.keys()[10]]*1000/57
plt.figure(figsize=(16,14))
plt.subplot(2,2,1)
plt.plot(X1, Y1, 'navy',linestyle='-', label = 'CTRL', linewidth= 3)
plt.plot(X1, Y2, 'red',linestyle='-', label = 'Block 50%', linewidth= 3)
plt.plot(X1, Y3, 'green',linestyle='-', label = 'Block 75%', linewidth= 3)
plt.plot(X1, Y4, 'purple',linestyle='-', label = 'Block 90%', linewidth= 3)
plt.gca().add_patch(Rectangle((440,-65),695,30,linewidth=2,edgecolor='black', linestyle= '--',facecolor='none'))
plt.grid()
plt.xlim(0, 1800)
plt.ylim(-70,30)
plt.xticks(np.arange(0,1800, 500))
plt.tick_params(axis='both', labelsize=14)
plt.ylabel ('V$_m$ (mV)', fontsize=16)
plt.title('A',loc= 'left', y = 1.05, x= -0.06, fontsize='20')
plt.subplot(2,2,2)
plt.plot(X1, Y1, 'navy',linestyle='-', label = 'CTRL', linewidth= 3)
plt.plot(X1, Y2, 'red',linestyle='-', label = 'Block 50%', linewidth= 3)
plt.plot(X1, Y3, 'green',linestyle='-', label = 'Block 75%', linewidth= 3)
plt.plot(X1, Y4, 'purple',linestyle='-', label = 'Block 90%', linewidth= 3)
plt.grid()
plt.xlim(445, 1120)
plt.ylim(-63,-35)
plt.tick_params(axis='both', labelsize=14)
plt.ylabel ('V$_m$ (mV)', fontsize=16)
plt.title('B', loc= 'left', y = 1.05, x= -0.06, fontsize='20')
plt.subplot(2,2,3)
plt.plot(X1, Y5, 'navy',linestyle='-', label = 'CTRL', linewidth= 3)
plt.plot(X1, Y6, 'red',linestyle='-', label = 'Block 50%', linewidth= 3)
plt.plot(X1, Y7, 'green',linestyle='-', label = 'Block 75%', linewidth= 3)
plt.plot(X1, Y8, 'purple',linestyle='-', label = 'Block 90%', linewidth= 3)
plt.grid()
plt.xlim(0, 1800)
plt.xticks(np.arange(0,1800, 500))
plt.ylim(50,450)
plt.xlabel ('Time (ms)',fontsize=16)
plt.tick_params(axis='both', labelsize=14)
plt.ylabel ('[Ca$^{2+}]_i$ (nM)', fontsize=16)
plt.title('C', loc= 'left', y = 1.05, x= -0.06, fontsize='20')
plt.subplot(2,2,4)
plt.plot(X1, Y9, 'navy',linestyle='-', label = 'CTRL', linewidth= 3)
plt.plot(X1, Y10, 'red',linestyle='-', label = 'Block 50%', linewidth= 3)
plt.plot(X1, Y11, 'green',linestyle='-', label = 'Block 75%', linewidth= 3)
plt.plot(X1, Y12, 'purple',linestyle='-', label = 'Block 90%', linewidth= 3)
plt.grid()
plt.xlim(445, 1130)
plt.ylim(-0.16, 0.05)
plt.yticks(np.arange(-0.15,0.01, 0.05))
plt.xlabel ('Time (ms)',fontsize=16)
plt.tick_params(axis='both', labelsize=14)
plt.ylabel ('I$_{NaCa}$ (pA/pF)', fontsize=16)
plt.title('D', loc= 'left', y = 1.05, x= -0.06, fontsize='20')
plt.legend(bbox_to_anchor=(0., 0.85, 1, 0.1), loc='best',fontsize=14,
ncol=10, mode="expand")
plt.tight_layout(pad=0.5, w_pad=3.5, h_pad=3)
plt.savefig('figure6.png')
plt.show()