Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
1 result

README.md

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.

    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