Models / Saadat 2021

Add analysis

Saadat 2021 model

tune

Simulation parameters

analytics

Analyses

Simulation

Loading chart...

PAM Fluorescence

Loading chart...

Model Details

Review and edit model structure, biological variables, and kinetic parameters.

NameTex nameInitial valueActions

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

Edit Options

preview

Generated Python Code

import numpy as np

def model(
    time: float,
    variables: list[float], 
):
    _3PGA, BPGA, GAP, DHAP, FBP, F6P, G6P, G1P, SBP, S7P, E4P, X5P, R5P, RUBP, RU5P, atp, fd_ox, protons_lumen, lhc, nadph, pc_ox, pq_ox, psbs_de, vx, MDA, H2O2, DHA, GSSG, tr_ox, E_inactive = variables
    PPFD = 100
    CO2__dissolved_ = 0.2
    O2_lumen = 8
    pH = 7.9
    protons = 0.000012589254117941661
    bH = 100
    F = 96.485
    E_0_PC = 0.38
    E_0_P700 = 0.48
    E_0_FA = -0.55
    E_0_Fd = -0.43
    E_0_NADP = -0.113
    convf = 0.032
    R = 0.0083
    T = 298
    Carotenoids_tot = 1
    Fd_ = 5
    PC_tot = 4
    PSBS_tot = 1
    LHC_tot = 1
    gamma0 = 0.1
    gamma1 = 0.25
    gamma2 = 0.6
    gamma3 = 0.15
    kZSat = 0.12
    E_0_QA = -0.14
    E_0_PQ = 0.354
    PQ_tot = 17.5
    staticAntII = 0.1
    staticAntI = 0.37
    Thioredoxin_tot = 1
    E_total = 6
    NADP_ = 0.8
    A_P = 2.55
    Pi_tot = 17.05
    kf_ferredoxin_thioredoxin_reductase = 1
    kf_tr_activation = 1
    kf_tr_inactivation = 0.1
    ASC_tot_ = 10
    Glutathion_tot = 10
    kf_atp_synthase = 20
    HPR = 4.666666666666667
    Pi_mol = 0.01
    DeltaG0_ATP = 30.6
    kcat_b6f = 2.5
    kh_lhc_protonation = 3
    kf_lhc_protonation = 0.0096
    ksat_lhc_protonation = 5.8
    kf_lhc_deprotonation = 0.0096
    kf_cyclic_electron_flow = 1
    kf_violaxanthin_deepoxidase = 0.0024
    kh_violaxanthin_deepoxidase = 5
    ksat_violaxanthin_deepoxidase = 5.8
    kf_zeaxanthin_epoxidase = 0.00024
    km_fnr_fd_red = 1.56
    km_fnr_nadp = 0.22
    E0_fnr = 3
    kcat_fnr = 500
    kf_ndh = 0.002
    PSII_total = 2.5
    PSI_total = 2.5
    kH0 = 500000000
    kPQred = 250
    kPCox = 2500
    kFdred = 250000
    k2 = 5000000000
    kH = 5000000000
    kF = 625000000
    kMehler = 1
    E0_ferredoxin_reductase = 1
    kcat_ferredoxin_reductase = 250000
    kf_proton_leak = 10
    kPTOX = 0.01
    kStt7 = 0.0035
    km_lhc_state_transition_12 = 0.2
    n_ST = 2
    kPph1 = 0.0013
    E0_rubisco = 1
    kcat_rubisco_carboxylase = 2.72
    km_rubisco_carboxylase_RUBP = 0.02
    km_rubisco_carboxylase_CO2__dissolved_ = 0.0107
    ki_rubisco_carboxylase_3PGA = 0.04
    ki_rubisco_carboxylase_FBP = 0.04
    ki_rubisco_carboxylase_SBP = 0.075
    ki_rubisco_carboxylase_pi = 0.9
    ki_rubisco_carboxylase_nadph = 0.07
    kre_phosphoglycerate_kinase = 800000000
    keq_phosphoglycerate_kinase = 0.00031
    kre_gadph = 800000000
    keq_gadph = 16000000
    kre_triose_phosphate_isomerase = 800000000
    keq_triose_phosphate_isomerase = 22
    kre_aldolase_dhap_gap = 800000000
    keq_aldolase_dhap_gap = 7.1
    kre_aldolase_dhap_e4p = 800000000
    keq_aldolase_dhap_e4p = 13
    E0_fbpase = 1
    kcat_fbpase = 1.6
    km_fbpase_s = 0.03
    ki_fbpase_F6P = 0.7
    ki_fbpase_pi = 12
    kre_transketolase_gap_f6p = 800000000
    keq_transketolase_gap_f6p = 0.084
    kre_transketolase_gap_s7p = 800000000
    keq_transketolase_gap_s7p = 0.85
    E0_SBPase = 1
    kcat_SBPase = 0.32
    km_SBPase_s = 0.013
    ki_SBPase_pi = 12
    kre_ribose_phosphate_isomerase = 800000000
    keq_ribose_phosphate_isomerase = 0.4
    kre_ribulose_phosphate_epimerase = 800000000
    keq_ribulose_phosphate_epimerase = 0.67
    E0_phosphoribulokinase = 1
    kcat_phosphoribulokinase = 7.9992
    km_phosphoribulokinase_RU5P = 0.05
    km_phosphoribulokinase_atp = 0.05
    ki_phosphoribulokinase_3PGA = 2
    ki_phosphoribulokinase_RUBP = 0.7
    ki_phosphoribulokinase_pi = 4
    ki_phosphoribulokinase_4 = 2.5
    ki_phosphoribulokinase_5 = 0.4
    kre_g6pi = 800000000
    keq_g6pi = 2.3
    kre_phosphoglucomutase = 800000000
    keq_phosphoglucomutase = 0.058
    pi_ext = 0.5
    km_ex_pga = 0.25
    km_ex_gap = 0.075
    km_ex_dhap = 0.077
    km_N_translocator_pi_ext = 0.74
    km_N_translocator_pi = 0.63
    kcat_N_translocator = 2
    E0_N_translocator = 1
    E0_ex_g1p = 1
    km_ex_g1p_G1P = 0.08
    km_ex_g1p_atp = 0.08
    ki_ex_g1p = 10
    ki_ex_g1p_3PGA = 0.1
    ki_ex_g1p_F6P = 0.02
    ki_ex_g1p_FBP = 0.02
    kcat_ex_g1p = 0.32
    kf_mda_reductase_1 = 500
    E0_mda_reductase_2 = 0.002
    kcat_mda_reductase_2 = 300
    km_mda_reductase_2_nadph = 0.023
    km_mda_reductase_2_MDA = 0.0014
    kf1 = 10000
    kr1 = 220
    kf2 = 10000
    kr2 = 4000
    kf3 = 2510
    kf4 = 10000
    kr4 = 4000
    kf5 = 2510
    XT = 0.07
    E0_glutathion_reductase = 0.0014
    kcat_glutathion_reductase = 595
    km_glutathion_reductase_nadph = 0.003
    km_glutathion_reductase_GSSG = 0.2
    km_dehydroascorbate_reductase_DHA = 0.07
    km_dehydroascorbate_reductase_GSH = 2.5
    K = 0.5
    E0_dehydroascorbate_reductase = 0.0017
    kcat_dehydroascorbate_reductase = 142
    kf_ex_atp = 0.2
    kf_ex_nadph = 0.2
    RT = R * T
    dG_pH = 2.302585092994046 * R * T
    pH_lumen = - (np.log(0.00025 * protons_lumen)) / (np.log(10))
    zx = Carotenoids_tot + - vx
    fd_red = Fd_ + - fd_ox
    pc_red = PC_tot + - pc_ox
    psbs_pr = PSBS_tot + - psbs_de
    lhc_prot = LHC_tot + - lhc
    Q = gamma0 * psbs_de * vx + gamma1 * psbs_pr * vx + (gamma2 * psbs_pr * zx) / (kZSat + zx) + (gamma3 * psbs_de * zx) / (kZSat + zx)
    keq_pq_red = np.exp((2 * E_0_PQ * F + - 2 * E_0_QA * F + - 2 * dG_pH * pH) / (RT))
    pq_red = PQ_tot + - pq_ox
    PSII_cross_section = staticAntII + lhc * (1 + - staticAntI + - staticAntII)
    tr_red = Thioredoxin_tot + - tr_ox
    E_active = E_total + - E_inactive
    nadp = NADP_ + - nadph
    adp = A_P + - atp
    pi = Pi_tot + - DHAP + - E4P + - F6P + - G1P + - G6P + - GAP + - R5P + - RU5P + - S7P + - X5P + - _3PGA + - atp + - 2 * BPGA + - 2 * FBP + - 2 * RUBP + - 2 * SBP
    ascorbate = ASC_tot_ + - DHA + - MDA
    GSH = Glutathion_tot + - 2 * GSSG
    keq_atp_synthase = Pi_mol * np.exp((- DeltaG0_ATP + HPR * dG_pH * (pH + - pH_lumen)) / (RT))
    keq_b6f = np.exp((2 * E_0_PC * F + 2 * dG_pH * pH_lumen + - 2 * E_0_PQ * F + - 2 * dG_pH * (pH + - pH_lumen)) / (RT))
    keq_fnr = np.exp((- dG_pH * pH + 2 * E_0_NADP * F + - 2 * E_0_Fd * F) / (RT))
    vmax_fnr = E0_fnr * kcat_fnr
    keq_PCP700 = np.exp((E_0_P700 * F + - E_0_PC * F) / (RT))
    keq_ferredoxin_reductase = np.exp((E_0_Fd * F + - E_0_FA * F) / (RT))
    vmax_ferredoxin_reductase = E0_ferredoxin_reductase * kcat_ferredoxin_reductase
    E0_rubisco_active = E0_rubisco * E_active
    vmax_rubisco_carboxylase = E0_rubisco_active * kcat_rubisco_carboxylase
    E0_fbpase_active = E0_fbpase * E_active
    vmax_fbpase = E0_fbpase_active * kcat_fbpase
    E0_SBPase_active = E0_SBPase * E_active
    vmax_SBPase = E0_SBPase_active * kcat_SBPase
    E0_phosphoribulokinase_active = E0_phosphoribulokinase * E_active
    vmax_phosphoribulokinase = E0_phosphoribulokinase_active * kcat_phosphoribulokinase
    vmax_ex_pga = E0_N_translocator * kcat_N_translocator
    N_translocator = 1 + (1 + (km_N_translocator_pi_ext) / (pi_ext)) * ((DHAP) / (km_ex_dhap) + (GAP) / (km_ex_gap) + (_3PGA) / (km_ex_pga) + (pi) / (km_N_translocator_pi))
    E0_ex_g1p_active = E0_ex_g1p * E_active
    vmax_ex_g1p = E0_ex_g1p_active * kcat_ex_g1p
    vmax_mda_reductase_2 = E0_mda_reductase_2 * kcat_mda_reductase_2
    vmax_glutathion_reductase = E0_glutathion_reductase * kcat_glutathion_reductase
    vmax_dehydroascorbate_reductase = E0_dehydroascorbate_reductase * kcat_dehydroascorbate_reductase
    B0 = (PSII_total * kPQred * keq_pq_red * pq_ox * ((kF) ** (2) + (kH0) ** (2) + k2 * kF + k2 * kH0 + (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 + Q * k2 * kH + 2 * Q * kF * kH + 2 * Q * kH * kH0)) / (kPQred * pq_red * (kF) ** (2) + kPQred * pq_red * (kH0) ** (2) + k2 * kF * kPQred * pq_red + k2 * kH0 * kPQred * pq_red + k2 * keq_pq_red * (PPFD) ** (2) * (PSII_cross_section) ** (2) + kPQred * keq_pq_red * pq_ox * (kF) ** (2) + kPQred * keq_pq_red * pq_ox * (kH0) ** (2) + kPQred * pq_red * (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * kF * keq_pq_red + PPFD * PSII_cross_section * k2 * kH0 * keq_pq_red + PPFD * PSII_cross_section * k2 * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * pq_red + PPFD * PSII_cross_section * kH0 * kPQred * pq_red + Q * k2 * kH * kPQred * pq_red + k2 * kF * kPQred * keq_pq_red * pq_ox + k2 * kH0 * kPQred * keq_pq_red * pq_ox + kPQred * keq_pq_red * pq_ox * (Q) ** (2) * (kH) ** (2) + 2 * Q * kF * kH * kPQred * pq_red + 2 * Q * kH * kH0 * kPQred * pq_red + 2 * kF * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * k2 * kH * keq_pq_red + PPFD * PSII_cross_section * Q * kH * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * kH0 * kPQred * keq_pq_red * pq_ox + Q * k2 * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kF * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kH * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * kH * kPQred * keq_pq_red * pq_ox)
    B1 = (PPFD * PSII_cross_section * PSII_total * kPQred * keq_pq_red * pq_ox * (kF + kH0 + Q * kH)) / (kPQred * pq_red * (kF) ** (2) + kPQred * pq_red * (kH0) ** (2) + k2 * kF * kPQred * pq_red + k2 * kH0 * kPQred * pq_red + k2 * keq_pq_red * (PPFD) ** (2) * (PSII_cross_section) ** (2) + kPQred * keq_pq_red * pq_ox * (kF) ** (2) + kPQred * keq_pq_red * pq_ox * (kH0) ** (2) + kPQred * pq_red * (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * kF * keq_pq_red + PPFD * PSII_cross_section * k2 * kH0 * keq_pq_red + PPFD * PSII_cross_section * k2 * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * pq_red + PPFD * PSII_cross_section * kH0 * kPQred * pq_red + Q * k2 * kH * kPQred * pq_red + k2 * kF * kPQred * keq_pq_red * pq_ox + k2 * kH0 * kPQred * keq_pq_red * pq_ox + kPQred * keq_pq_red * pq_ox * (Q) ** (2) * (kH) ** (2) + 2 * Q * kF * kH * kPQred * pq_red + 2 * Q * kH * kH0 * kPQred * pq_red + 2 * kF * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * k2 * kH * keq_pq_red + PPFD * PSII_cross_section * Q * kH * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * kH0 * kPQred * keq_pq_red * pq_ox + Q * k2 * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kF * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kH * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * kH * kPQred * keq_pq_red * pq_ox)
    B2 = (PSII_total * (kPQred * pq_red * (kF) ** (2) + kPQred * pq_red * (kH0) ** (2) + k2 * kF * kPQred * pq_red + k2 * kH0 * kPQred * pq_red + kPQred * pq_red * (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * kF * keq_pq_red + PPFD * PSII_cross_section * k2 * kH0 * keq_pq_red + Q * k2 * kH * kPQred * pq_red + 2 * Q * kF * kH * kPQred * pq_red + 2 * Q * kH * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * Q * k2 * kH * keq_pq_red)) / (kPQred * pq_red * (kF) ** (2) + kPQred * pq_red * (kH0) ** (2) + k2 * kF * kPQred * pq_red + k2 * kH0 * kPQred * pq_red + k2 * keq_pq_red * (PPFD) ** (2) * (PSII_cross_section) ** (2) + kPQred * keq_pq_red * pq_ox * (kF) ** (2) + kPQred * keq_pq_red * pq_ox * (kH0) ** (2) + kPQred * pq_red * (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * kF * keq_pq_red + PPFD * PSII_cross_section * k2 * kH0 * keq_pq_red + PPFD * PSII_cross_section * k2 * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * pq_red + PPFD * PSII_cross_section * kH0 * kPQred * pq_red + Q * k2 * kH * kPQred * pq_red + k2 * kF * kPQred * keq_pq_red * pq_ox + k2 * kH0 * kPQred * keq_pq_red * pq_ox + kPQred * keq_pq_red * pq_ox * (Q) ** (2) * (kH) ** (2) + 2 * Q * kF * kH * kPQred * pq_red + 2 * Q * kH * kH0 * kPQred * pq_red + 2 * kF * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * k2 * kH * keq_pq_red + PPFD * PSII_cross_section * Q * kH * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * kH0 * kPQred * keq_pq_red * pq_ox + Q * k2 * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kF * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kH * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * kH * kPQred * keq_pq_red * pq_ox)
    B3 = (PPFD * PSII_cross_section * PSII_total * (k2 * kPQred * pq_red + kF * kPQred * pq_red + kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * keq_pq_red + Q * kH * kPQred * pq_red)) / (kPQred * pq_red * (kF) ** (2) + kPQred * pq_red * (kH0) ** (2) + k2 * kF * kPQred * pq_red + k2 * kH0 * kPQred * pq_red + k2 * keq_pq_red * (PPFD) ** (2) * (PSII_cross_section) ** (2) + kPQred * keq_pq_red * pq_ox * (kF) ** (2) + kPQred * keq_pq_red * pq_ox * (kH0) ** (2) + kPQred * pq_red * (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * kF * keq_pq_red + PPFD * PSII_cross_section * k2 * kH0 * keq_pq_red + PPFD * PSII_cross_section * k2 * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * pq_red + PPFD * PSII_cross_section * kH0 * kPQred * pq_red + Q * k2 * kH * kPQred * pq_red + k2 * kF * kPQred * keq_pq_red * pq_ox + k2 * kH0 * kPQred * keq_pq_red * pq_ox + kPQred * keq_pq_red * pq_ox * (Q) ** (2) * (kH) ** (2) + 2 * Q * kF * kH * kPQred * pq_red + 2 * Q * kH * kH0 * kPQred * pq_red + 2 * kF * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * k2 * kH * keq_pq_red + PPFD * PSII_cross_section * Q * kH * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * kH0 * kPQred * keq_pq_red * pq_ox + Q * k2 * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kF * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kH * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * kH * kPQred * keq_pq_red * pq_ox)
    A0 = (PSI_total * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (O2_lumen * kMehler + fd_ox * kFdred)) / (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + fd_ox * kFdred * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section) + fd_ox * kFdred * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red)
    A1 = (PSI_total * (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section))) / (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + fd_ox * kFdred * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section) + fd_ox * kFdred * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red)
    A2 = PSI_total + - (PSI_total * (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section))) / (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + fd_ox * kFdred * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section) + fd_ox * kFdred * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red) + - (PSI_total * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (O2_lumen * kMehler + fd_ox * kFdred)) / (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + fd_ox * kFdred * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section) + fd_ox * kFdred * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red)
    ferredoxin_thioredoxin_reductase = fd_red * kf_ferredoxin_thioredoxin_reductase * tr_ox
    tr_activation = E_inactive * kf_tr_activation * tr_red
    tr_inactivation = E_active * kf_tr_inactivation
    atp_synthase = kf_atp_synthase * ((adp) / (convf) + - (atp) / (convf * keq_atp_synthase))
    b6f = max(- kcat_b6f, kcat_b6f * (pq_red * (pc_ox) ** (2) + - (pq_ox * (pc_red) ** (2)) / (keq_b6f)))
    lhc_protonation = (kf_lhc_protonation * psbs_de * (protons_lumen) ** (kh_lhc_protonation)) / ((protons_lumen) ** (kh_lhc_protonation) + (4000 * (10) ** (- ksat_lhc_protonation)) ** (kh_lhc_protonation))
    lhc_deprotonation = kf_lhc_deprotonation * psbs_pr
    cyclic_electron_flow = kf_cyclic_electron_flow * pq_ox * (fd_red) ** (2)
    violaxanthin_deepoxidase = (kf_violaxanthin_deepoxidase * vx * (protons_lumen) ** (kh_violaxanthin_deepoxidase)) / ((protons_lumen) ** (kh_violaxanthin_deepoxidase) + (4000 * (10) ** (- ksat_violaxanthin_deepoxidase)) ** (kh_violaxanthin_deepoxidase))
    zeaxanthin_epoxidase = kf_zeaxanthin_epoxidase * zx
    fnr = (vmax_fnr * ((nadp * ((fd_red) / (km_fnr_fd_red)) ** (2)) / (convf * km_fnr_nadp) + - (nadph * ((fd_ox) / (km_fnr_fd_red)) ** (2)) / (convf * keq_fnr * km_fnr_nadp))) / (-1 + (1 + (nadp) / (convf * km_fnr_nadp)) * (1 + ((fd_red) / (km_fnr_fd_red)) ** (2) + (fd_red) / (km_fnr_fd_red)) + (1 + (nadph) / (convf * km_fnr_nadp)) * (1 + ((fd_ox) / (km_fnr_fd_red)) ** (2) + (fd_ox) / (km_fnr_fd_red)))
    ndh = kf_ndh * pq_ox
    PSII = 0.5 * B1 * k2
    PSI = A0 * PPFD * (1 + - PSII_cross_section)
    mehler = A1 * O2_lumen * kMehler
    ferredoxin_reductase = A1 * fd_ox * vmax_ferredoxin_reductase + - (A2 * fd_red * vmax_ferredoxin_reductase) / (keq_ferredoxin_reductase)
    proton_leak = kf_proton_leak * (protons_lumen + - 4000 * (10) ** (- pH))
    PTOX = O2_lumen * kPTOX * pq_red
    lhc_state_transition_12 = (1 * kStt7 * lhc) / (1 + ((pq_ox) / (PQ_tot * km_lhc_state_transition_12)) ** (n_ST))
    lhc_state_transition_21 = kPph1 * lhc_prot
    rubisco_carboxylase = (CO2__dissolved_ * RUBP * vmax_rubisco_carboxylase) / ((CO2__dissolved_ + km_rubisco_carboxylase_CO2__dissolved_) * (RUBP + km_rubisco_carboxylase_RUBP * (1 + (FBP) / (ki_rubisco_carboxylase_FBP) + (SBP) / (ki_rubisco_carboxylase_SBP) + (_3PGA) / (ki_rubisco_carboxylase_3PGA) + (nadph) / (ki_rubisco_carboxylase_nadph) + (pi) / (ki_rubisco_carboxylase_pi))))
    phosphoglycerate_kinase = kre_phosphoglycerate_kinase * (_3PGA * atp + - (BPGA * adp) / (keq_phosphoglycerate_kinase))
    gadph = kre_gadph * (BPGA * nadph * protons + - (GAP * nadp * pi) / (keq_gadph))
    triose_phosphate_isomerase = kre_triose_phosphate_isomerase * (GAP + - (DHAP) / (keq_triose_phosphate_isomerase))
    aldolase_dhap_gap = kre_aldolase_dhap_gap * (DHAP * GAP + - (FBP) / (keq_aldolase_dhap_gap))
    aldolase_dhap_e4p = kre_aldolase_dhap_e4p * (DHAP * E4P + - (SBP) / (keq_aldolase_dhap_e4p))
    fbpase = (FBP * vmax_fbpase) / (FBP + km_fbpase_s * (1 + (F6P) / (ki_fbpase_F6P) + (pi) / (ki_fbpase_pi)))
    transketolase_gap_f6p = kre_transketolase_gap_f6p * (F6P * GAP + - (E4P * X5P) / (keq_transketolase_gap_f6p))
    transketolase_gap_s7p = kre_transketolase_gap_s7p * (GAP * S7P + - (R5P * X5P) / (keq_transketolase_gap_s7p))
    SBPase = (SBP * vmax_SBPase) / (SBP + km_SBPase_s * (1 + (pi) / (ki_SBPase_pi)))
    ribose_phosphate_isomerase = kre_ribose_phosphate_isomerase * (R5P + - (RU5P) / (keq_ribose_phosphate_isomerase))
    ribulose_phosphate_epimerase = kre_ribulose_phosphate_epimerase * (X5P + - (RU5P) / (keq_ribulose_phosphate_epimerase))
    phosphoribulokinase = (RU5P * atp * vmax_phosphoribulokinase) / ((RU5P + km_phosphoribulokinase_RU5P * (1 + (RUBP) / (ki_phosphoribulokinase_RUBP) + (_3PGA) / (ki_phosphoribulokinase_3PGA) + (pi) / (ki_phosphoribulokinase_pi))) * (atp * (1 + (adp) / (ki_phosphoribulokinase_4)) + km_phosphoribulokinase_atp * (1 + (adp) / (ki_phosphoribulokinase_5))))
    g6pi = kre_g6pi * (F6P + - (G6P) / (keq_g6pi))
    phosphoglucomutase = kre_phosphoglucomutase * (G6P + - (G1P) / (keq_phosphoglucomutase))
    ex_pga = (_3PGA * vmax_ex_pga) / (N_translocator * km_ex_pga)
    ex_gap = (GAP * vmax_ex_pga) / (N_translocator * km_ex_gap)
    ex_dhap = (DHAP * vmax_ex_pga) / (N_translocator * km_ex_dhap)
    ex_g1p = (G1P * atp * vmax_ex_g1p) / ((G1P + km_ex_g1p_G1P) * ((1 + (adp) / (ki_ex_g1p)) * (atp + km_ex_g1p_atp) + (km_ex_g1p_atp * pi) / (F6P * ki_ex_g1p_F6P + FBP * ki_ex_g1p_FBP + _3PGA * ki_ex_g1p_3PGA)))
    mda_reductase_1 = kf_mda_reductase_1 * (MDA) ** (2)
    mda_reductase_2 = (MDA * nadph * vmax_mda_reductase_2) / (MDA * km_mda_reductase_2_nadph + MDA * nadph + km_mda_reductase_2_MDA * km_mda_reductase_2_nadph + km_mda_reductase_2_MDA * nadph)
    ascorbate_peroxidase = (H2O2 * XT * ascorbate) / ((H2O2) / (kf2) + (H2O2) / (kf4) + (ascorbate) / (kf1) + H2O2 * ascorbate * ((1) / (kf3) + (1) / (kf5)) + (kr1) / (kf1 * kf2) + (H2O2 * kr2) / (kf2 * kf3) + (H2O2 * kr4) / (kf4 * kf5) + (kr1 * kr2) / (kf1 * kf2 * kf3))
    glutathion_reductase = (GSSG * nadph * vmax_glutathion_reductase) / (GSSG * km_glutathion_reductase_nadph + GSSG * nadph + km_glutathion_reductase_GSSG * km_glutathion_reductase_nadph + km_glutathion_reductase_GSSG * nadph)
    dehydroascorbate_reductase = (DHA * GSH * vmax_dehydroascorbate_reductase) / (K + DHA * GSH + DHA * km_dehydroascorbate_reductase_GSH + GSH * km_dehydroascorbate_reductase_DHA)
    ex_atp = atp * kf_ex_atp
    ex_nadph = kf_ex_nadph * nadph
    d_3PGAdt = +2*rubisco_carboxylase-phosphoglycerate_kinase-ex_pga
    dBPGAdt = +phosphoglycerate_kinase-gadph
    dGAPdt = +gadph-triose_phosphate_isomerase-aldolase_dhap_gap-transketolase_gap_f6p-transketolase_gap_s7p-ex_gap
    dDHAPdt = +triose_phosphate_isomerase-aldolase_dhap_gap-aldolase_dhap_e4p-ex_dhap
    dFBPdt = +aldolase_dhap_gap-fbpase
    dF6Pdt = +fbpase-transketolase_gap_f6p-g6pi
    dG6Pdt = +g6pi-phosphoglucomutase
    dG1Pdt = +phosphoglucomutase-ex_g1p
    dSBPdt = +aldolase_dhap_e4p-SBPase
    dS7Pdt = -transketolase_gap_s7p+SBPase
    dE4Pdt = -aldolase_dhap_e4p+transketolase_gap_f6p
    dX5Pdt = +transketolase_gap_f6p+transketolase_gap_s7p-ribulose_phosphate_epimerase
    dR5Pdt = +transketolase_gap_s7p-ribose_phosphate_isomerase
    dRUBPdt = -rubisco_carboxylase+phosphoribulokinase
    dRU5Pdt = +ribose_phosphate_isomerase+ribulose_phosphate_epimerase-phosphoribulokinase
    datpdt = +(convf)*atp_synthase-phosphoglycerate_kinase-phosphoribulokinase-ex_g1p-ex_atp
    dfd_oxdt = +ferredoxin_thioredoxin_reductase+2*cyclic_electron_flow+2*fnr-ferredoxin_reductase
    dprotons_lumendt = +(- (HPR) / (bH))*atp_synthase+((4) / (bH))*b6f+((2) / (bH))*PSII+(- (1) / (bH))*proton_leak
    dlhcdt = -lhc_state_transition_12+lhc_state_transition_21
    dnadphdt = +(convf)*fnr-gadph-mda_reductase_2-glutathion_reductase-ex_nadph
    dpc_oxdt = -2*b6f+PSI
    dpq_oxdt = +b6f-cyclic_electron_flow-ndh-PSII+PTOX
    dpsbs_dedt = -lhc_protonation+lhc_deprotonation
    dvxdt = -violaxanthin_deepoxidase+zeaxanthin_epoxidase
    dMDAdt = -2*mda_reductase_1-2*mda_reductase_2+2*ascorbate_peroxidase
    dH2O2dt = +(convf)*mehler-ascorbate_peroxidase
    dDHAdt = +mda_reductase_1-dehydroascorbate_reductase
    dGSSGdt = -glutathion_reductase+dehydroascorbate_reductase
    dtr_oxdt = -ferredoxin_thioredoxin_reductase+5*tr_activation
    dE_inactivedt = -5*tr_activation+5*tr_inactivation
    return [d_3PGAdt, dBPGAdt, dGAPdt, dDHAPdt, dFBPdt, dF6Pdt, dG6Pdt, dG1Pdt, dSBPdt, dS7Pdt, dE4Pdt, dX5Pdt, dR5Pdt, dRUBPdt, dRU5Pdt, datpdt, dfd_oxdt, dprotons_lumendt, dlhcdt, dnadphdt, dpc_oxdt, dpq_oxdt, dpsbs_dedt, dvxdt, dMDAdt, dH2O2dt, dDHAdt, dGSSGdt, dtr_oxdt, dE_inactivedt]

