Location: Computational analysis of the human sinus node action potential @ 6259791412b3 / Figure7-plot.py

Author:
Alan Garny <agarny@hellix.com>
Date:
2021-06-11 12:12:16+12:00
Desc:
Some minor cleaning up.
Permanent Source URI:
https://staging.physiomeproject.org/workspace/648/rawfile/6259791412b36036c8d8f9d536309ee4319fa2d6/Figure7-plot.py

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# read the csv file extracted from sedml file
data = pd.read_csv('Figure7.csv')

# define the x and y axis and match the units
X1 = data[data.keys()[0]] * 1000
Y1 = data[data.keys()[1]]
Y2 = data[data.keys()[2]]
Y3 = data[data.keys()[3]]
Y4 = data[data.keys()[4]] * 1000 / 57
Y5 = data[data.keys()[5]] * 1000 / 57
Y6 = data[data.keys()[6]] * 1000 / 57
Y7 = data[data.keys()[7]] * 1000 / 57
Y8 = data[data.keys()[8]] * 1000 / 57
Y9 = data[data.keys()[9]] * 1000 / 57
Y10 = data[data.keys()[10]] * 1000 / 57
Y11 = data[data.keys()[11]] * 1000 / 57
Y12 = data[data.keys()[12]] * 1000 / 57
Y13 = data[data.keys()[13]] * 1000 / 57
Y14 = data[data.keys()[14]] * 1000 / 57
Y15 = data[data.keys()[15]] * 1000 / 57
Y16 = data[data.keys()[16]] * 1000 / 57
Y17 = data[data.keys()[17]] * 1000 / 57
Y18 = data[data.keys()[18]] * 1000 / 57
Y19 = data[data.keys()[19]] * 1000 / 57
Y20 = data[data.keys()[20]] * 1000 / 57
Y21 = data[data.keys()[21]] * 1000 / 57
Y22 = data[data.keys()[22]]
Y23 = data[data.keys()[23]]
Y24 = data[data.keys()[24]]

plt.figure(figsize=(17, 17))
plt.subplot(4, 2, 1)

plt.plot(X1, Y1, 'navy', linestyle='-', label='CTRL', linewidth=3)
plt.plot(X1, Y2, 'red', linestyle='-', label='10 nM ACh', linewidth=3)
plt.plot(X1, Y3, 'green', linestyle='-', label='1 \u03BCM Iso', linewidth=3)

plt.grid()
plt.xlim(0, 2470)
plt.xticks(np.arange(0, 2470, 500))
plt.ylim(-100, 50)
plt.yticks(np.arange(-100, 60, 50))

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.legend(bbox_to_anchor=(0., 0.92, 1, 0.1), loc='best', fontsize=14, ncol=10, mode="expand")

plt.subplot(4, 2, 2)
plt.plot(X1, Y4, 'navy', linestyle='-', label='CTRL', linewidth=3)
plt.plot(X1, Y5, 'red', linestyle='-', label='10 nM ACh', linewidth=3)
plt.plot(X1, Y6, 'green', linestyle='-', label='1 ${mu}$M Iso', linewidth=3)

plt.grid()
plt.xlim(0, 2470)
plt.xticks(np.arange(0, 2470, 500))
plt.ylim(0, 0.3)
plt.yticks(np.arange(0, 0.4, 0.1))

plt.tick_params(axis='both', labelsize=14)
plt.ylabel('I$_{NaK}$ (pA/pF)', fontsize=16)
plt.title('E', loc='left', y=1.05, x=-0.06, fontsize='20')

plt.subplot(4, 2, 3)
plt.plot(X1, Y7, 'navy', linestyle='-', label='CTRL', linewidth=3)
plt.plot(X1, Y8, 'red', linestyle='-', label='10 nM ACh', linewidth=3)
plt.plot(X1, Y9, 'green', linestyle='-', label='1 \u03BC M Iso', linewidth=3)

plt.grid()
plt.xlim(0, 2470)
plt.xticks(np.arange(0, 2470, 500))
plt.ylim(-15, 5)
plt.yticks(np.arange(-15, 10, 5))

plt.tick_params(axis='both', labelsize=14)
plt.ylabel('I$_{tot}$ (pA/pF)', fontsize=16)
plt.title('B', loc='left', y=1.05, x=-0.06, fontsize='20')

