https://github.com/charlesrocabert/metevolsim

MetEvolSim (Metabolome Evolution Simulator). A Python package to simulate the long-term evolution of metabolic levels.

https://github.com/charlesrocabert/metevolsim

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.1%) to scientific vocabulary

Keywords

biochemical-networks copasi evolution metabolic-abundances metabolic-network metabolome sbml simulation systems-biology
Last synced: 5 months ago · JSON representation

Repository

MetEvolSim (Metabolome Evolution Simulator). A Python package to simulate the long-term evolution of metabolic levels.

Basic Info
Statistics
  • Stars: 5
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 30
Topics
biochemical-networks copasi evolution metabolic-abundances metabolic-network metabolome sbml simulation systems-biology
Created over 7 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License

README.md

Metabolome Evolution Simulator

A Python package to simulate the long-term evolution of metabolic levels.

PyPI version  


MetEvolSim (Metabolome Evolution Simulator) is a Python package which provides numerical tools to simulate the long-term evolution of metabolic abundances in kinetic models of metabolic network. To use MetEvolSim, a SBML-formatted metabolic network model is required, along with kinetic parameters and initial metabolic concentrations. Additionally, the model must reach a stable steady-state, which is computed with Copasi software.

MetEvolSim is being developed by Charles Rocabert, Gábor Boross, Orsolya Liska and Balázs Papp.

If you are planning to use MetEvolSim for research or have encountered any issues with the software, do not hesitate to contact Charles Rocabert.

   

Table of contents