def all_derived(
    time: float,
    variables: list[float], 
):
    _3PGA, BPGA, GAP, DHAP, FBP, F6P, G6P, G1P, SBP, S7P, E4P, X5P, R5P, RUBP, RU5P, atp, fd_ox, protons_lumen, lhc, nadph, pc_ox, pq_ox, psbs_de, vx, MDA, H2O2, DHA, GSSG, tr_ox, E_inactive = variables
    PPFD = 100
    CO2__dissolved_ = 0.2
    O2_lumen = 8
    pH = 7.9
    protons = 0.000012589254117941661
    bH = 100
    F = 96.485
    E_0_PC = 0.38
    E_0_P700 = 0.48
    E_0_FA = -0.55
    E_0_Fd = -0.43
    E_0_NADP = -0.113
    convf = 0.032
    R = 0.0083
    T = 298
    Carotenoids_tot = 1
    Fd_ = 5
    PC_tot = 4
    PSBS_tot = 1
    LHC_tot = 1
    gamma0 = 0.1
    gamma1 = 0.25
    gamma2 = 0.6
    gamma3 = 0.15
    kZSat = 0.12
    E_0_QA = -0.14
    E_0_PQ = 0.354
    PQ_tot = 17.5
    staticAntII = 0.1
    staticAntI = 0.37
    Thioredoxin_tot = 1
    E_total = 6
    NADP_ = 0.8
    A_P = 2.55
    Pi_tot = 17.05
    kf_ferredoxin_thioredoxin_reductase = 1
    kf_tr_activation = 1
    kf_tr_inactivation = 0.1
    ASC_tot_ = 10
    Glutathion_tot = 10
    kf_atp_synthase = 20
    HPR = 4.666666666666667
    Pi_mol = 0.01
    DeltaG0_ATP = 30.6
    kcat_b6f = 2.5
    kh_lhc_protonation = 3
    kf_lhc_protonation = 0.0096
    ksat_lhc_protonation = 5.8
    kf_lhc_deprotonation = 0.0096
    kf_cyclic_electron_flow = 1
    kf_violaxanthin_deepoxidase = 0.0024
    kh_violaxanthin_deepoxidase = 5
    ksat_violaxanthin_deepoxidase = 5.8
    kf_zeaxanthin_epoxidase = 0.00024
    km_fnr_fd_red = 1.56
    km_fnr_nadp = 0.22
    E0_fnr = 3
    kcat_fnr = 500
    kf_ndh = 0.002
    PSII_total = 2.5
    PSI_total = 2.5
    kH0 = 500000000
    kPQred = 250
    kPCox = 2500
    kFdred = 250000
    k2 = 5000000000
    kH = 5000000000
    kF = 625000000
    kMehler = 1
    E0_ferredoxin_reductase = 1
    kcat_ferredoxin_reductase = 250000
    kf_proton_leak = 10
    kPTOX = 0.01
    kStt7 = 0.0035
    km_lhc_state_transition_12 = 0.2
    n_ST = 2
    kPph1 = 0.0013
    E0_rubisco = 1
    kcat_rubisco_carboxylase = 2.72
    km_rubisco_carboxylase_RUBP = 0.02
    km_rubisco_carboxylase_CO2__dissolved_ = 0.0107
    ki_rubisco_carboxylase_3PGA = 0.04
    ki_rubisco_carboxylase_FBP = 0.04
    ki_rubisco_carboxylase_SBP = 0.075
    ki_rubisco_carboxylase_pi = 0.9
    ki_rubisco_carboxylase_nadph = 0.07
    kre_phosphoglycerate_kinase = 800000000
    keq_phosphoglycerate_kinase = 0.00031
    kre_gadph = 800000000
    keq_gadph = 16000000
    kre_triose_phosphate_isomerase = 800000000
    keq_triose_phosphate_isomerase = 22
    kre_aldolase_dhap_gap = 800000000
    keq_aldolase_dhap_gap = 7.1
    kre_aldolase_dhap_e4p = 800000000
    keq_aldolase_dhap_e4p = 13
    E0_fbpase = 1
    kcat_fbpase = 1.6
    km_fbpase_s = 0.03
    ki_fbpase_F6P = 0.7
    ki_fbpase_pi = 12
    kre_transketolase_gap_f6p = 800000000
    keq_transketolase_gap_f6p = 0.084
    kre_transketolase_gap_s7p = 800000000
    keq_transketolase_gap_s7p = 0.85
    E0_SBPase = 1
    kcat_SBPase = 0.32
    km_SBPase_s = 0.013
    ki_SBPase_pi = 12
    kre_ribose_phosphate_isomerase = 800000000
    keq_ribose_phosphate_isomerase = 0.4
    kre_ribulose_phosphate_epimerase = 800000000
    keq_ribulose_phosphate_epimerase = 0.67
    E0_phosphoribulokinase = 1
    kcat_phosphoribulokinase = 7.9992
    km_phosphoribulokinase_RU5P = 0.05
    km_phosphoribulokinase_atp = 0.05
    ki_phosphoribulokinase_3PGA = 2
    ki_phosphoribulokinase_RUBP = 0.7
    ki_phosphoribulokinase_pi = 4
    ki_phosphoribulokinase_4 = 2.5
    ki_phosphoribulokinase_5 = 0.4
    kre_g6pi = 800000000
    keq_g6pi = 2.3
    kre_phosphoglucomutase = 800000000
    keq_phosphoglucomutase = 0.058
    pi_ext = 0.5
    km_ex_pga = 0.25
    km_ex_gap = 0.075
    km_ex_dhap = 0.077
    km_N_translocator_pi_ext = 0.74
    km_N_translocator_pi = 0.63
    kcat_N_translocator = 2
    E0_N_translocator = 1
    E0_ex_g1p = 1
    km_ex_g1p_G1P = 0.08
    km_ex_g1p_atp = 0.08
    ki_ex_g1p = 10
    ki_ex_g1p_3PGA = 0.1
    ki_ex_g1p_F6P = 0.02
    ki_ex_g1p_FBP = 0.02
    kcat_ex_g1p = 0.32
    kf_mda_reductase_1 = 500
    E0_mda_reductase_2 = 0.002
    kcat_mda_reductase_2 = 300
    km_mda_reductase_2_nadph = 0.023
    km_mda_reductase_2_MDA = 0.0014
    kf1 = 10000
    kr1 = 220
    kf2 = 10000
    kr2 = 4000
    kf3 = 2510
    kf4 = 10000
    kr4 = 4000
    kf5 = 2510
    XT = 0.07
    E0_glutathion_reductase = 0.0014
    kcat_glutathion_reductase = 595
    km_glutathion_reductase_nadph = 0.003
    km_glutathion_reductase_GSSG = 0.2
    km_dehydroascorbate_reductase_DHA = 0.07
    km_dehydroascorbate_reductase_GSH = 2.5
    K = 0.5
    E0_dehydroascorbate_reductase = 0.0017
    kcat_dehydroascorbate_reductase = 142
    kf_ex_atp = 0.2
    kf_ex_nadph = 0.2
    RT = R * T
    dG_pH = 2.302585092994046 * R * T
    pH_lumen = - (np.log(0.00025 * protons_lumen)) / (np.log(10))
    zx = Carotenoids_tot + - vx
    fd_red = Fd_ + - fd_ox
    pc_red = PC_tot + - pc_ox
    psbs_pr = PSBS_tot + - psbs_de
    lhc_prot = LHC_tot + - lhc
    Q = gamma0 * psbs_de * vx + gamma1 * psbs_pr * vx + (gamma2 * psbs_pr * zx) / (kZSat + zx) + (gamma3 * psbs_de * zx) / (kZSat + zx)
    keq_pq_red = np.exp((2 * E_0_PQ * F + - 2 * E_0_QA * F + - 2 * dG_pH * pH) / (RT))
    pq_red = PQ_tot + - pq_ox
    PSII_cross_section = staticAntII + lhc * (1 + - staticAntI + - staticAntII)
    tr_red = Thioredoxin_tot + - tr_ox
    E_active = E_total + - E_inactive
    nadp = NADP_ + - nadph
    adp = A_P + - atp
    pi = Pi_tot + - DHAP + - E4P + - F6P + - G1P + - G6P + - GAP + - R5P + - RU5P + - S7P + - X5P + - _3PGA + - atp + - 2 * BPGA + - 2 * FBP + - 2 * RUBP + - 2 * SBP
    ascorbate = ASC_tot_ + - DHA + - MDA
    GSH = Glutathion_tot + - 2 * GSSG
    keq_atp_synthase = Pi_mol * np.exp((- DeltaG0_ATP + HPR * dG_pH * (pH + - pH_lumen)) / (RT))
    keq_b6f = np.exp((2 * E_0_PC * F + 2 * dG_pH * pH_lumen + - 2 * E_0_PQ * F + - 2 * dG_pH * (pH + - pH_lumen)) / (RT))
    keq_fnr = np.exp((- dG_pH * pH + 2 * E_0_NADP * F + - 2 * E_0_Fd * F) / (RT))
    vmax_fnr = E0_fnr * kcat_fnr
    keq_PCP700 = np.exp((E_0_P700 * F + - E_0_PC * F) / (RT))
    keq_ferredoxin_reductase = np.exp((E_0_Fd * F + - E_0_FA * F) / (RT))
    vmax_ferredoxin_reductase = E0_ferredoxin_reductase * kcat_ferredoxin_reductase
    E0_rubisco_active = E0_rubisco * E_active
    vmax_rubisco_carboxylase = E0_rubisco_active * kcat_rubisco_carboxylase
    E0_fbpase_active = E0_fbpase * E_active
    vmax_fbpase = E0_fbpase_active * kcat_fbpase
    E0_SBPase_active = E0_SBPase * E_active
    vmax_SBPase = E0_SBPase_active * kcat_SBPase
    E0_phosphoribulokinase_active = E0_phosphoribulokinase * E_active
    vmax_phosphoribulokinase = E0_phosphoribulokinase_active * kcat_phosphoribulokinase
    vmax_ex_pga = E0_N_translocator * kcat_N_translocator
    N_translocator = 1 + (1 + (km_N_translocator_pi_ext) / (pi_ext)) * ((DHAP) / (km_ex_dhap) + (GAP) / (km_ex_gap) + (_3PGA) / (km_ex_pga) + (pi) / (km_N_translocator_pi))
    E0_ex_g1p_active = E0_ex_g1p * E_active
    vmax_ex_g1p = E0_ex_g1p_active * kcat_ex_g1p
    vmax_mda_reductase_2 = E0_mda_reductase_2 * kcat_mda_reductase_2
    vmax_glutathion_reductase = E0_glutathion_reductase * kcat_glutathion_reductase
    vmax_dehydroascorbate_reductase = E0_dehydroascorbate_reductase * kcat_dehydroascorbate_reductase
    B0 = (PSII_total * kPQred * keq_pq_red * pq_ox * ((kF) ** (2) + (kH0) ** (2) + k2 * kF + k2 * kH0 + (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 + Q * k2 * kH + 2 * Q * kF * kH + 2 * Q * kH * kH0)) / (kPQred * pq_red * (kF) ** (2) + kPQred * pq_red * (kH0) ** (2) + k2 * kF * kPQred * pq_red + k2 * kH0 * kPQred * pq_red + k2 * keq_pq_red * (PPFD) ** (2) * (PSII_cross_section) ** (2) + kPQred * keq_pq_red * pq_ox * (kF) ** (2) + kPQred * keq_pq_red * pq_ox * (kH0) ** (2) + kPQred * pq_red * (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * kF * keq_pq_red + PPFD * PSII_cross_section * k2 * kH0 * keq_pq_red + PPFD * PSII_cross_section * k2 * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * pq_red + PPFD * PSII_cross_section * kH0 * kPQred * pq_red + Q * k2 * kH * kPQred * pq_red + k2 * kF * kPQred * keq_pq_red * pq_ox + k2 * kH0 * kPQred * keq_pq_red * pq_ox + kPQred * keq_pq_red * pq_ox * (Q) ** (2) * (kH) ** (2) + 2 * Q * kF * kH * kPQred * pq_red + 2 * Q * kH * kH0 * kPQred * pq_red + 2 * kF * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * k2 * kH * keq_pq_red + PPFD * PSII_cross_section * Q * kH * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * kH0 * kPQred * keq_pq_red * pq_ox + Q * k2 * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kF * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kH * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * kH * kPQred * keq_pq_red * pq_ox)
    B1 = (PPFD * PSII_cross_section * PSII_total * kPQred * keq_pq_red * pq_ox * (kF + kH0 + Q * kH)) / (kPQred * pq_red * (kF) ** (2) + kPQred * pq_red * (kH0) ** (2) + k2 * kF * kPQred * pq_red + k2 * kH0 * kPQred * pq_red + k2 * keq_pq_red * (PPFD) ** (2) * (PSII_cross_section) ** (2) + kPQred * keq_pq_red * pq_ox * (kF) ** (2) + kPQred * keq_pq_red * pq_ox * (kH0) ** (2) + kPQred * pq_red * (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * kF * keq_pq_red + PPFD * PSII_cross_section * k2 * kH0 * keq_pq_red + PPFD * PSII_cross_section * k2 * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * pq_red + PPFD * PSII_cross_section * kH0 * kPQred * pq_red + Q * k2 * kH * kPQred * pq_red + k2 * kF * kPQred * keq_pq_red * pq_ox + k2 * kH0 * kPQred * keq_pq_red * pq_ox + kPQred * keq_pq_red * pq_ox * (Q) ** (2) * (kH) ** (2) + 2 * Q * kF * kH * kPQred * pq_red + 2 * Q * kH * kH0 * kPQred * pq_red + 2 * kF * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * k2 * kH * keq_pq_red + PPFD * PSII_cross_section * Q * kH * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * kH0 * kPQred * keq_pq_red * pq_ox + Q * k2 * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kF * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kH * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * kH * kPQred * keq_pq_red * pq_ox)
    B2 = (PSII_total * (kPQred * pq_red * (kF) ** (2) + kPQred * pq_red * (kH0) ** (2) + k2 * kF * kPQred * pq_red + k2 * kH0 * kPQred * pq_red + kPQred * pq_red * (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * kF * keq_pq_red + PPFD * PSII_cross_section * k2 * kH0 * keq_pq_red + Q * k2 * kH * kPQred * pq_red + 2 * Q * kF * kH * kPQred * pq_red + 2 * Q * kH * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * Q * k2 * kH * keq_pq_red)) / (kPQred * pq_red * (kF) ** (2) + kPQred * pq_red * (kH0) ** (2) + k2 * kF * kPQred * pq_red + k2 * kH0 * kPQred * pq_red + k2 * keq_pq_red * (PPFD) ** (2) * (PSII_cross_section) ** (2) + kPQred * keq_pq_red * pq_ox * (kF) ** (2) + kPQred * keq_pq_red * pq_ox * (kH0) ** (2) + kPQred * pq_red * (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * kF * keq_pq_red + PPFD * PSII_cross_section * k2 * kH0 * keq_pq_red + PPFD * PSII_cross_section * k2 * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * pq_red + PPFD * PSII_cross_section * kH0 * kPQred * pq_red + Q * k2 * kH * kPQred * pq_red + k2 * kF * kPQred * keq_pq_red * pq_ox + k2 * kH0 * kPQred * keq_pq_red * pq_ox + kPQred * keq_pq_red * pq_ox * (Q) ** (2) * (kH) ** (2) + 2 * Q * kF * kH * kPQred * pq_red + 2 * Q * kH * kH0 * kPQred * pq_red + 2 * kF * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * k2 * kH * keq_pq_red + PPFD * PSII_cross_section * Q * kH * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * kH0 * kPQred * keq_pq_red * pq_ox + Q * k2 * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kF * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kH * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * kH * kPQred * keq_pq_red * pq_ox)
    B3 = (PPFD * PSII_cross_section * PSII_total * (k2 * kPQred * pq_red + kF * kPQred * pq_red + kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * keq_pq_red + Q * kH * kPQred * pq_red)) / (kPQred * pq_red * (kF) ** (2) + kPQred * pq_red * (kH0) ** (2) + k2 * kF * kPQred * pq_red + k2 * kH0 * kPQred * pq_red + k2 * keq_pq_red * (PPFD) ** (2) * (PSII_cross_section) ** (2) + kPQred * keq_pq_red * pq_ox * (kF) ** (2) + kPQred * keq_pq_red * pq_ox * (kH0) ** (2) + kPQred * pq_red * (Q) ** (2) * (kH) ** (2) + 2 * kF * kH0 * kPQred * pq_red + PPFD * PSII_cross_section * k2 * kF * keq_pq_red + PPFD * PSII_cross_section * k2 * kH0 * keq_pq_red + PPFD * PSII_cross_section * k2 * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * pq_red + PPFD * PSII_cross_section * kH0 * kPQred * pq_red + Q * k2 * kH * kPQred * pq_red + k2 * kF * kPQred * keq_pq_red * pq_ox + k2 * kH0 * kPQred * keq_pq_red * pq_ox + kPQred * keq_pq_red * pq_ox * (Q) ** (2) * (kH) ** (2) + 2 * Q * kF * kH * kPQred * pq_red + 2 * Q * kH * kH0 * kPQred * pq_red + 2 * kF * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * k2 * kH * keq_pq_red + PPFD * PSII_cross_section * Q * kH * kPQred * pq_red + PPFD * PSII_cross_section * kF * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * kH0 * kPQred * keq_pq_red * pq_ox + Q * k2 * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kF * kH * kPQred * keq_pq_red * pq_ox + 2 * Q * kH * kH0 * kPQred * keq_pq_red * pq_ox + PPFD * PSII_cross_section * Q * kH * kPQred * keq_pq_red * pq_ox)
    A0 = (PSI_total * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (O2_lumen * kMehler + fd_ox * kFdred)) / (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + fd_ox * kFdred * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section) + fd_ox * kFdred * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red)
    A1 = (PSI_total * (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section))) / (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + fd_ox * kFdred * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section) + fd_ox * kFdred * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red)
    A2 = PSI_total + - (PSI_total * (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section))) / (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + fd_ox * kFdred * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section) + fd_ox * kFdred * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red) + - (PSI_total * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (O2_lumen * kMehler + fd_ox * kFdred)) / (fd_red * kFdred * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + fd_ox * kFdred * keq_ferredoxin_reductase * (kPCox * pc_ox + PPFD * keq_PCP700 * (1 + - PSII_cross_section)) + O2_lumen * kMehler * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red + PPFD * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red * (1 + - PSII_cross_section) + fd_ox * kFdred * kPCox * keq_PCP700 * keq_ferredoxin_reductase * pc_red)
    ferredoxin_thioredoxin_reductase = fd_red * kf_ferredoxin_thioredoxin_reductase * tr_ox
    tr_activation = E_inactive * kf_tr_activation * tr_red
    tr_inactivation = E_active * kf_tr_inactivation
    atp_synthase = kf_atp_synthase * ((adp) / (convf) + - (atp) / (convf * keq_atp_synthase))
    b6f = max(- kcat_b6f, kcat_b6f * (pq_red * (pc_ox) ** (2) + - (pq_ox * (pc_red) ** (2)) / (keq_b6f)))
    lhc_protonation = (kf_lhc_protonation * psbs_de * (protons_lumen) ** (kh_lhc_protonation)) / ((protons_lumen) ** (kh_lhc_protonation) + (4000 * (10) ** (- ksat_lhc_protonation)) ** (kh_lhc_protonation))
    lhc_deprotonation = kf_lhc_deprotonation * psbs_pr
    cyclic_electron_flow = kf_cyclic_electron_flow * pq_ox * (fd_red) ** (2)
    violaxanthin_deepoxidase = (kf_violaxanthin_deepoxidase * vx * (protons_lumen) ** (kh_violaxanthin_deepoxidase)) / ((protons_lumen) ** (kh_violaxanthin_deepoxidase) + (4000 * (10) ** (- ksat_violaxanthin_deepoxidase)) ** (kh_violaxanthin_deepoxidase))
    zeaxanthin_epoxidase = kf_zeaxanthin_epoxidase * zx
    fnr = (vmax_fnr * ((nadp * ((fd_red) / (km_fnr_fd_red)) ** (2)) / (convf * km_fnr_nadp) + - (nadph * ((fd_ox) / (km_fnr_fd_red)) ** (2)) / (convf * keq_fnr * km_fnr_nadp))) / (-1 + (1 + (nadp) / (convf * km_fnr_nadp)) * (1 + ((fd_red) / (km_fnr_fd_red)) ** (2) + (fd_red) / (km_fnr_fd_red)) + (1 + (nadph) / (convf * km_fnr_nadp)) * (1 + ((fd_ox) / (km_fnr_fd_red)) ** (2) + (fd_ox) / (km_fnr_fd_red)))
    ndh = kf_ndh * pq_ox
    PSII = 0.5 * B1 * k2
    PSI = A0 * PPFD * (1 + - PSII_cross_section)
    mehler = A1 * O2_lumen * kMehler
    ferredoxin_reductase = A1 * fd_ox * vmax_ferredoxin_reductase + - (A2 * fd_red * vmax_ferredoxin_reductase) / (keq_ferredoxin_reductase)
    proton_leak = kf_proton_leak * (protons_lumen + - 4000 * (10) ** (- pH))
    PTOX = O2_lumen * kPTOX * pq_red
    lhc_state_transition_12 = (1 * kStt7 * lhc) / (1 + ((pq_ox) / (PQ_tot * km_lhc_state_transition_12)) ** (n_ST))
    lhc_state_transition_21 = kPph1 * lhc_prot
    rubisco_carboxylase = (CO2__dissolved_ * RUBP * vmax_rubisco_carboxylase) / ((CO2__dissolved_ + km_rubisco_carboxylase_CO2__dissolved_) * (RUBP + km_rubisco_carboxylase_RUBP * (1 + (FBP) / (ki_rubisco_carboxylase_FBP) + (SBP) / (ki_rubisco_carboxylase_SBP) + (_3PGA) / (ki_rubisco_carboxylase_3PGA) + (nadph) / (ki_rubisco_carboxylase_nadph) + (pi) / (ki_rubisco_carboxylase_pi))))
    phosphoglycerate_kinase = kre_phosphoglycerate_kinase * (_3PGA * atp + - (BPGA * adp) / (keq_phosphoglycerate_kinase))
    gadph = kre_gadph * (BPGA * nadph * protons + - (GAP * nadp * pi) / (keq_gadph))
    triose_phosphate_isomerase = kre_triose_phosphate_isomerase * (GAP + - (DHAP) / (keq_triose_phosphate_isomerase))
    aldolase_dhap_gap = kre_aldolase_dhap_gap * (DHAP * GAP + - (FBP) / (keq_aldolase_dhap_gap))
    aldolase_dhap_e4p = kre_aldolase_dhap_e4p * (DHAP * E4P + - (SBP) / (keq_aldolase_dhap_e4p))
    fbpase = (FBP * vmax_fbpase) / (FBP + km_fbpase_s * (1 + (F6P) / (ki_fbpase_F6P) + (pi) / (ki_fbpase_pi)))
    transketolase_gap_f6p = kre_transketolase_gap_f6p * (F6P * GAP + - (E4P * X5P) / (keq_transketolase_gap_f6p))
    transketolase_gap_s7p = kre_transketolase_gap_s7p * (GAP * S7P + - (R5P * X5P) / (keq_transketolase_gap_s7p))
    SBPase = (SBP * vmax_SBPase) / (SBP + km_SBPase_s * (1 + (pi) / (ki_SBPase_pi)))
    ribose_phosphate_isomerase = kre_ribose_phosphate_isomerase * (R5P + - (RU5P) / (keq_ribose_phosphate_isomerase))
    ribulose_phosphate_epimerase = kre_ribulose_phosphate_epimerase * (X5P + - (RU5P) / (keq_ribulose_phosphate_epimerase))
    phosphoribulokinase = (RU5P * atp * vmax_phosphoribulokinase) / ((RU5P + km_phosphoribulokinase_RU5P * (1 + (RUBP) / (ki_phosphoribulokinase_RUBP) + (_3PGA) / (ki_phosphoribulokinase_3PGA) + (pi) / (ki_phosphoribulokinase_pi))) * (atp * (1 + (adp) / (ki_phosphoribulokinase_4)) + km_phosphoribulokinase_atp * (1 + (adp) / (ki_phosphoribulokinase_5))))
    g6pi = kre_g6pi * (F6P + - (G6P) / (keq_g6pi))
    phosphoglucomutase = kre_phosphoglucomutase * (G6P + - (G1P) / (keq_phosphoglucomutase))
    ex_pga = (_3PGA * vmax_ex_pga) / (N_translocator * km_ex_pga)
    ex_gap = (GAP * vmax_ex_pga) / (N_translocator * km_ex_gap)
    ex_dhap = (DHAP * vmax_ex_pga) / (N_translocator * km_ex_dhap)
    ex_g1p = (G1P * atp * vmax_ex_g1p) / ((G1P + km_ex_g1p_G1P) * ((1 + (adp) / (ki_ex_g1p)) * (atp + km_ex_g1p_atp) + (km_ex_g1p_atp * pi) / (F6P * ki_ex_g1p_F6P + FBP * ki_ex_g1p_FBP + _3PGA * ki_ex_g1p_3PGA)))
    mda_reductase_1 = kf_mda_reductase_1 * (MDA) ** (2)
    mda_reductase_2 = (MDA * nadph * vmax_mda_reductase_2) / (MDA * km_mda_reductase_2_nadph + MDA * nadph + km_mda_reductase_2_MDA * km_mda_reductase_2_nadph + km_mda_reductase_2_MDA * nadph)
    ascorbate_peroxidase = (H2O2 * XT * ascorbate) / ((H2O2) / (kf2) + (H2O2) / (kf4) + (ascorbate) / (kf1) + H2O2 * ascorbate * ((1) / (kf3) + (1) / (kf5)) + (kr1) / (kf1 * kf2) + (H2O2 * kr2) / (kf2 * kf3) + (H2O2 * kr4) / (kf4 * kf5) + (kr1 * kr2) / (kf1 * kf2 * kf3))
    glutathion_reductase = (GSSG * nadph * vmax_glutathion_reductase) / (GSSG * km_glutathion_reductase_nadph + GSSG * nadph + km_glutathion_reductase_GSSG * km_glutathion_reductase_nadph + km_glutathion_reductase_GSSG * nadph)
    dehydroascorbate_reductase = (DHA * GSH * vmax_dehydroascorbate_reductase) / (K + DHA * GSH + DHA * km_dehydroascorbate_reductase_GSH + GSH * km_dehydroascorbate_reductase_DHA)
    ex_atp = atp * kf_ex_atp
    ex_nadph = kf_ex_nadph * nadph
    return [RT, dG_pH, pH_lumen, zx, fd_red, pc_red, psbs_pr, lhc_prot, Q, keq_pq_red, pq_red, PSII_cross_section, tr_red, E_active, nadp, adp, pi, ascorbate, GSH, keq_atp_synthase, keq_b6f, keq_fnr, vmax_fnr, keq_PCP700, keq_ferredoxin_reductase, vmax_ferredoxin_reductase, E0_rubisco_active, vmax_rubisco_carboxylase, E0_fbpase_active, vmax_fbpase, E0_SBPase_active, vmax_SBPase, E0_phosphoribulokinase_active, vmax_phosphoribulokinase, vmax_ex_pga, N_translocator, E0_ex_g1p_active, vmax_ex_g1p, vmax_mda_reductase_2, vmax_glutathion_reductase, vmax_dehydroascorbate_reductase, B0, B1, B2, B3, A0, A1, A2, ferredoxin_thioredoxin_reductase, tr_activation, tr_inactivation, atp_synthase, b6f, lhc_protonation, lhc_deprotonation, cyclic_electron_flow, violaxanthin_deepoxidase, zeaxanthin_epoxidase, fnr, ndh, PSII, PSI, mehler, ferredoxin_reductase, proton_leak, PTOX, lhc_state_transition_12, lhc_state_transition_21, rubisco_carboxylase, phosphoglycerate_kinase, gadph, triose_phosphate_isomerase, aldolase_dhap_gap, aldolase_dhap_e4p, fbpase, transketolase_gap_f6p, transketolase_gap_s7p, SBPase, ribose_phosphate_isomerase, ribulose_phosphate_epimerase, phosphoribulokinase, g6pi, phosphoglucomutase, ex_pga, ex_gap, ex_dhap, ex_g1p, mda_reductase_1, mda_reductase_2, ascorbate_peroxidase, glutathion_reductase, dehydroascorbate_reductase, ex_atp, ex_nadph]

