Skip to content
Snippets Groups Projects
Select Git revision
  • 9b98c8c448dac432a9d9754a372f986619cc4f5a
  • main default protected
2 results

modelpruner

  • Open with
  • Download source code
  • Your workspaces

      A workspace is a virtual sandbox environment for your code in GitLab.

      No agents available to create workspaces. Please consult Workspaces documentation for troubleshooting.

  • user avatar
    Peter Schubert authored
    9b98c8c4
    History

    modelpruner - prune metabolic models coded in (SBML)

    This is a port to Python and improvement of the network reduction MATLAB code (CNAreduceMFNetwork.m) implemented in CellNetAnalyzer [1].

    Making use of functions provided by glpk [2] and sbmlxdf.

    The network reduction method is based on An algorithm for the reduction of genome-scale metabolic network models to meaningful core models [3]. This port does not implement the additional (optional) step of network compression, which converts linear pathways to single reactions and suppresses some biomass metabolites and transport reactions.

    Benefits of this port:

    This is a port of the respective MATLAB code, mainly the functions CNAreduceMFNetwork, CNAcompressMFNetwork, with following enhancements:

    • significant speedup (e.g. network reduction of genome-scale E. coli network 30 h -> 1 h on a laptop)
    • direct interface to SBML coded models (import from SBML / export to SBML)
    • use of open software
    • modifications can be implemented easier in Python compared to MATLAB (fewer people program in MATLAB)
    • SBML identifiers, annotations, gene-product-associations, genes and groups carried over transparently from the full network to the pruned network, making integration with external databases easier
    • protected reactions, metabolites, functions, flux bound overwrites can be provided in an Excel spreadsheet, alternatively as a Python dict

    Speed-up improvements mainly due to faster implementation of flux variability function calls on glpk. Additional speed improvements achieved by continually removing reactions and blocked metabolites during the network reduction process. Essential reactions identified earlier.

    install package:

    $ pip3 install networkred@git+https://gitlab.cs.uni-duesseldorf.de/schubert/modelprune.git

    Small Python example

    import modelpruner
    
    # file names
    full_sbml = 'sample_data/SBML_models/Deniz_model_fba.xml'
    pruned_sbml = 'sample_data/SBML_models/Deniz_model_fba_pruned.xml'
    protected_parts = 'sample_data/data/Deniz_model_fba_nrp.xlsx'
        
    # load the original model
    mp = modelpruner.ModelPruner(full_sbml, protected_parts)
    
    # prune the network
    mp.prune()
     
    # export reduced model to sbml
    mp.write_sbml(pruned_sbml)

    License

    GPLv3

    Peter Schubert, Computational Cell Biology, HHU Duesseldorf, July 2022

    References

    [1] Kamp A, Thiele S, Haedicke O, Klamt S. (2017) Use of CellNetAnalyzer in biotechnology and metabolic engineering. Journal of Biotechnolgy 261: 221-228. https://doi.org/10.1016/j.jbiotec.2017.05.001

    [2] GNU gklp reference #### TO BE UPDATED

    [3] Erdrich P, Steuer R, Klamt S. (2015) An algorithm for the reduction of genome-scale metabolic network models to meaningful core models. BMC Syst Biol 9, 48. https://doi.org/10.1186/s12918-015-0191-x