plt.subplot(4, 2, 4)
plt.plot(X1, Y10, 'navy', linestyle='-', label='CTRL', linewidth=3)
plt.plot(X1, Y11, 'red', linestyle='-', label='10 nM ACh', linewidth=3)
plt.plot(X1, Y12, 'green', linestyle='-', label='1 ${mu}$M Iso', linewidth=3)

plt.grid()
plt.xlim(0, 2470)
plt.xticks(np.arange(0, 2470, 500))
plt.ylim(-0.2, 0.4)
plt.yticks(np.arange(-0.2, 0.5, 0.2))

plt.tick_params(axis='both', labelsize=14)
plt.ylabel('I$_{Ks}$ (pA/pF)', fontsize=16)
plt.title('F', loc='left', y=1.05, x=-0.06, fontsize='20')

plt.subplot(4, 2, 5)
plt.plot(X1, Y13, 'navy', linestyle='-', label='CTRL', linewidth=3)
plt.plot(X1, Y14, 'red', linestyle='-', label='10 nM ACh', linewidth=3)
plt.plot(X1, Y15, 'green', linestyle='-', label='1 ${mu}$M Iso', linewidth=3)

plt.grid()
plt.xlim(0, 2470)
plt.xticks(np.arange(0, 2470, 500))
plt.ylim(-0.05, 0.05)
plt.yticks(np.arange(-0.05, 0.06, 0.05))

plt.tick_params(axis='both', labelsize=14)
plt.ylabel('I$_{f}$ (pA/pF)', fontsize=16)
plt.title('C', loc='left', y=1.05, x=-0.06, fontsize='20')

plt.subplot(4, 2, 6)
plt.plot(X1, Y16, 'navy', linestyle='-', label='CTRL', linewidth=3)
plt.plot(X1, Y17, 'red', linestyle='-', label='10 nM ACh', linewidth=3)
plt.plot(X1, Y18, 'green', linestyle='-', label='1 ${mu}$M Iso', linewidth=3)

plt.grid()
plt.xlim(0, 2470)
plt.xticks(np.arange(0, 2470, 500))
plt.ylim(0, 0.2)
plt.yticks(np.arange(0, 0.25, 0.05))

plt.tick_params(axis='both', labelsize=14)
plt.ylabel('I$_{K,ACh}$ (pA/pF)', fontsize=16)
plt.title('G', loc='left', y=1.05, x=-0.06, fontsize='20')

plt.subplot(4, 2, 7)
plt.plot(X1, Y19, 'navy', linestyle='-', label='CTRL', linewidth=3)
plt.plot(X1, Y20, 'red', linestyle='-', label='10 nM ACh', linewidth=3)
plt.plot(X1, Y21, 'green', linestyle='-', label='1 ${mu}$M Iso', linewidth=3)

plt.grid()
plt.xlim(0, 2470)
plt.xticks(np.arange(0, 2470, 500))
plt.ylim(-15, 1)
plt.yticks(np.arange(-15, 2, 5))
plt.xlabel('Time (ms)', fontsize=16)
plt.tick_params(axis='both', labelsize=14)
plt.ylabel('I$_{CaL}$ (pA/pF)', fontsize=16)
plt.title('D', loc='left', y=1.05, x=-0.06, fontsize='20')

plt.subplot(4, 2, 8)
plt.plot(X1, Y22, 'navy', linestyle='-', label='CTRL', linewidth=3)
plt.plot(X1, Y23, 'red', linestyle='-', label='10 nM ACh', linewidth=3)
plt.plot(X1, Y24, 'green', linestyle='-', label='1 ${mu}$M Iso', linewidth=3)

plt.grid()
plt.xlim(0, 2470)
plt.xticks(np.arange(0, 2470, 500))
plt.ylim(0, 1.5)
plt.yticks(np.arange(0, 1.6, 0.5))
plt.xlabel('Time (ms)', fontsize=16)
plt.tick_params(axis='both', labelsize=14)
plt.ylabel('J$_{up}$ (mM/s)', fontsize=16)
plt.title('H', loc='left', y=1.05, x=-0.06, fontsize='20')

plt.tight_layout(pad=0.5, w_pad=3, h_pad=3)
plt.savefig('Figure7.png')
plt.show()