derived = all_derived
y0 = {"_3PGA": 0.9167729479368978, "BPGA": 0.0003814495319659031, "GAP": 0.00580821050261484, "DHAP": 0.1277806166216142, "FBP": 0.005269452472931973, "F6P": 0.2874944558066638, "G6P": 0.6612372482712676, "G1P": 0.03835176039761378, "SBP": 0.011101373736607443, "S7P": 0.1494578301900007, "E4P": 0.00668295494870102, "X5P": 0.020988553174809618, "R5P": 0.035155825913785584, "RUBP": 0.11293260727162346, "RU5P": 0.014062330254191594, "atp": 1.4612747767895344, "fd_ox": 3.715702384326767, "protons_lumen": 0.002086128887296243, "lhc": 0.7805901436176024, "nadph": 0.5578718406315588, "pc_ox": 1.8083642974980014, "pq_ox": 10.251099271612473, "psbs_de": 0.9667381262477079, "vx": 0.9629870646993118, "MDA": 2.0353396709300447e-7, "H2O2": 1.2034405327140102e-7, "DHA": 1.0296456279861962e-11, "GSSG": 4.99986167652437e-12, "tr_ox": 0.9334426859846461, "E_inactive": 3.6023635680406634}
    
preview

Generated LaTeX Code

\begin{align*}
      \frac{d 3PGA}{dt} &= 2 \cdot \frac{CO2 (dissolved) \cdot RUBP \cdot vmax\_rubisco\_carboxylase}{(CO2 (dissolved) + km\_rubisco\_carboxylase\_CO2 (dissolved)) \cdot (RUBP + km\_rubisco\_carboxylase\_RUBP \cdot (1 + \frac{FBP}{ki\_rubisco\_carboxylase\_FBP} + \frac{SBP}{ki\_rubisco\_carboxylase\_SBP} + \frac{3PGA}{ki\_rubisco\_carboxylase\_3PGA} + \frac{nadph}{ki\_rubisco\_carboxylase\_nadph} + \frac{pi}{ki\_rubisco\_carboxylase\_pi}))} \\
  & - kre\_phosphoglycerate\_kinase \cdot (3PGA \cdot atp - \frac{BPGA \cdot adp}{keq\_phosphoglycerate\_kinase}) \\
  & - \frac{3PGA \cdot vmax\_ex\_pga}{N\_translocator \cdot km\_ex\_pga}\\ 