Publications

  • O. Liska, G. Boross, C. Rocabert, B. Szappanos, R. Tengölics, B. Papp. Principles of metabolome conservation in animals. Proceedings of the National Academy of Sciences 120 (35), e2302147120 (2023) (https://doi.org/10.1073/pnas.2302147120).

Dependencies

  • Python ≥ 3,
  • Numpy ≥ 1.21 (automatically installed when using pip),
  • Python-libsbml ≥ 5.19 (automatically installed when using pip),
  • NetworkX ≥ 2.6 (automatically installed when using pip),
  • CopasiSE ≥ 4.27 (to be installed separately),
  • pip ≥ 21.3.1 (optional).

Installation

• To install Copasi software, visit http://copasi.org/ and download the command line version CopasiSE.

• To install the latest release of MetEvolSim: shell pip install MetEvolSim

Alternatively, download the latest release in the folder of your choice and unzip it. Then follow the instructions below: ```shell

Navigate to the MetEvolSim folder

cd /path/to/MetEvolSim

Install MetEvolSim Python package

python3 setup.py install ```

First usage

MetEvolSim has been tested with numerous publicly accessible metabolic networks; however, we cannot guarantee that it will be compatible with any model (please refer to the list of tested metabolic models). The package includes the class Model to manipulate SBML models. Additionally, it is necessary to set up an objective function (a list of target reactions and their coefficients) and to provide the path of CopasiSE software. Please note that objective function coefficients are not operational in the current version of MetEvolSim.

```python

Import MetEvolSim package

import metevolsim

Create an objective function

target_fluxes = [['ATPase', 1.0], ['PDC', 1.0]]

Load the SBML metabolic model

model = metevolsim.Model(sbmlfilename='glycolysis.xml', objectivefunction=targetfluxes, copasipath='/Applications/COPASI/CopasiSE')

Print some informations on the metabolic model

print(model.getnumberofspecies()) print(model.getwildtypespecies_value('Glc'))

Get a kinetic parameter at random

param = model.getrandomparameter() print(param)

Mutate this kinetic parameter with a log-scale mutation size 0.01

model.randomparametermutation(param, sigma=0.01)

Compute wild-type and mutant steady-states

model.computewildtypesteadystate() model.computemutantsteady_state()

Run a metabolic control analysis on the wild-type

model.computewildtypemetaboliccontrol_analysis()

This function will output two datasets:

- output/wildtypeMCA_unscaled.txt containing unscaled control coefficients,

- output/wildtypeMCA_scaled.txt containing scaled control coefficients.

Compute all pairwise metabolite shortest paths

model.buildspeciesgraph() model.saveshortestpaths(filename="glycolysisshortestpaths.txt")

Compute a flux drop analysis to measure the contribution of each flux to the fitness

(in this example, each flux is dropped at 1% of its original value)

model.fluxdropanalysis(dropcoefficient=0.01, filename="fluxdrop_analysis.txt", owerwrite=True) ```

MetEvolSim offers two distinct numerical approaches for assessing the evolution of metabolic abundances: - Evolution experiments, based on a Markov Chain Monte Carlo (MCMC) algorithm, Sensitivity analysis, that can either explore every kinetic parameter in a given range and record changes in associated fluxes and metabolic abundances (One-At-a-Time sensitivity analysis) or randomly explore the kinetic parameter space by randomly mutating a single kinetic parameter multiple times (random sensitivity analysis).

All numerical analysis output files are saved in the output subfolder.

Evolution experiments:

Algorithm overview: A. The model of interest is loaded as a wild-type from a SBML file (kinetic equations, kinetic parameter values and initial metabolic concentrations must be specified). B. At each iteration t, a single kinetic parameter is selected at random and mutated through a log10-normal distribution of standard deviation σ. C. The new steady-state is computed using Copasi software, and the MOMA distance z between the mutant and the wild-type target fluxes is computed. D. If z is under a given selection threshold ω, the mutation is accepted. Else, the mutation is discarded. E. A new iteration t+1 is computed.


There are six types of selection available:

  • MUTATION_ACCUMULATION: Run a mutation accumulation experiment by accepting all new mutations without any selection threshold,
  • ABSOLUTEMETABOLICSUM_SELECTION: Run an evolution experiment by applying a stabilizing selection on the sum of absolute metabolic abundances,
  • ABSOLUTETARGETFLUXES_SELECTION: Run an evolution experiment by applying a stabilizing selection on the MOMA distance of absolute target fluxes,
  • RELATIVETARGETFLUXES_SELECTION: Run an evolution experiment by applying a stabilizing selection on the MOMA distance of relative target fluxes.

```python

Load a Markov Chain Monte Carlo (MCMC) instance

mcmc = metevolsim.MCMC(sbmlfilename='glycolysis.xml', objectivefunction=targetfluxes, totaliterations=10000, sigma=0.01, selectionscheme="MUTATIONACCUMULATION", selectionthreshold=1e-4, copasipath='/Applications/COPASI/CopasiSE')

Initialize the MCMC instance

mcmc.initialize()

Compute the successive iterations and write output files

stopMCMC = False while not stopMCMC: stopmcmc = mcmc.iterate() mcmc.writeoutputfile() mcmc.writestatistics() ```

One-At-a-Time (OAT) sensitivity analysis:

For each kinetic parameter p, each metabolic abundance [Xi] and each flux νj, the algorithm numerically computes relative derivatives and control coefficients.

```python

Load a sensitivity analysis instance

sa = metevolsim.SensitivityAnalysis(sbmlfilename='glycolysis.xml', copasipath='/Applications/COPASI/CopasiSE')

Run the full OAT sensitivity analysis

sa.runOATanalysis(factorrange=1.0, factorstep=0.01) ```

Random sensitivity analysis:

At each iteration, a single kinetic parameter p is mutated at random in a log10-normal distribution of size σ, and relative derivatives and control coefficients are computed.

```python

Load a sensitivity analysis instance

sa = metevolsim.SensitivityAnalysis(sbmlfilename='glycolysis.xml', copasipath='/Applications/COPASI/CopasiSE')

Run the full OAT sensitivity analysis

sa.runrandomanalysis(sigma=0.01, nb_iterations=1000) ```

Help

To get assistance with a MetEvolSim class or method, use the Python help function: python help(metevolsim.Model.set_species_initial_value) To get a brief overview and a list of parameters and outputs: ``` Help on function setspeciesinitial_value in module metevolsim:

setspeciesinitialvalue(self, speciesid, value) Set the initial concentration of the species 'species_id' in the mutant model.

Parameters
----------
species_id: str
        Species identifier (as defined in the SBML model).
value: float >= 0.0
        Species abundance.

Returns
-------
None

(END) ```

Ready-to-use examples

Ready-to-use examples come pre-packaged with MetEvolSim package. They can also be downloaded here: https://github.com/charlesrocabert/MetEvolSim/raw/master/example/example.zip.

List of tested metabolic models

| Reference | Model | Running with MetEvolSim | |-------------------------|--------------------------------------|-----------------------------| | Bakker et al. (1997) | Trypanosoma brucei glycolysis | :x: | | Curto et al. (1998) | Human purine metabolism | :x: | | Mulquiney et al. (1999) | Human erythrocyte | :whitecheckmark: | | Jamshidi et al. (2001) | Red blood cell | :x: | | Bali et al. (2001) | Red blood cell glycolysis | :whitecheckmark: | | Lambeth et al. (2002) | Skeletal muscle glycogenolysis | :whitecheckmark: | | Holzhutter et al. (2004)| Human erythrocyte | :whitecheckmark: | | Beard et al. (2005) | Mitochondrial respiration | :x: | | Banaji et al. (2005) | Cerebral blood flood control | :whitecheckmark: | | Bertram et al. (2006) | Mitochondrial ATP production | :x: | | Bruck et al. (2008) | Yeast glycolysis | :whitecheckmark: | | Reed et al. (2008) | Glutathione metabolism | :x: | | Curien et al. (2009) | Aspartame metabolism | :x: | | Jerby et al. (2010) | Human liver metabolism | :x: | | Li et al. (2010) | Yeast glycolysis | :x: | | Bekaert et al. (2010) | Mouse metabolism reconstruction | :x: | | Bordbar et al. (2011) | Human multi-tissues | :x: | | Koenig et al. (2012) | Hepatocyte glucose metabolism | :whitecheckmark: | | Messiha et al. (2013) | Yeast glycolysis + pentose phosphate | :whitecheckmark: | | Mitchell et al. (2013) | Liver iron metabolism | :x: | | Stanford et al. (2013) | Yeast whole cell model | :x: | | Bordbar et al. (2015) | Red blood cell | :x: | | Costa et al. (2016) | E. coli core metabolism | :whitecheckmark: | | Millard et al. (2016) | E. coli core metabolism | :whitecheckmark: | | Bulik et al. (2016) | Hepatic glucose metabolism | :whitecheckmark: |

Copyright

Copyright © 2018-2024 Charles Rocabert, Gábor Boross, Orsolya Liska and Balázs Papp. All rights reserved.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Owner

  • Name: Charles Rocabert
  • Login: charlesrocabert
  • Kind: user
  • Location: Düsseldorf, Germany
  • Company: Faculty of Mathematics and Natural Science - HHU Düsseldorf

Computational and Evolutionary Biologist. Exploring the evolution of complex organisms - Research associate at HHU Düsseldorf

GitHub Events

Total
Last Year

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 162
  • Total Committers: 1
  • Avg Commits per committer: 162.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 9
  • Committers: 1
  • Avg Commits per committer: 9.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Charles Rocabert c****t@g****m 162

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 120 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 29
  • Total maintainers: 1
pypi.org: metevolsim

MetEvolSim (Metabolome Evolution Simulator) Python Package

  • Versions: 29
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 120 Last month
Rankings
Dependent packages count: 10.1%
Downloads: 16.6%
Average: 20.6%
Dependent repos count: 21.6%
Stargazers count: 25.0%
Forks count: 29.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

setup.py pypi
  • python-libsbml *
.github/workflows/pythonpublish.yml actions
  • actions/checkout v1 composite
  • actions/setup-python v1 composite