EPFL-LCSB / skimpy

Symbolic Kinetic Models with Python
Apache License 2.0
28 stars 13 forks source link

Extension to bioenergetics #6

Closed AQ18 closed 2 years ago

AQ18 commented 2 years ago

I am interested in using SKiMpy to study the interaction of the bioenergetic network (proton pumps, ATPases and associated transporter processes that are powered by the membrane potential/ion motive forces) with the metabolic network. It seems that ion translocation can be represented in this framework by the small molecule modifiers, which I presume automatically accounts for the chemical potentials:

ATPS4rpp:
  enzyme: null
  mechanism:
    class: BiUniReversibleHill
    product: atp_c
    substrate1: pi_c
    substrate2: adp_c
  modifiers:
    DSM_h_c:
      class: DisplacementSmallMoleculeModifier
      mechanism_stoichiometry:
        small_molecule: 3.0
      small_molecule: h_c
    DSM_h_e:
      class: DisplacementSmallMoleculeModifier
      mechanism_stoichiometry:
        small_molecule: -4.0
      small_molecule: h_e
  name: ATPS4rpp

I am wondering if/how the membrane potential is represented as a thermodynamic driver as well as a dynamic variable to be calculated by the model, or if it is not already implemented, whether there is a clear path to doing so.

weilandtd commented 2 years ago

I am wondering if/how the membrane potential is represented as a thermodynamic driver as well as a dynamic variable to be calculated by the model, or if it is not already implemented, whether there is a clear path to doing so.

Membrane potential is currently modeled as the equilibrium constant of this parameters as part as all the ReversibleHill mechanisms are reversible.

Using DisplacementSmallMoleculeModifer will do two things:

So in with the current implementation of the DisplacementSmallMoleculeModifer we basically assume a constant membrane potential (part of the equilibrium constant of this reaction) and we assume that protons only have a thermodynamic contribution the the reaction kinetics. The equilibrium constants in the models that are shown here are calculated from the transformed standard Gibbs-free energy as calculated in thermodynamic based flux analysis models. A description of how these models account for the membrane potential as well as the proton gradient using the transformed Gibbs-Free energy you find the publications below:

Henry, Christopher S., Linda J. Broadbelt, and Vassily Hatzimanikatis. "Thermodynamics-based metabolic flux analysis." Biophysical journal 92.5 (2007): 1792-1805. Salvy, Pierre, et al. "pyTFA and matTFA: a Python package and a Matlab toolbox for Thermodynamics-based Flux Analysis." Bioinformatics 35.1 (2019): 167-169.

Your problem sounds really interesting so incase you will need some more complex modifiers to account to models' the effects of protons and ions on the membrane potential. I would be happy to help you with the implementation of these.

AQ18 commented 2 years ago

Your problem sounds really interesting so incase you will need some more complex modifiers to account to models' the effects of protons and ions on the membrane potential. I would be happy to help you with the implementation of these.

Much appreciated! I think there is potential here for me to use your package with some modifications.

Using DisplacementSmallMoleculeModifer will do two things:

So to confirm, the small molecule concentrations are dynamic too?

So in with the current implementation of the DisplacementSmallMoleculeModifer we basically assume a constant membrane potential (part of the equilibrium constant of this reaction) and we assume that protons only have a thermodynamic contribution the the reaction kinetics. The equilibrium constants in the models that are shown here are calculated from the transformed standard Gibbs-free energy as calculated in thermodynamic based flux analysis models. A description of how these models account for the membrane potential as well as the proton gradient using the transformed Gibbs-Free energy you find the publications below:

Thanks for the references, very interesting work. I had dismissed using FBA before because of the lack of thermodynamic constraints, so it's interesting to see that someone else has already addressed that.

Anyway, the latter assumption about protons is fine, but the constant membrane potential* is too simplified for my purposes. However, if the membrane potential can be made a dynamic quantity that depends on the amounts of charges in the (extra)cellular compartments, I think I could use it.

*Do you mean constant? In the TMFA paper it seems that the membrane potential is actually dependent on the DpH, which if I understood correctly before is NOT constant. If it is already dependent on the DpH, I would naively hope that it is straightforward to make it depend on all the major ion concentrations, e.g. potassium, sodium.

A little more explanation of what I'm actually doing: I'm interested in understanding how different enzymes and ion pumps (e.g. in a respiratory chain) influence and are influenced by the membrane potential, so it's essential that the membrane potential is a dynamically varying quantitiy. A good milestone for me would be to reproduce some of the graphs in this paper, where they find a competition effect between respiration in E. coli and a heterologously expressed proteorhodopsin:

Walter, J. M., Greenfield, D., Bustamante, C., & Liphardt, J. (2007). Light-powering Escherichia coli with proteorhodopsin. Proceedings of the National Academy of Sciences, 104(7), 2408 LP – 2412. https://doi.org/10.1073/pnas.0611035104

weilandtd commented 2 years ago

So to confirm, the small molecule concentrations are dynamic too?

Yes exactly!

*Do you mean constant? In the TMFA paper it seems that the membrane potential is actually dependent on the DpH, which if I understood correctly before is NOT constant. If it is already dependent on the DpH, I would naively hope that it is straightforward to make it depend on all the major ion concentrations, e.g. potassium, sodium.

Yes in the TMFA paper it is calculated as a function of the pH but since TMFA is built under the quasi-steady-state assumption it would be still constant over time.

To make it truly dynamic and dependent on the charges I think it would be good to implement a custom class of reaction modifiers that can account for a custom expression where you can define the expressions yourself. If you want we can meet and I can give you a template for such a class so you can add the needed expressions.

If you are interested just drop me an email: daniel.weilandt@princeton.edu