\frac{d BPGA}{dt} &= kre\_phosphoglycerate\_kinase \cdot (3PGA \cdot atp - \frac{BPGA \cdot adp}{keq\_phosphoglycerate\_kinase}) \\
  & - kre\_gadph \cdot (BPGA \cdot nadph \cdot protons - \frac{GAP \cdot nadp \cdot pi}{keq\_gadph})\\ 
\frac{d GAP}{dt} &= kre\_gadph \cdot (BPGA \cdot nadph \cdot protons - \frac{GAP \cdot nadp \cdot pi}{keq\_gadph}) \\
  & - kre\_triose\_phosphate\_isomerase \cdot (GAP - \frac{DHAP}{keq\_triose\_phosphate\_isomerase}) \\
  & - kre\_aldolase\_dhap\_gap \cdot (DHAP \cdot GAP - \frac{FBP}{keq\_aldolase\_dhap\_gap}) \\
  & - kre\_transketolase\_gap\_f6p \cdot (F6P \cdot GAP - \frac{E4P \cdot X5P}{keq\_transketolase\_gap\_f6p}) \\
  & - kre\_transketolase\_gap\_s7p \cdot (GAP \cdot S7P - \frac{R5P \cdot X5P}{keq\_transketolase\_gap\_s7p}) \\
  & - \frac{GAP \cdot vmax\_ex\_pga}{N\_translocator \cdot km\_ex\_gap}\\ 
