Source code for padmet_utils.management.padmet_compart

# -*- coding: utf-8 -*-
"""
Description:
    For a given padmet file, check and update compartment.
    
    1./ Get all compartment with 1st usage
    
    2./ Remove a compartment with 2nd usage.
    Remove all reactions acting in the given compartment
    
    3./ change compartment id with 3rd usage

::
    
    usage:
        padmet_compart.py --padmet=FILE
        padmet_compart.py --padmet=FILE --remove=STR [--output=FILE] [-v]
        padmet_compart.py --padmet=FILE --old=STR --new=STR [--output=FILE] [-v]
    
    options:
        -h --help     Show help.
        --padmet=FILE    pathname of the padmet file
        --remove=STR    compartment id to remove
        --old=STR    compartment id to change to new id
        --new=STR    new compartment id
        --output=FILE    new padmet pathname, if none, overwritting the original padmet
        -v   print info
"""
from padmet.classes import PadmetSpec
from padmet.utils.management import padmet_compart
import docopt


[docs]def main(): #parsing args args = docopt.docopt(__doc__) padmet_file = args["--padmet"] old_compart = args["--old"] new_compart = args["--new"] new_padmet = args["--output"] to_remove = args["--remove"] verbose = args["-v"] if new_padmet is None: new_padmet = args["--padmet"] padmet = PadmetSpec(padmet_file) if to_remove: padmet = padmet_compart.remove_compart(padmet, to_remove, verbose = False) padmet.generateFile(new_padmet) elif old_compart and new_compart: padmet = padmet_compart.remplace_compart(padmet, old_compart, new_compart, verbose) padmet.generateFile(new_padmet) else: print("List of compartments:") print(list(padmet.get_all_compart()))
if __name__ == "__main__": main()