Location: Reproducibility of the computational model of induced pluripotent stem-cell derived cardiomyocytes @ f81bb62d74dc / Fig7 / fig7.py

Author:
nima <nafs080@aucklanduni.ac.nz>
Date:
2021-09-27 12:28:40+13:00
Desc:
Modular "act"
Permanent Source URI:
https://models.cellml.org/workspace/702/rawfile/f81bb62d74dcd126e659316afbec97799c01edd3/Fig7/fig7.py

import os

import matplotlib

matplotlib.use('agg')

import matplotlib.pyplot as plt

import numpy as np

import opencor as opencor


# To reproduce Figure 7 in the associated Physiome paper,
# execute this script from the command line:
#
#   cd [PathToThisFile]
#   [PathToOpenCOR]/pythonshell fig7.py


root = "C:/Nima/ABI/Physiome Journal/pluripotent stem cell/src/cellml/I_Ks/"


def load_sedml(filename):
    return opencor.open_simulation(os.path.join(root, filename))

def get_data(filename):
    data = filename.data()
    data.set_ending_point(100)
    data.set_point_interval(1)
    return data


def run_sim(data, filename, var1):
    alpha_list = []
    beta_list = []
    list1 = []


    voltage = np.arange(-100, 101, 1)
    for v in voltage:
        file = load_sedml(filename)
        file.reset(True)
        file.clear_results()
        data.constants()["main/v"] = v
        file.run()
        ds = file.results().data_store()
        alpha_list.append(ds.voi_and_variables()["main/alpha"].values())
        beta_list.append(ds.voi_and_variables()["main/beta"].values()[-1])
        list1.append(ds.voi_and_variables()["main/%s" % var1].values()[-1])


    return list1


if __name__ == '__main__':

    act_inf_ma_file = "act_inf_Ma_IKs.sedml"
    act_inf_Mawei_patint_file = "act_inf_Mawei_patint.sedml"
    act_inf_Mawei_icell_file = "act_inf_Mawei_icell.sedml"
    act_inf_baseline_IKs_file = "act_inf_baseline_IKs.sedml"


    act_inf_ma = load_sedml(act_inf_ma_file)
    act_inf_Mawei_patint = load_sedml(act_inf_Mawei_patint_file)
    act_inf_Mawei_icell = load_sedml(act_inf_Mawei_icell_file)
    act_inf_baseline_IKs = load_sedml(act_inf_baseline_IKs_file)


    data1 = get_data(act_inf_ma)
    data2 = get_data(act_inf_Mawei_patint)
    data3 = get_data(act_inf_Mawei_icell)
    data4 = get_data(act_inf_baseline_IKs)

#
    act_inf_ma_list = run_sim(data1, act_inf_ma_file, 'act_inf_ma')
    act_inf_mawei_p_list = run_sim(data2, act_inf_Mawei_patint_file, 'act_inf_mawei')
    act_inf_mawei_i_list = run_sim(data3, act_inf_Mawei_icell_file, 'act_inf_mawei')
    act_inf_baseline_IKs_list = run_sim(data4, act_inf_baseline_IKs_file, 'act_inf_baseline')

    tau_act_inf_ma_list = run_sim(data1, act_inf_ma_file, 'tau_act_ma')
    tau_act_inf_mawei_p_list = run_sim(data2, act_inf_Mawei_patint_file, 'tau_act_mawei')
    tau_act_inf_mawei_i_list = run_sim(data3, act_inf_Mawei_icell_file, 'tau_act_mawei')
    tau_act_inf_baseline_IKs_list = run_sim(data4, act_inf_baseline_IKs_file, 'tau_act_baseline')




    voltage = np.arange(-100, 101, 1)

    plt.figure(figsize= (14,10))
    plt.subplot(1,2,1)
    plt.plot(voltage, act_inf_ma_list, color='blue', linewidth= 4)
    plt.plot(voltage, act_inf_mawei_p_list, color='orange', linewidth=4)
    plt.plot(voltage, act_inf_mawei_i_list, color='purple', linewidth=4)
    plt.plot(voltage, act_inf_baseline_IKs_list, color='black', linewidth= 4)



    plt.xlabel('Voltage (mV)', fontsize= 14)
    plt.ylabel('Normalized I$_{Ks}$', fontsize= 14)
    plt.xlim(-100,100,50)
    plt.ylim(0,1,0.5)

    plt.subplot(1,2,2)

    plt.plot(voltage, tau_act_inf_ma_list, color='blue', linewidth= 4)
    plt.plot(voltage, tau_act_inf_mawei_p_list, color='orange', linewidth=4)
    plt.plot(voltage, tau_act_inf_mawei_i_list, color='purple', linewidth=4)
    plt.plot(voltage, tau_act_inf_baseline_IKs_list, color='black', linewidth= 4)


    plt.xlabel('Voltage (mV)', fontsize= 14)
    plt.ylabel('Tau$_{act},I_{Ks}$ (ms)', fontsize= 14)
    plt.xlim(-100,100,50)
    plt.ylim(0,1000,500)

    plt.show()