\frac{d DHAP}{dt} &= kre\_triose\_phosphate\_isomerase \cdot (GAP - \frac{DHAP}{keq\_triose\_phosphate\_isomerase}) \\
  & - kre\_aldolase\_dhap\_gap \cdot (DHAP \cdot GAP - \frac{FBP}{keq\_aldolase\_dhap\_gap}) \\
  & - kre\_aldolase\_dhap\_e4p \cdot (DHAP \cdot E4P - \frac{SBP}{keq\_aldolase\_dhap\_e4p}) \\
  & - \frac{DHAP \cdot vmax\_ex\_pga}{N\_translocator \cdot km\_ex\_dhap}\\ 
\frac{d FBP}{dt} &= kre\_aldolase\_dhap\_gap \cdot (DHAP \cdot GAP - \frac{FBP}{keq\_aldolase\_dhap\_gap}) \\
  & - \frac{FBP \cdot vmax\_fbpase}{FBP + km\_fbpase\_s \cdot (1 + \frac{F6P}{ki\_fbpase\_F6P} + \frac{pi}{ki\_fbpase\_pi})}\\ 
\frac{d F6P}{dt} &= \frac{FBP \cdot vmax\_fbpase}{FBP + km\_fbpase\_s \cdot (1 + \frac{F6P}{ki\_fbpase\_F6P} + \frac{pi}{ki\_fbpase\_pi})} \\
  & - kre\_transketolase\_gap\_f6p \cdot (F6P \cdot GAP - \frac{E4P \cdot X5P}{keq\_transketolase\_gap\_f6p}) \\
  & - kre\_g6pi \cdot (F6P - \frac{G6P}{keq\_g6pi})\\ 
