Models¶
import plot_
from mxlpy import Assimulo, Simulator, plot, unwrap
from mxlbricks import (
get_matuszynska2016npq,
get_matuszynska2019,
get_poolman2000,
get_saadat2021,
get_yokota1985,
)
Yokota 1985¶
Original article: Refixation of Photorespired CO2 during Photosynthesis in Euglena gracilis z
by Akiho Yokota , Hiroshi Komura , Shozaburo Kitaoka
model = get_yokota1985()
res = unwrap(Simulator(model).simulate(100).get_result())
fig, ax = plot.lines(res.get_variables(), xlabel="Time / h", ylabel="Conc / (mmol / L)")
ax.legend(loc="upper left", bbox_to_anchor=(1, 1), ncols=1)
plot.show()
Poolman 2000¶
Original article: Modelling photosynthesis and its control
by Mark G. Poolman , David A. Fell , Simon Thomas
model = get_poolman2000()
res = unwrap(Simulator(model, integrator=Assimulo).simulate(100).get_result())
fig, ax = plot.lines(
res.get_variables(),
xlabel="Time / s",
ylabel="Conc / (mmol / L)",
)
ax.legend(loc="upper left", bbox_to_anchor=(1, 1), ncols=1)
plot.show()
Matuszyńska 2016 (NPQ)¶
The Matuszynska2016 model, a small kinetic model, was developed to delve deeper into the effect of light memory caused by non-photochemical quenching. The systematic investigation of the Xanthophyll cycle, a combination of the pigments of violaxanthin, antheraxanthin, and zeaxanthin, sparked a series of experiments to determine whether plant light memory can be detected in a time-scale of minutes to hours through pulse amplitude modulated chlorophyll fluorescence. The model was then created based on these experimental results, providing a comprehensive description of NPQ dynamics and the short-term memory of the Arabidopsis thaliana plant.
To keep the model as simple as possible, several processes not directly linked to NPQ have been simplified to create a dynamic ODE system consisting only of 6 different compounds. With these simplifications, the authors could fulfil an additional goal: to make a general framework that is not specific to one model organism.
To demonstrate the adaptability of their model, the authors took their calibrated Arabidopsis thaliana model and successfully applied it to the non-model organism Epipremnum aureum. This adaptation allowed them to simulate realistic fluorescence measurements and replicate all the key features of chlorophyll induction, showcasing the model's versatility and potential for use in a variety of organisms.
model = get_matuszynska2016npq()
res = unwrap(Simulator(model, integrator=Assimulo).simulate(100).get_result())
fig, ax = plot.line_autogrouped(
res.get_variables(include_derived_variables=False),
xlabel="Time / s",
ylabel="Conc / (mmol / L)",
n_cols=3,
)
plot.show()
Matuszyńska 2019¶
Original article: Balancing energy supply during photosynthesis – a theoretical perspective
by Anna Matuszyńska, Nima P. Saadat, Oliver Ebenhöh
The photosynthetic electron transport chain (PETC) provides energy and redox equivalents for carbon fixation by the Calvin-Benson-Bassham (CBB) cycle. Both of these processes have been thoroughly investigated and the underlying molecular mechanisms are well known. However, it is far from understood by which mechanisms it is ensured that energy and redox supply by photosynthesis matches the demand of the downstream processes. Here, we deliver a theoretical analysis to quantitatively study the supply–demand regulation in photosynthesis. For this, we connect two previously developed models, one describing the PETC, originally developed to study non-photochemical quenching, and one providing a dynamic description of the photosynthetic carbon fixation in C3 plants, the CBB Cycle. The merged model explains how a tight regulation of supply and demand reactions leads to efficient carbon fixation. The model further illustrates that a stand-by mode is necessary in the dark to ensure that the carbon fixation cycle can be restarted after dark–light transitions, and it supports hypotheses, which reactions are responsible to generate such mode in vivo.
model = get_matuszynska2019()
res = unwrap(Simulator(model, integrator=Assimulo).simulate(100).get_result())
fig, ax = plot_.line_autogrouped(
res.get_variables(include_derived_variables=False),
xlabel="Time / s",
ylabel="Conc / (mmol / L)",
n_cols=3,
min_group_size=2,
)
plot.show()
Saadat 2021¶
Original article: Computational Analysis of Alternative Photosynthetic Electron Flows Linked With Oxidative Stress
by Nima P. Saadat, Tim Nies, Marvin van Aalst, Brandon Hank, Büsra Demirtas, Oliver Ebenhöh, Anna Matuszyńska
During photosynthesis, organisms respond to their energy demand and ensure the supply of energy and redox equivalents that sustain metabolism. Hence, the photosynthetic apparatus can, and in fact should, be treated as an integrated supply-demand system. Any imbalance in the energy produced and consumed can lead to adverse reactions, such as the production of reactive oxygen species (ROS). Reaction centres of both photosystems are known sites of ROS production. Here, we investigate in particular the central role of Photosystem I (PSI) in this tightly regulated system. Using a computational approach we have expanded a previously published mechanistic model of C3 photosynthesis by including ROS producing and scavenging reactions around PSI. These include two water to water reactions mediated by Plastid terminal oxidase (PTOX) and Mehler and the ascorbate-glutathione (ASC-GSH) cycle, as a main non-enzymatic antioxidant. We have used this model to predict flux distributions through alternative electron pathways under various environmental stress conditions by systematically varying light intensity and enzymatic activity of key reactions. In particular, we studied the link between ROS formation and activation of pathways around PSI as potential scavenging mechanisms. This work shines light on the role of alternative electron pathways in photosynthetic acclimation and investigates the effect of environmental perturbations on PSI activity in the context of metabolic productivity.
model = get_saadat2021()
res = unwrap(Simulator(model, integrator=Assimulo).simulate(100).get_result())
fig, ax = plot_.line_autogrouped(
res.get_variables(include_derived_variables=False),
xlabel="Time / s",
ylabel="Conc / (mmol / L)",
n_cols=3,
min_group_size=4,
max_group_size=9,
)
plot.show()