Package: biocatalyzer
BioCatalyzerBioCatalyzer is a python tool that predicts enzymatic metabolism products using a rule-based approach.BioCatalyzer is implemented as a Command Line Interface that takes as input a set of compounds represented as SMILES
strings and outputs a set of predicted metabolic products and associated enzymes.This metabolic products can then be matched with experimental MS data using this same tool.InstallationInstalling from Pypi package repository:pip install biocatalyzerInstalling from GitHub:clone the repository:git clone https://github.com/jcorreia11/BioCatalyzer.gitrun:python setup.py installCommand Line Interfacebiocatalyzer_cli<PATH_TO_COMPOUNDS><OUTPUT_DIRECTORY>[--neutralize=<BOOL>][--reaction_rules=<FILE_PATH>][--organisms=<FILE_PATH>][--patterns_to_remove=<FILE_PATH>][--molecules_to_remove=<FILE_PATH>][--min_atom_count=<INT>][--match_ms_data=<BOOL>][--ms_data_path=<FILE_PATH>][--mode=<STR>][--tolerance=<FLOAT>][--n_jobs=<INT>]ArgumentExampleDescriptionDefaultcompounds <PATH_TO_COMPOUNDS>file.tsvor"smile1;smiles2;smile3;etc"The path to the file containing the compounds to use as reactants. Or ;-separated SMILES strings.1output_directory <OUTPUT_DIRECTORY>output/directory/The path directory to save the results to.neutralizeTrueorFalseWhether to neutralize the compounds before predicting the products. In this case the new products will also be neutralized.Falsereaction_rulesfile.tsvorNoneThe path to the file containing the reaction rules to use.2all_reaction_rules_forward_no_smarts_duplicates_sample.tsvorganismsfile.tsvor"org_id1;org_id2;org_id3;etc"orNoneThe path to the file containing the organisms to use. Or ;-separated organisms identifiers. Reaction Rules will be selected accordingly (select only rules associated with enzymes encoded by genes from this organisms).3All reaction rules are used.patterns_to_removepatterns.tsvorNoneThe path to the file containing the patterns to remove from the products.4patterns.tsvmolecules_to_removemolecules.tsvorNoneThe path to the file containing the molecules to remove from the products.5byproducts.tsvmin_atom_count4The minimum number of heavy atoms a product must have.5match_ms_dataTrueorFalseWhether to match the predicted products to the MS data.Falsems_data_pathms_data.tsvThe path to the file containing the MS data.6Nonemodemassormass_diffThe mode to use when matching the predicted products to the MS data.masstolerance0.02The mass tolerance to use when matching masses.0.02n_jobs6The number of jobs to run in parallel (-1 uses all).1CompoundsSeedrugs.csv1for an example.The file must be tab-separated and contain the following columns:smiles- the SMILES representation of the compounds;compound_id- the compounds identifiers.Alternatively, the compounds can be passed as ;-separated string with the SMILES representations.Output directoryThe output path must be a directory. The results will be saved in the following files:new_compouds.tsv- the predicted products;matches.tsv(ifmatch_ms_datais set toTrue) - the matches between the predicted products and the MS data;NeutralizeIf set toTrue, the compounds will be neutralized before predicting the products. In this case the new products will
also be neutralized.Reaction RulesSeeall_reaction_rules_forward_no_smarts_duplicates_sample.tsv2for an example.The file must be tab-separated and contain the following columns:InternalID- The ID of the Reaction Rule. # TODO: change the name of this columnReactants- The Reactants of the ReactionRule. Coreactants must be defined by their ID as in the Coreactants file.
The compound to match must be identifyed by the string 'Any'. The format must be:coreactant1_id;Any;coreactant_id.
The order in which the reactants and the compound to match are defined is relevant and specific to the Reaction Rule.
If the Reaction Rules are mono-component (i.e. they do not contain any additional coreactant) the format must be:Any.SMARTS- The SMARTS representation of the Reaction Rule.EC_Numbers- The EC Numbers associated with the Reaction Rule.Organisms- The Organisms associated with the Reaction Rule.To use our complete set of Reaction Rules please download the followingfileand provide its path in the--reaction_rulesargument.You can directly use this file by providing the path to it as the value of thereaction_rulesparameter.OrganismsAll organisms' identifiers are defined in:https://www.genome.jp/kegg/catalog/org_list.htmlare allowed.Example:hsais forHomo sapiens(human).ecois forEscherichia coli K-12 MG1655.sceis forSaccharomyces cerevisiae (budding yeast).If you want to use your own organisms seeorganisms.csv3for an example.The file must be tab-separated and contain a column namedorg_idwith the organisms' identifiers (KEGG identifiers).Alternatively, the organisms can be passed as ;-separated string with the organisms identifiers.Patterns to removeIf you want to use your own patterns to remove seepatterns.tsv4for an example.The file must be tab-separated and contain a column namedsmartswith the SMARTS representation of the patterns to remove.Molecules to removeIf you want to use your own molecules to remove seebyproducts.tsv5for an example.The file must be tab-separated and contain a column namedsmileswith the SMILES representation of the molecules to remove.Match MS dataIf set toTrue, the predicted products will be matched to the MS data.In this case thems_data_pathmust be set.MS data pathSeems_data.tsv6for an example.The file must be tab-separated and contain the following columns:ParentCompound- the parent/original compound identifiers.ParentCompoundSmiles- the SMILES representation of the compounds (optional).MassorMassDiff- depending on the selectedmode, the mass or mass difference of the molecule.ModeThe mode to use when matching the predicted products to the MS data.If set tomass, theMasscolumn will be used. This will match the predicted products exact mass to the MS
data provided in theMasscolumn.If set tomass_diff, theMassDiffcolumn will be used. This will match the predicted products mass difference to
the ParentDrug as provided in the MS dataMassDiffcolumn.Mass ToleranceThe mass tolerance (float) to use when matching masses. Masses betweenmass - mass_toleranceandmass + mass_tolerancewill be considered as a match.Number of jobsThe number of jobs to run in parallel. If-1is passed, all available cores will be used.Usage examplebiocatalyzer_clifile.tsvoutput_dir/--neutralize=True--reaction_rules=reaction_rules.tsv--organisms="hsa;eco;sce"--patterns_to_remove=patterns.tsv--molecules_to_remove=byproducts.tsv--match_ms_data=True--ms_data_path=ms_data.tsv--mode=mass--mass_tolerance=0.1--n_jobs=-1For predicting compound metabolism only:biocatalyzer_clifile.tsvoutput_dir/--neutralize=True--reaction_rules=reaction_rules.tsv--organisms="hsa;eco;sce"--patterns_to_remove=patterns.tsv--molecules_to_remove=byproducts.tsv--n_jobs=-1Individual CLIsBoth parts of this CLI (the generation of new compounds (bioreactor_cli) and the matching with the MS data
(matcher_cli)) can be run individually.For thebioreactor_cliseereadme_bioreactor_cli.md.For thematcher_cliseereadme_matcher_cli.md.CiteManuscript under preparation!Credits and LicenseDeveloped at Centre of Biological Engineering, University of Minho and EMBL Heidelberg (Zimmermann-Kogadeeva Group).This project has received funding from the Portuguese FCT and EMBL CPP Scientific Visitors Fellowships.Released under an MIT License.