\frac{d G6P}{dt} &= kre\_g6pi \cdot (F6P - \frac{G6P}{keq\_g6pi}) \\
  & - kre\_phosphoglucomutase \cdot (G6P - \frac{G1P}{keq\_phosphoglucomutase})\\ 
\frac{d G1P}{dt} &= kre\_phosphoglucomutase \cdot (G6P - \frac{G1P}{keq\_phosphoglucomutase}) \\
  & - \frac{G1P \cdot atp \cdot vmax\_ex\_g1p}{(G1P + km\_ex\_g1p\_G1P) \cdot ((1 + \frac{adp}{ki\_ex\_g1p}) \cdot (atp + km\_ex\_g1p\_atp) + \frac{km\_ex\_g1p\_atp \cdot pi}{F6P \cdot ki\_ex\_g1p\_F6P + FBP \cdot ki\_ex\_g1p\_FBP + 3PGA \cdot ki\_ex\_g1p\_3PGA})}\\ 
\frac{d SBP}{dt} &= kre\_aldolase\_dhap\_e4p \cdot (DHAP \cdot E4P - \frac{SBP}{keq\_aldolase\_dhap\_e4p}) \\
  & - \frac{SBP \cdot vmax\_SBPase}{SBP + km\_SBPase\_s \cdot (1 + \frac{pi}{ki\_SBPase\_pi})}\\ 
