Location: Reproducibility study of Computational modelling of glucose uptake by SGLT1 and GLUT2 in the enterocyte @ 996f99061301 / Figure07.py

Author:
soroush <ssaf006@aucklanduni.ac.nz>
Date:
2022-09-07 10:24:08+12:00
Desc:
adding labels.
Permanent Source URI:
https://models.physiomeproject.org/workspace/840/rawfile/996f990613016a37eedc1d35f1a4c298e30002ea/Figure07.py

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

import matplotlib.pyplot as plt
import opencor as opencor
import numpy as np

simulation = opencor.open_simulation("model.sedml")
data = simulation.data()
data.set_ending_point(3000)
data.set_point_interval(10)




def run_sim1(gl_l):
    simulation.reset(True)
    simulation.clear_results()
    data.constants()["Cell_concentration/L_A"] = 6e-5
    data.constants()["Cell_concentration/L_B"] = 6e-5
    data.constants()["Blood_concentrations/v_B"] = 1e-17
    data.constants()["Blood_concentrations/glucose_in"] = 0.004
    data.constants()["A_GLUT2/n_GLUT"] = 1e8
    data.constants()["Blood_concentrations/Q_in"] = 1e-17
    # data.constants()["Blood_concentrations/v_w1"] = 1.8e-4
    data.constants()["phenomonological_constants/n_SGLT"] = 3e7
    data.constants()["parameters/k0_12"] = 12000
    data.constants()["parameters/k0_61"] = 15
    data.constants()["Apical_concentrations/glucose_m"] = gl_l
    simulation.run()
    ds = simulation.results().data_store()
    v_cell = ds.voi_and_variables()["Cell_concentration/v_cell"].values()[-1]

    return (v_cell)


def run_sim2(gl_l):
    simulation.reset(True)
    simulation.clear_results()
    data.constants()["Cell_concentration/L_A"] = 6e-5
    data.constants()["Cell_concentration/L_B"] = 6e-5
    data.constants()["Blood_concentrations/v_B"] = 1e-17
    data.constants()["Blood_concentrations/glucose_in"] = 0.004
    data.constants()["A_GLUT2/n_GLUT"] = 0
    data.constants()["Blood_concentrations/Q_in"] = 1e-17
    # data.constants()["Blood_concentrations/v_w1"] = 1.8e-4
    data.constants()["phenomonological_constants/n_SGLT"] = 3e7
    data.constants()["parameters/k0_12"] = 12000
    data.constants()["parameters/k0_61"] = 15
    data.constants()["Apical_concentrations/glucose_m"] = gl_l
    simulation.run()
    ds = simulation.results().data_store()
    v_cell = ds.voi_and_variables()["Cell_concentration/v_cell"].values()[-1]

    return (v_cell)





#
#
if __name__ == '__main__':

    #
    X = [10,15,20,25,30,35,40,45,50]
    gl_l = [0.01, 0.015, 0.02, 0.025, 0.03, 0.035, 0.04, 0.045, 0.05]

    y_label = ["Blood Glucose", "Cell Glucose", "GLUT2 Flux"]

    plt.figure(figsize=(10, 6))
    plt.subplot(1, 2, 1)
    Gl_l_results = np.empty(len(gl_l))
    for i in range(len(gl_l)):
        Gl_l = run_sim1(gl_l[i])
        Gl_l_results[i] = Gl_l
    print(Gl_l_results)
    results = np.empty(len(Gl_l_results))
    for i in range(len(Gl_l_results)-1):
        result = 1-((Gl_l_results[0]-Gl_l_results[i+1])/Gl_l_results[0])
        results[i] = result
    print(results)

    final_results = np.array(1)
    for i in range(len(results) - 1):
        final_results = np.append(final_results, results[i])


    plt.plot(X, final_results, 'blue', linewidth=2.5, marker='d', markevery=slice(0, 5000, 100),
             label='With Apical GLUT2')

    Gl_l_results = np.empty(len(gl_l))
    for i in range(len(gl_l)):
        Gl_l = run_sim2(gl_l[i])
        Gl_l_results[i] = Gl_l
    print(Gl_l_results)
    results = np.empty(len(Gl_l_results))
    for i in range(len(Gl_l_results) - 1):
        result = 1 - ((Gl_l_results[0] - Gl_l_results[i + 1]) / Gl_l_results[0])
        results[i] = result
    print(results)

    final_results = np.array(1)
    for i in range(len(results) - 1):
        final_results = np.append(final_results, results[i])

    plt.plot(X, final_results, 'red', linewidth=2.5, marker='d', markevery=slice(0, 5000, 100),
             label='Without Apical GLUT2')

    plt.grid()
    plt.xlim(10, 50)
    plt.tick_params(axis='x', which='major', labelsize=10)
    plt.tick_params(axis='y', which='major', labelsize=10)
    # ~ plt.ylim(0.0, 0.2)
    plt.xlabel('Luminal Glucose (mM)', fontsize='10')
    plt.ylabel('Cell Volume (%)', fontsize='10')
    plt.legend(loc='best', fontsize='10')
    plt.title('A')

    plt.subplot(1, 2, 2)

    v_cell_Naftalin_with = np.array((7.56E-17, 8E-17, 8.40E-17, 8.65E-17, 9.07E-17))
    v_cell_Naftalin_without = np.array((8.40E-17, 9.72E-17, 1.12E-16, 1.29E-16, 1.56E-16))

    results = np.empty(len(v_cell_Naftalin_with))
    for i in range(len(v_cell_Naftalin_with) - 1):
        result = 1 - ((v_cell_Naftalin_with[0] - v_cell_Naftalin_with[i+1]) / v_cell_Naftalin_with[0])
        results[i] = result
    print(results)
    final_results = np.array(1)
    for i in range(len(results) - 1):
        final_results = np.append(final_results, results[i])
    X1 = [10, 20, 30, 40, 50]
    plt.plot(X1, final_results, 'blue', linewidth=2.5, marker='d', markevery=slice(0, 5000, 100),
             label='With Apical GLUT2')

    results = np.empty(len(v_cell_Naftalin_without))
    for i in range(len(v_cell_Naftalin_without) - 1):
        result = 1 - ((v_cell_Naftalin_without[0] - v_cell_Naftalin_without[i + 1]) / v_cell_Naftalin_without[0])
        results[i] = result
    print(results)
    final_results = np.array(1)
    for i in range(len(results) - 1):
        final_results = np.append(final_results, results[i])

    plt.plot(X1, final_results, 'red', linewidth=2.5, marker='d', markevery=slice(0, 5000, 100),
             label='Without Apical GLUT2')

    plt.grid()
    plt.xlim(10, 50)
    plt.tick_params(axis='x', which='major', labelsize=10)
    plt.tick_params(axis='y', which='major', labelsize=10)
    # ~ plt.ylim(0.0, 0.2)
    plt.xlabel('Luminal Glucose (mM)', fontsize='10')
    plt.ylabel('Cell Volume (%)', fontsize='10')
    plt.legend(loc='best', fontsize='10')
    plt.title('B')


    plt.savefig('Figure07.png')
    plt.show()