Linear Noise Approximation
This notebook demonstrates how to use Metabolic Control Analysis using basico. We start as always, by importing basico:
[1]:
from IPython.display import display, HTML
from basico import *
now we load BioModel #11
[2]:
dm = load_biomodel(11)
display(HTML(get_notes()))
MAPK cascade in solution (no scaffold)
Description |
---|
This model describes a basic 3- stage Mitogen Activated Protein Kinase (MAPK) cascade in solution. This cascade is typically expressed as RAF= =>MEK==>MAPK (alternative forms are K3==>K2==> K1 and KKK==>KK==>K) . The input signal is RAFK (RAF Kinase) and the output signal is MAPKpp ( doubly phosphorylated form of MAPK) . RAFK phosphorylates RAF once to RAFp. RAFp, the phosphorylated form of RAF induces two phoshporylations of MEK, to MEKp and MEKpp. MEKpp, the doubly phosphorylated form of MEK, induces two phosphorylations of MAPK to MAPKp and MAPKpp. |
Rate constant | Reaction |
---|---|
a10 = 5. | MAPKPH + MAPKpp -> MAPKppMAPKPH |
a1 = 1. | RAF + RAFK -> RAFRAFK |
a2 = 0.5 | RAFp + RAFPH -> RAFpRAFPH |
a3 = 3.3 | MEK + RAFp -> MEKRAFp |
a4 = 10. | MEKp + MEKPH -> MEKpMEKPH |
a5 = 3.3 | MEKp + RAFp -> MEKpRAFp |
a6 = 10. | MEKPH + MEKpp -> MEKppMEKPH |
a7 = 20. | MAPK + MEKpp -> MAPKMEKpp |
a8 = 5. | MAPKp + MAPKPH -> MAPKpMAPKPH |
a9 = 20. | MAPKp + MEKpp -> MAPKpMEKpp |
d10 = 0.4 | MAPKppMAPKPH -> MAPKPH + MAPKpp |
d1 = 0.4 | RAFRAFK -> RAF + RAFK |
d2 = 0.5 | RAFpRAFPH -> RAFp + RAFPH |
d3 = 0.42 | MEKRAFp -> MEK + RAFp |
d4 = 0.8 | MEKpMEKPH -> MEKp + MEKPH |
d5 = 0.4 | MEKpRAFp -> MEKp + RAFp |
d6 = 0.8 | MEKppMEKPH -> MEKPH + MEKpp |
d7 = 0.6 | MAPKMEKpp -> MAPK + MEKpp |
d8 = 0.4 | MAPKpMAPKPH -> MAPKp + MAPKPH |
d9 = 0.6 | MAPKpMEKpp -> MAPKp + MEKpp |
k10 = 0.1 | MAPKppMAPKPH -> MAPKp + MAPKPH |
k1 = 0.1 | RAFRAFK -> RAFK + RAFp |
k2 = 0.1 | RAFpRAFPH -> RAF + RAFPH |
k3 = 0.1 | MEKRAFp -> MEKp + RAFp |
k4 = 0.1 | MEKpMEKPH -> MEK + MEKPH |
k5 = 0.1 | MEKpRAFp -> MEKpp + RAFp |
k6 = 0.1 | MEKppMEKPH -> MEKp + MEKPH |
k7 = 0.1 | MAPKMEKpp -> MAPKp + MEKpp |
k8 = 0.1 | MAPKpMAPKPH -> MAPK + MAPKPH |
k9 = 0.1 | MAPKpMEKpp -> MAPKpp + MEKpp |
Variable | IC | ODE |
---|---|---|
MAPK | 0.3 | MAPK'[t] == d7*MAPKMEKpp[t] + k8*MAPKpMAPKPH[t] - a7*MAPK[t]*MEKpp[t] |
MAPKMEKpp | 0 | MAPKMEKpp'[t] == -(d7*MAPKMEKpp[t]) - k7*MAPKMEKpp[t] + a7*MAPK[t]*MEKpp[t] |
MAPKp | 0 | MAPKp'[t] == k7*MAPKMEKpp[t] - a8*MAPKp[t]*MAPKPH[t] + d8*MAPKpMAPKPH[t] + d9*MAPKpMEKpp[t] + k10* MAPKppMAPKPH[t] - a9*MAPKp[t]*MEKpp[t] |
MAPKPH | 0.3 | MAPKPH'[t] == -(a8*MAPKp[t]*MAPKPH[t]) + d8*MAPKpMAPKPH[ t] + k8*MAPKpMAPKPH[t] - a10*MAPKPH[t]*MAPKpp[t] + d10*MAPKppMAPKPH[t] + k10*MAPKppMAPKPH[t] |
MAPKpMAPKPH | 0 | MAPKpMAPKPH'[t] == a8*MAPKp[t]*MAPKPH[t] - d8* MAPKpMAPKPH[t] - k8*MAPKpMAPKPH[t] |
MAPKpMEKpp | 0 | MAPKpMEKpp'[t] == -(d9*MAPKpMEKpp[t]) - k9*MAPKpMEKpp[t] + a9*MAPKp[t]*MEKpp[t] |
MAPKpp | 0 | MAPKpp'[t] == k9*MAPKpMEKpp[t] - a10*MAPKPH[t]*MAPKpp[t] + d10*MAPKppMAPKPH[t] |
MAPKppMAPKPH | 0 | MAPKppMAPKPH'[t] == a10*MAPKPH[t]*MAPKpp[t] - d10* MAPKppMAPKPH[t] - k10*MAPKppMAPKPH[t] |
MEK | 0.2 | MEK'[t] == k4*MEKpMEKPH[t] + d3*MEKRAFp[t] - a3*MEK[t]*RAFp[t] |
MEKp | 0 | MEKp'[t] == -(a4*MEKp[t]*MEKPH[t]) + d4*MEKpMEKPH[t] + k6*MEKppMEKPH[t] + d5*MEKpRAFp[t] + k3*MEKRAFp[ t] - a5*MEKp[t]*RAFp[t] |
MEKPH | 0.2 | MEKPH'[t] == -(a4*MEKp[t]*MEKPH[t]) + d4*MEKpMEKPH[t] + k4*MEKpMEKPH[t] - a6*MEKPH[t]*MEKpp[t] + d6* MEKppMEKPH[t] + k6*MEKppMEKPH[t] |
MEKpMEKPH | 0 | MEKpMEKPH'[t] == a4*MEKp[t]*MEKPH[t] - d4*MEKpMEKPH[t] - k4*MEKpMEKPH[t] |
MEKpp | 0 | MEKpp'[t] == d7*MAPKMEKpp[t] + k7*MAPKMEKpp[t] + d9*MAPKpMEKpp[t] + k9*MAPKpMEKpp[t] - a7*MAPK[t]* MEKpp[t] - a9*MAPKp[t]*MEKpp[t] - a6*MEKPH[t]*MEKpp[t] + d6*MEKppMEKPH[t] + k5*MEKpRAFp[t] |
MEKppMEKPH | 0 | MEKppMEKPH'[t] == a6*MEKPH[t]*MEKpp[t] - d6*MEKppMEKPH[ t] - k6*MEKppMEKPH[t] |
MEKpRAFp | 0 | MEKpRAFp'[t] == -(d5*MEKpRAFp[t]) - k5*MEKpRAFp[t] + a5*MEKp[t]*RAFp[t] |
MEKRAFp | 0 | MEKRAFp'[t] == -(d3*MEKRAFp[t]) - k3*MEKRAFp[t] + a3*MEK[t]*RAFp[t] |
RAF | 0.4 | RAF'[t] == -(a1*RAF[t]*RAFK[t]) + k2*RAFpRAFPH[t] + d1*RAFRAFK[t] |
RAFK | 0.1 | RAFK'[t] == -(a1*RAF[t]*RAFK[t]) + d1*RAFRAFK[t] + k1*RAFRAFK[t] |
RAFp | 0 | RAFp'[t] == d5*MEKpRAFp[t] + k5*MEKpRAFp[t] + d3*MEKRAFp[t] + k3*MEKRAFp[t] - a3*MEK[t]*RAFp[t] - a5*MEKp[t]*RAFp[t] - a2*RAFp[t]*RAFPH[t] + d2* RAFpRAFPH[t] + k1*RAFRAFK[t] |
RAFPH | 0.3 | RAFPH'[t] == -(a2*RAFp[t]*RAFPH[t]) + d2*RAFpRAFPH[t] + k2*RAFpRAFPH[t] |
RAFpRAFPH | 0 | RAFpRAFPH'[t] == a2*RAFp[t]*RAFPH[t] - d2*RAFpRAFPH[t] - k2*RAFpRAFPH[t] |
RAFRAFK | 0 | RAFRAFK'[t] == a1*RAF[t]*RAFK[t] - d1*RAFRAFK[t] - k1*RAFRAFK[t] |
Generated by Cellerator Version 1.4.3 (6-March-2004) using Mathematica 5.0 for Mac OS X (November 19, 2003), March 6, 2004 12:18:07, using (PowerMac, PowerPC,Mac OS X,MacOSX,Darwin)
author=B.E.Shapiro
This model originates from BioModels Database: A Database of Annotated Published Models (http://www.ebi.ac.uk/biomodels/). It is copyright (c) 2005-2010 The BioModels.net Team.
For more information see the terms of use
.
To cite BioModels Database, please use: Li C, Donizelli M, Rodriguez N, Dharuri H, Endler L, Chelliah V, Li L, He E, Henry A, Stefan MI, Snoep JL, Hucka M, Le Novère N, Laibe C (2010) BioModels Database: An enhanced, curated and annotated resource for published quantitative kinetic models. BMC Syst Biol., 4:92.
The LNA is computed running run_lna
the optional argument return_results
(default False
) indicates whether the full result is returned, or only the status of the computation. To retrieve the results after a computation of the LNA the following methods may be used:
get_lna_status
returns the status of the last computationget_lna_covariance_matrix
returns the full covariance matrixget_lna_reduced_covariance_matrix
returns the reduced covariance matrixget_lna_reduced_b_matrix
returns the reduced b Matrixget_lna_solution
returns the tuple:(status, covariance matrix, reduced covariance matrix, reduced b matrix)
[3]:
run_lna()
[3]:
'Steady State found.'
[4]:
import matplotlib.pyplot as plt
# Get the covariance matrix
df_cov_matrix = get_lna_covariance_matrix()
# Generate heatmap
plt.figure(figsize=(10, 8))
plt.imshow(df_cov_matrix, cmap='viridis', aspect='auto')
plt.colorbar()
plt.title('LNA Covariance Matrix Heatmap')
plt.xticks(range(df_cov_matrix.shape[1]), df_cov_matrix.columns, rotation=90)
plt.yticks(range(df_cov_matrix.shape[0]), df_cov_matrix.index)
plt.show()