\frac{d S7P}{dt} &= - kre\_transketolase\_gap\_s7p \cdot (GAP \cdot S7P - \frac{R5P \cdot X5P}{keq\_transketolase\_gap\_s7p}) \\
  & + \frac{SBP \cdot vmax\_SBPase}{SBP + km\_SBPase\_s \cdot (1 + \frac{pi}{ki\_SBPase\_pi})}\\ 
\frac{d E4P}{dt} &= - kre\_aldolase\_dhap\_e4p \cdot (DHAP \cdot E4P - \frac{SBP}{keq\_aldolase\_dhap\_e4p}) \\
  & + kre\_transketolase\_gap\_f6p \cdot (F6P \cdot GAP - \frac{E4P \cdot X5P}{keq\_transketolase\_gap\_f6p})\\ 
\frac{d X5P}{dt} &= kre\_transketolase\_gap\_f6p \cdot (F6P \cdot GAP - \frac{E4P \cdot X5P}{keq\_transketolase\_gap\_f6p}) \\
  & + kre\_transketolase\_gap\_s7p \cdot (GAP \cdot S7P - \frac{R5P \cdot X5P}{keq\_transketolase\_gap\_s7p}) \\
  & - kre\_ribulose\_phosphate\_epimerase \cdot (X5P - \frac{RU5P}{keq\_ribulose\_phosphate\_epimerase})\\ 
\frac{d R5P}{dt} &= kre\_transketolase\_gap\_s7p \cdot (GAP \cdot S7P - \frac{R5P \cdot X5P}{keq\_transketolase\_gap\_s7p}) \\
  & - kre\_ribose\_phosphate\_isomerase \cdot (R5P - \frac{RU5P}{keq\_ribose\_phosphate\_isomerase})\\ 
\frac{d RUBP}{dt} &= - \frac{CO2 (dissolved) \cdot RUBP \cdot vmax\_rubisco\_carboxylase}{(CO2 (dissolved) + km\_rubisco\_carboxylase\_CO2 (dissolved)) \cdot (RUBP + km\_rubisco\_carboxylase\_RUBP \cdot (1 + \frac{FBP}{ki\_rubisco\_carboxylase\_FBP} + \frac{SBP}{ki\_rubisco\_carboxylase\_SBP} + \frac{3PGA}{ki\_rubisco\_carboxylase\_3PGA} + \frac{nadph}{ki\_rubisco\_carboxylase\_nadph} + \frac{pi}{ki\_rubisco\_carboxylase\_pi}))} \\
  & + \frac{RU5P \cdot atp \cdot vmax\_phosphoribulokinase}{(RU5P + km\_phosphoribulokinase\_RU5P \cdot (1 + \frac{RUBP}{ki\_phosphoribulokinase\_RUBP} + \frac{3PGA}{ki\_phosphoribulokinase\_3PGA} + \frac{pi}{ki\_phosphoribulokinase\_pi})) \cdot (atp \cdot (1 + \frac{adp}{ki\_phosphoribulokinase\_4}) + km\_phosphoribulokinase\_atp \cdot (1 + \frac{adp}{ki\_phosphoribulokinase\_5}))}\\ 
\frac{d RU5P}{dt} &= kre\_ribose\_phosphate\_isomerase \cdot (R5P - \frac{RU5P}{keq\_ribose\_phosphate\_isomerase}) \\
  & + kre\_ribulose\_phosphate\_epimerase \cdot (X5P - \frac{RU5P}{keq\_ribulose\_phosphate\_epimerase}) \\
  & - \frac{RU5P \cdot atp \cdot vmax\_phosphoribulokinase}{(RU5P + km\_phosphoribulokinase\_RU5P \cdot (1 + \frac{RUBP}{ki\_phosphoribulokinase\_RUBP} + \frac{3PGA}{ki\_phosphoribulokinase\_3PGA} + \frac{pi}{ki\_phosphoribulokinase\_pi})) \cdot (atp \cdot (1 + \frac{adp}{ki\_phosphoribulokinase\_4}) + km\_phosphoribulokinase\_atp \cdot (1 + \frac{adp}{ki\_phosphoribulokinase\_5}))}\\ 
\frac{d atp}{dt} &= convf \cdot kf\_atp\_synthase \cdot (\frac{adp}{convf} - \frac{atp}{convf \cdot keq\_atp\_synthase}) \\
  & - kre\_phosphoglycerate\_kinase \cdot (3PGA \cdot atp - \frac{BPGA \cdot adp}{keq\_phosphoglycerate\_kinase}) \\
  & - \frac{RU5P \cdot atp \cdot vmax\_phosphoribulokinase}{(RU5P + km\_phosphoribulokinase\_RU5P \cdot (1 + \frac{RUBP}{ki\_phosphoribulokinase\_RUBP} + \frac{3PGA}{ki\_phosphoribulokinase\_3PGA} + \frac{pi}{ki\_phosphoribulokinase\_pi})) \cdot (atp \cdot (1 + \frac{adp}{ki\_phosphoribulokinase\_4}) + km\_phosphoribulokinase\_atp \cdot (1 + \frac{adp}{ki\_phosphoribulokinase\_5}))} \\
  & - \frac{G1P \cdot atp \cdot vmax\_ex\_g1p}{(G1P + km\_ex\_g1p\_G1P) \cdot ((1 + \frac{adp}{ki\_ex\_g1p}) \cdot (atp + km\_ex\_g1p\_atp) + \frac{km\_ex\_g1p\_atp \cdot pi}{F6P \cdot ki\_ex\_g1p\_F6P + FBP \cdot ki\_ex\_g1p\_FBP + 3PGA \cdot ki\_ex\_g1p\_3PGA})} \\
  & - atp \cdot kf\_ex\_atp\\ 
\frac{d fd\_ox}{dt} &= fd\_red \cdot kf\_ferredoxin\_thioredoxin\_reductase \cdot tr\_ox \\
  & + 2 \cdot kf\_cyclic\_electron\_flow \cdot pq\_ox \cdot {fd\_red}^{2} \\
  & + 2 \cdot \frac{vmax\_fnr \cdot (\frac{nadp \cdot {\frac{fd\_red}{km\_fnr\_fd\_red}}^{2}}{convf \cdot km\_fnr\_nadp} - \frac{nadph \cdot {\frac{fd\_ox}{km\_fnr\_fd\_red}}^{2}}{convf \cdot keq\_fnr \cdot km\_fnr\_nadp})}{-1 + (1 + \frac{nadp}{convf \cdot km\_fnr\_nadp}) \cdot (1 + {\frac{fd\_red}{km\_fnr\_fd\_red}}^{2} + \frac{fd\_red}{km\_fnr\_fd\_red}) + (1 + \frac{nadph}{convf \cdot km\_fnr\_nadp}) \cdot (1 + {\frac{fd\_ox}{km\_fnr\_fd\_red}}^{2} + \frac{fd\_ox}{km\_fnr\_fd\_red})} \\
  & - ps1states \cdot fd\_ox \cdot vmax\_ferredoxin\_reductase - \frac{ps1states \cdot fd\_red \cdot vmax\_ferredoxin\_reductase}{keq\_ferredoxin\_reductase}\\ 
\frac{d protons\_lumen}{dt} &= - \frac{HPR}{bH} \cdot kf\_atp\_synthase \cdot (\frac{adp}{convf} - \frac{atp}{convf \cdot keq\_atp\_synthase}) \\
  & + \frac{4}{bH} \cdot \max(- kcat\_b6f, kcat\_b6f \cdot (pq\_red \cdot {pc\_ox}^{2} - \frac{pq\_ox \cdot {pc\_red}^{2}}{keq\_b6f})) \\
  & + \frac{2}{bH} \cdot 0.5 \cdot ps2states \cdot k2 \\
  & - \frac{1}{bH} \cdot kf\_proton\_leak \cdot (protons\_lumen - 4000 \cdot {10}^{- pH})\\ 
\frac{d lhc}{dt} &= - \frac{1 \cdot kStt7 \cdot lhc}{1 + {\frac{pq\_ox}{PQ\_tot \cdot km\_lhc\_state\_transition\_12}}^{n\_ST}} \\
  & + kPph1 \cdot lhc\_prot\\ 
\frac{d nadph}{dt} &= convf \cdot \frac{vmax\_fnr \cdot (\frac{nadp \cdot {\frac{fd\_red}{km\_fnr\_fd\_red}}^{2}}{convf \cdot km\_fnr\_nadp} - \frac{nadph \cdot {\frac{fd\_ox}{km\_fnr\_fd\_red}}^{2}}{convf \cdot keq\_fnr \cdot km\_fnr\_nadp})}{-1 + (1 + \frac{nadp}{convf \cdot km\_fnr\_nadp}) \cdot (1 + {\frac{fd\_red}{km\_fnr\_fd\_red}}^{2} + \frac{fd\_red}{km\_fnr\_fd\_red}) + (1 + \frac{nadph}{convf \cdot km\_fnr\_nadp}) \cdot (1 + {\frac{fd\_ox}{km\_fnr\_fd\_red}}^{2} + \frac{fd\_ox}{km\_fnr\_fd\_red})} \\
  & - kre\_gadph \cdot (BPGA \cdot nadph \cdot protons - \frac{GAP \cdot nadp \cdot pi}{keq\_gadph}) \\
  & - \frac{MDA \cdot nadph \cdot vmax\_mda\_reductase\_2}{MDA \cdot km\_mda\_reductase\_2\_nadph + MDA \cdot nadph + km\_mda\_reductase\_2\_MDA \cdot km\_mda\_reductase\_2\_nadph + km\_mda\_reductase\_2\_MDA \cdot nadph} \\
  & - \frac{GSSG \cdot nadph \cdot vmax\_glutathion\_reductase}{GSSG \cdot km\_glutathion\_reductase\_nadph + GSSG \cdot nadph + km\_glutathion\_reductase\_GSSG \cdot km\_glutathion\_reductase\_nadph + km\_glutathion\_reductase\_GSSG \cdot nadph} \\
  & - kf\_ex\_nadph \cdot nadph\\ 
\frac{d pc\_ox}{dt} &= - 2 \cdot \max(- kcat\_b6f, kcat\_b6f \cdot (pq\_red \cdot {pc\_ox}^{2} - \frac{pq\_ox \cdot {pc\_red}^{2}}{keq\_b6f})) \\
  & + ps1states \cdot PPFD \cdot (1 - PSII\_cross\_section)\\ 
\frac{d pq\_ox}{dt} &= \max(- kcat\_b6f, kcat\_b6f \cdot (pq\_red \cdot {pc\_ox}^{2} - \frac{pq\_ox \cdot {pc\_red}^{2}}{keq\_b6f})) \\
  & - kf\_cyclic\_electron\_flow \cdot pq\_ox \cdot {fd\_red}^{2} \\
  & - kf\_ndh \cdot pq\_ox - 0.5 \cdot ps2states \cdot k2 \\
  & + O2\_lumen \cdot kPTOX \cdot pq\_red\\ 
\frac{d psbs\_de}{dt} &= - \frac{kf\_lhc\_protonation \cdot psbs\_de \cdot {protons\_lumen}^{kh\_lhc\_protonation}}{{protons\_lumen}^{kh\_lhc\_protonation} + {4000 \cdot {10}^{- ksat\_lhc\_protonation}}^{kh\_lhc\_protonation}} \\
  & + kf\_lhc\_deprotonation \cdot psbs\_pr\\ 
\frac{d vx}{dt} &= - \frac{kf\_violaxanthin\_deepoxidase \cdot vx \cdot {protons\_lumen}^{kh\_violaxanthin\_deepoxidase}}{{protons\_lumen}^{kh\_violaxanthin\_deepoxidase} + {4000 \cdot {10}^{- ksat\_violaxanthin\_deepoxidase}}^{kh\_violaxanthin\_deepoxidase}} \\
  & + kf\_zeaxanthin\_epoxidase \cdot zx\\ 
\frac{d MDA}{dt} &= - 2 \cdot kf\_mda\_reductase\_1 \cdot {MDA}^{2} \\
  & - 2 \cdot \frac{MDA \cdot nadph \cdot vmax\_mda\_reductase\_2}{MDA \cdot km\_mda\_reductase\_2\_nadph + MDA \cdot nadph + km\_mda\_reductase\_2\_MDA \cdot km\_mda\_reductase\_2\_nadph + km\_mda\_reductase\_2\_MDA \cdot nadph} \\
  & + 2 \cdot \frac{H2O2 \cdot XT \cdot ascorbate}{\frac{H2O2}{kf2} + \frac{H2O2}{kf4} + \frac{ascorbate}{kf1} + H2O2 \cdot ascorbate \cdot (\frac{1}{kf3} + \frac{1}{kf5}) + \frac{kr1}{kf1 \cdot kf2} + \frac{H2O2 \cdot kr2}{kf2 \cdot kf3} + \frac{H2O2 \cdot kr4}{kf4 \cdot kf5} + \frac{kr1 \cdot kr2}{kf1 \cdot kf2 \cdot kf3}}\\ 
\frac{d H2O2}{dt} &= convf \cdot ps1states \cdot O2\_lumen \cdot kMehler \\
  & - \frac{H2O2 \cdot XT \cdot ascorbate}{\frac{H2O2}{kf2} + \frac{H2O2}{kf4} + \frac{ascorbate}{kf1} + H2O2 \cdot ascorbate \cdot (\frac{1}{kf3} + \frac{1}{kf5}) + \frac{kr1}{kf1 \cdot kf2} + \frac{H2O2 \cdot kr2}{kf2 \cdot kf3} + \frac{H2O2 \cdot kr4}{kf4 \cdot kf5} + \frac{kr1 \cdot kr2}{kf1 \cdot kf2 \cdot kf3}}\\ 
\frac{d DHA}{dt} &= kf\_mda\_reductase\_1 \cdot {MDA}^{2} \\
  & - \frac{DHA \cdot GSH \cdot vmax\_dehydroascorbate\_reductase}{K + DHA \cdot GSH + DHA \cdot km\_dehydroascorbate\_reductase\_GSH + GSH \cdot km\_dehydroascorbate\_reductase\_DHA}\\ 
\frac{d GSSG}{dt} &= - \frac{GSSG \cdot nadph \cdot vmax\_glutathion\_reductase}{GSSG \cdot km\_glutathion\_reductase\_nadph + GSSG \cdot nadph + km\_glutathion\_reductase\_GSSG \cdot km\_glutathion\_reductase\_nadph + km\_glutathion\_reductase\_GSSG \cdot nadph} \\
  & + \frac{DHA \cdot GSH \cdot vmax\_dehydroascorbate\_reductase}{K + DHA \cdot GSH + DHA \cdot km\_dehydroascorbate\_reductase\_GSH + GSH \cdot km\_dehydroascorbate\_reductase\_DHA}\\ 
\frac{d tr\_ox}{dt} &= - fd\_red \cdot kf\_ferredoxin\_thioredoxin\_reductase \cdot tr\_ox \\
  & + 5 \cdot E\_inactive \cdot kf\_tr\_activation \cdot tr\_red\\ 
\frac{d E\_inactive}{dt} &= - 5 \cdot E\_inactive \cdot kf\_tr\_activation \cdot tr\_red \\
  & + 5 \cdot E\_active \cdot kf\_tr\_inactivation
    \end{align*}

Edit analysis

Plot options

Variable selection
Show Normalize

Edit PAM analysis

Protocol phases

Group 1 — repeat
×
PFD Duration (s) Label
Group 2 — repeat
×
PFD Duration (s) Label
Group 3 — repeat
×
PFD Duration (s) Label
Variable selection
Show Normalize