{ "info": { "author": "A. Belcour", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": ".. image:: https://img.shields.io/pypi/v/pathmodel.svg\n\t:target: https://pypi.python.org/pypi/pathmodel\n\n.. image:: https://github.com/pathmodel/pathmodel/workflows/Python%20package/badge.svg\n :target: https://github.com/pathmodel/pathmodel/actions\n\n.. image:: https://www.singularity-hub.org/static/img/hosted-singularity--hub-%23e32929.svg\n :target: https://singularity-hub.org/collections/3758\n\n.. image:: https://img.shields.io/docker/cloud/build/pathmodel/pathmodel\n :target: https://hub.docker.com/r/pathmodel/pathmodel\n\n.. image:: https://img.shields.io/badge/doi-10.1016/j.isci.2020.100849-blueviolet.svg\n :target: https://www.cell.com/iscience/fulltext/S2589-0042(20)30032-8\n\n\nPathModel: inferring new biochemical reactions and metabolite structures to understand metabolic pathway drift \n==============================================================================================================\n\nPathModel is a prototype to infer new biochemical reactions and new metabolite structures. The biological motivation for developing it is described in this `article `__, published in `iScience `__. You can also watch the `associated presentation `__ at the `JOBIM2020 conference `__.\n\nThere is no guarantee that this script will work, it is a Work In Progress in early state.\n\n.. contents:: Table of contents\n :backlinks: top\n :local:\n\n\nDescription\n-----------\n\nMetabolic Pathway Drift Hypothesis\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nMetabolic Pathway Drift hypothesizes that metabolic pathways can be conserved even if their biochemical reactions undergo variations. These variations can be non-orthologous displacement of genes or changes in enzyme order.\n\n.. table::\n :align: center\n :widths: auto\n\n +--------------------------------------------------+\n | .. figure:: images/metabolic_pathway_drift_1.jpg |\n | |\n | .. |\n | |\n | Metabolic Pathway Drift Hypothesis |\n +--------------------------------------------------+\n\nTo test the hypothesis on the enzyme order drift, we develop PathModel to infer possible enzyme order changes in metabolic pathways.\n\n.. table::\n :align: center\n :widths: auto\n\n +--------------------------------------------------+\n | .. figure:: images/metabolic_pathway_drift_2.jpg |\n | |\n | .. |\n | |\n | Metabolic Pathway Drift Hypothesis |\n +--------------------------------------------------+\n\nProgram\n~~~~~~~\n\nPathModel is developed in `ASP `__ using the `clingo grounder and solver `__. It is divided in three ASP scripts.\n\nThe first one, `ReactionSiteExtraction.lp `__ creates biochemical transformation from reactions. The biochemical transformation of a reaction corresponds to the atoms and bonds changes between the reactant and the product of the reaction.\n\nWhen a reaction occurred between two molecules, the script will compare atoms and bonds of the two molecules of the reaction and will extract a reaction site before the reaction (composed of atoms and bonds that are present in the reactant but absent in the product) and a reaction site after the reaction (composed of atoms and bonds present in the product but absent in the reactant).\n\nReactionSiteExtraction produces two sites for each reaction (one before and one after the reaction). This corresponds to the biochemical transformation induced by the reaction.\n\nA second script, `MZComputation.lp `__ will compute the MZ for each known molecule. It also computes the MZ changes between the reactant and the product of a reaction.\n\nThese data will be used by the third script: `PathModel.lp `__.\n\nPathModel uses the incremental mode from Clingo. Using a source molecule, it will apply two inference methods until it reaches a goal (another molecules).\n\nInstallation\n------------\n\nRequirements\n~~~~~~~~~~~~\n\nPathModel is a Python3 package using Answer Set Programming (ASP) to infer new biochemical reactions and new metabolites structures. It is divided in two parts:\n\n- a wrapper (`pathmodel_wrapper.py `__) for the ASP programs (`MZComputation.lp `__, `ReactionSiteExtraction.lp `__ and `PathModel.lp `__).\n\n- a plotting script (`molecule_creation.py `__) to create pictures of molecules and pathways.\n\nPathModel requires:\n\n- `clingo `__: which must be installed with Lua compatibility (a good way to have it is with `conda `__).\n\n- `clyngor package `__ (can be installed with clingo with `clyngor-with-clingo package `__).\n\n- `networkx `__ (with `graphviz `__ and `pygraphviz `__).\n\n- `matplotlib package `__.\n\n- `rdkit package `__.\n\nUsing Singularity and Singularity Hub\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nYou can use the container from `Singularity Hub `__.\n\n.. code:: sh\n\n # Choose your preference to pull the container from Singularity Hub (once)\n singularity pull shub://pathmodel/pathmodel-singularity\n\n # Enter it\n singularity run pathmodel-singularity_latest.sif\n pathmodel test -o output_folder\n pathmodel_plot -i output_folder/MAA\n pathmodel_plot -i output_folder/sterol\n\n # Or use as a command line\n singularity exec pathmodel-singularity_latest.sif pathmodel test -o output_folder\n singularity exec pathmodel-singularity_latest.sif pathmodel_plot -i output_folder/MAA\n singularity exec pathmodel-singularity_latest.sif pathmodel_plot -i output_folder/sterol\n\nThis container is build from this `Singularity recipe `__. If you prefer, you can use this recipe:\n\n.. code:: sh\n\n singularity build pathmodel.sif Singularity\n\n\nUsing docker\n~~~~~~~~~~~~\n\nA docker image of pathmodel is available at `dockerhub `__. This image is based on the `pathmodel Dockerfile `__.\n\n.. code:: sh\n\n\tdocker run -ti -v /path/shared/container:/shared --name=\"mycontainer\" pathmodel/pathmodel bash\n\nThis command will download the image and create a container with a shared path. It will launch a bash terminal where you can use the command pathmodel (see `Commands and Python import`_ and `Tutorial`_).\n\nUsing git\n~~~~~~~~~\n\nThe package can be installed either using python setup or pip install (see below)\n\n.. code:: sh\n\n git clone https://github.com/pathmodel/pathmodel.git\n\n cd PathModel\n\n python setup.py install\n\nUsing pip\n~~~~~~~~~\n\nIf you have all the dependencies on your system, you can just download Pathmodel using `pip `__.\n\n.. code:: sh\n\n\tpip install pathmodel\n\nUsing conda environment (to install all dependencies)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nDue to all the dependencies required by the scripts of Pathmodel, we create a conda environment file that contains all dependencies.\n\nFirst you need `Conda `__.\nTo avoid conflict between the conda python and your system python, you could use a conda environment and `Miniconda `__.\n\nIf you want to test this, the first thing is to install miniconda:\n\n.. code:: sh\n\n # Download Miniconda\n wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh\n\n # Give the permission to the installer.\n chmod +x Miniconda3-latest-Linux-x86_64.sh\n\n # Install it at the path that you choose.\n ./Miniconda3-latest-Linux-x86_64.sh -p /path/where/miniconda/will/be/installed/ -b\n\n # Delete installer.\n rm Miniconda3-latest-Linux-x86_64.sh\n\n # Add conda path to you bash settings.\n echo '. /path/where/miniconda/is/installed/etc/profile.d/conda.sh' >> ~/.bashrc\n # Will activate the environment.\n # For more information: https://github.com/conda/conda/blob/master/CHANGELOG.md#440-2017-12-20\n echo 'conda activate base' >> ~/.bashrc\n\nAfter this you need to restart your terminal or use: source ~/.bashrc\n\nThen you will get our conda environment file:\n\n.. code:: sh\n\n # Download our conda environment file from Pathmodel github page.\n wget https://raw.githubusercontent.com/pathmodel/pathmodel/master/conda/pathmodel_env.yaml\n\n # Use the file to create the environment and install all dependencies.\n conda env create -f pathmodel.yaml\n\nIf no error occurs, you can now access a conda environment with pathmodel:\n\n.. code:: sh\n\n # Activate the environment.\n conda activate pathmodel\n\n # Launch the help of Pathmodel. \n (pathmodel) pathmodel -h\n\nYou can exit the environment with:\n\n.. code:: sh\n\n # Deactivate the environment.\n conda deactivate\n\nPathModel presentation\n----------------------\n\nInput\n~~~~~\n\nMolecules are modelled with atoms (hydrogen excluded) and bonds (single and double).\n\n.. code:: sh\n\n\tatom(\"Molecule1\",1,carb). atom(\"Molecule1\",2,carb).\n bond(\"Molecule1\",single,1,2).\n\n\tatom(\"Molecule2\",1,carb). atom(\"Molecule2\",2,carb). atom(\"Molecule2\",3,carb).\n bond(\"Molecule2\",single,1,2). bond(\"Molecule2\",single,2,3).\n\nReactions between molecules are represented as link between two molecules with a name:\n\n.. code:: sh\n\n\treaction(reaction1,\"Molecule1\",\"Molecule2\").\n\nA common domain is needed to find which molecules share structure with others:\n\n.. code:: sh\n\n\tatomDomain(commonDomainName,1,carb). atomDomain(commonDomainName,2,carb).\n bondDomain(commonDomainName,single,1,2).\n\nA molecule source is defined:\n\n.. code:: sh\n\n\tsource(\"Molecule1\").\n\nInitiation and goal of the incremental grounding must be defined:\n\n.. code:: sh\n\n init(pathway(\"Molecule1\",\"Molecule2\")).\n goal(pathway(\"Molecule1\",\"Molecule3\")).\n\nM/Z ratio can be added to check whether there is a metabolite that can be predict with this ratio. M/Z ratio must be multiplied by 10 000 because Clingo doesn't use decimals. An example with a M/Z of 270,272:\n\n.. code:: sh\n\n mzfiltering(2702720).\n\nMolecules absent in the organism of study can be specified. They will not be used by the inference method.\n\n.. code:: sh\n\n absentmolecules(\"Molecule1\").\n\nCommands and Python import\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nRun PathModel prediction:\n\n.. code:: sh\n\n\tpathmodel infer -i data.lp -o output_folder -s 100\n\nPathModel arguments:\n\n- -i: input file\n\n- -o: output folder\n\n- -s: number of maximal steps before PathModel stops (to avoid endless run), by default at 100\n\nIf PathModel does not find the goal molecules before it reaches the number of maximal steps, it will send an error message.\n\nCreate picture representing the results (like new molecules inferred from M/Z ratio):\n\n.. code:: sh\n\n\tpathmodel_plot -i output_folder_from_pathmodel\n\nIn python (pathmodel_plot is not available in import call):\n\n.. code:: python\n\n import pathmodel\n\n pathmodel.pathmodel_analysis('data.lp', output_folder, step_limit=100)\n\nOutput\n~~~~~~\n\nWith the `infer command`, pathmodel will use the data file and try to create an output folder:\n\n.. code-block:: text\n\n\toutput_folder\n\t\u251c\u2500\u2500 data_pathmodel.lp\n\t\u251c\u2500\u2500 pathmodel_data_transformations.tsv\n\t\u251c\u2500\u2500 pathmodel_incremental_inference.tsv\n\t\u251c\u2500\u2500 pathmodel_output.lp\n\ndata_pathmodel.lp contains intermediary files for PathModel. Specifically, it contains the input data and the results of **ReactionSiteExtraction.lp** (*diffAtomBeforeReaction*, *diffAtomAfterReaction*, *diffBondBeforeReaction*, *diffBondAfterReaction*, *siteBeforeReaction*, *siteAfterReaction*) and of **MZComputation.lp** (*domain*, *moleculeComposition*, *moleculeNbAtoms*, *numberTotalBonds*, *moleculeMZ*, *reactionMZ*). The python wrapper gives this file to **PathModel.lp** as input.\n\npathmodel_data_transformations.tsv contains all the transformation inferred from the input data and the **ReactionSiteExtraction.lp** script.\n\npathmodel_incremental_inference.tsv shows the step of the incremental mode of clingo when a new reaction has been inferred using a known transformation. It does not show the step when passing through a known reaction, so the first step number in the file scan be superior to 1.\n\npathmodel_output.lp is the output lp file of **PathModel.lp** (*newreaction*, *predictatom*, *predictbond*, *reaction*, *inferred*).\n\nThen if you use the `pathmodel_plot command` on the output_folder, pathmodel will create the following structure:\n\n.. code-block:: text\n\n\toutput_folder\n\t\u251c\u2500\u2500 ...\n\t\u251c\u2500\u2500 molecules\n\t\t\u251c\u2500\u2500 Molecule1\n\t\t\u251c\u2500\u2500 Molecule2\n\t\t\u251c\u2500\u2500 ...\n\t\u251c\u2500\u2500 newmolecules_from_mz\n\t\t\u251c\u2500\u2500 Prediction_...\n\t\t\u251c\u2500\u2500 Prediction_...\n\t\t\u251c\u2500\u2500 ...\n\t\u251c\u2500\u2500 pathmodel_output.svg\n\nmolecules contains the structures of each molecules in the input data file.\n\nnewmolecules_from_mz contains the structures of inferred molecules using the MZ. It will be empty if no MZ were given or if no molecules were inferred.\n\npathmodel_output.svg shows the pathway containing the molecules and the reactions (in green) from the input files and the newly inferred molecules and reactions (in blue).\n\nTutorial\n--------\n\nTutorial on fictitious data\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nInput data\n##########\n\nFor this tutorial, we have created fictitious data available at `test/pathmodel_test_data.lp `__.\n\nIn this file there is 5 molecules:\n\n.. table::\n :align: center\n :widths: auto\n\n +--------------------------------------+--------------------------------+\n | .. image:: images/molecule_1.svg | atom(\"molecule_1\",1..4,carb). |\n | :width: 400px | bond(\"molecule_1\",single,1,2). |\n | | bond(\"molecule_1\",single,1,3). |\n | | bond(\"molecule_1\",single,2,3). |\n | | bond(\"molecule_1\",single,2,4). |\n +--------------------------------------+--------------------------------+\n\n.. table::\n :align: center\n :widths: auto\n\n +--------------------------------------+--------------------------------+\n | .. image:: images/molecule_2.svg | atom(\"molecule_2\",1..4,carb). |\n | :width: 400px | bond(\"molecule_2\",single,1,2). |\n | | bond(\"molecule_2\",single,1,3). |\n | | bond(\"molecule_2\",single,2,3). |\n | | bond(\"molecule_2\",double,2,4). |\n +--------------------------------------+--------------------------------+\n\n.. table::\n :align: center\n :widths: auto\n\n +--------------------------------------+--------------------------------+\n | .. image:: images/molecule_3.svg | atom(\"molecule_3\",1..6,carb). |\n | :width: 700px | bond(\"molecule_3\",single,1,2). |\n | | bond(\"molecule_3\",single,1,3). |\n | | bond(\"molecule_3\",single,1,6). |\n | | bond(\"molecule_3\",single,2,3). |\n | | bond(\"molecule_3\",single,2,4). |\n | | bond(\"molecule_3\",single,3,6). |\n | | bond(\"molecule_3\",single,5,6). |\n +--------------------------------------+--------------------------------+\n\n.. table::\n :align: center\n :widths: auto\n\n +--------------------------------------+--------------------------------+\n | .. image:: images/molecule_4.svg | atom(\"molecule_4\",1..6,carb). |\n | :width: 700px | bond(\"molecule_4\",single,1,2). |\n | | bond(\"molecule_4\",single,1,3). |\n | | bond(\"molecule_4\",single,1,6). |\n | | bond(\"molecule_4\",single,2,3). |\n | | bond(\"molecule_4\",double,2,4). |\n | | bond(\"molecule_4\",single,3,6). |\n | | bond(\"molecule_4\",single,5,6). |\n +--------------------------------------+--------------------------------+\n\n.. table::\n :align: center\n :widths: auto\n\n +--------------------------------------+--------------------------------+\n | .. image:: images/molecule_5.svg | atom(\"molecule_5\",1..7,carb). |\n | :width: 700px | bond(\"molecule_5\",single,1,2). |\n | | bond(\"molecule_5\",single,1,3). |\n | | bond(\"molecule_5\",single,1,6). |\n | | bond(\"molecule_5\",single,1,7). |\n | | bond(\"molecule_5\",single,2,3). |\n | | bond(\"molecule_5\",single,2,4). |\n | | bond(\"molecule_5\",double,3,6). |\n | | bond(\"molecule_5\",single,5,6). |\n +--------------------------------------+--------------------------------+\n\nOne reaction:\n\n.. table::\n :align: center\n :widths: auto\n\n +----------------------------------------------+----------------------------------------------------+\n | .. image:: images/reduction_reaction.svg | reaction(reduction, \"molecule_1\", \"molecule_2\"). |\n | :width: 300px | |\n +----------------------------------------------+----------------------------------------------------+\n\nOne known MZ:\n\n+-----------------------------------+--------------------------+\n| 92,1341 (so 921341 for Clingo) | mzfiltering(921341). |\n+-----------------------------------+--------------------------+\n\nCommands\n########\n\n.. code:: sh\n\n\tpathmodel infer -i pathmodel_test_data.lp -o output_folder\n\n.. code:: sh\n\n\tpathmodel_plot -i output_folder\n\nResults\n#######\n\nBy calling the command:\n\n.. code:: sh\n\n\tpathmodel infer -i pathmodel_test_data.lp -o output_folder\n\nPathmodel will create output files:\n\n.. code-block:: text\n\n\toutput_folder\n\t\u251c\u2500\u2500 data_pathmodel.lp\n\t\u251c\u2500\u2500 pathmodel_data_transformations.tsv\n\t\u251c\u2500\u2500 pathmodel_incremental_inference.tsv\n\t\u251c\u2500\u2500 pathmodel_output.lp\n\nAs explained in `Output`_, data_pathmodel.lp is an intermediary file for Pathmodel.\n\npathmodel_data_transformations.tsv contains the transformation inferred from the knonw reactions, here:\n\n+---------------+-------------------------+--------------------------+\n| reaction_id | reactant_substructure | product_substructure |\n+---------------+-------------------------+--------------------------+\n| reduction | [('single', '2', '4')] | [('double', '2', '4')] |\n+---------------+-------------------------+--------------------------+\n\nThis means that the reduction transforms a single bond between atoms 2 and 4 into a double bond. These transformations are used by the deductive and analogical reasoning of PathModel.\n\npathmodel_incremental_inference.tsv shows the new reactions inferred by PathModel and the step in Clingo incremental mode when the new reaction has been inferred.\n\n+---------------+-----------------+-----------------+--------------------------------+\n| infer_turn | new_reaction | reactant | product |\n+---------------+-----------------+-----------------+--------------------------------+\n| 2 | reduction | \"molecule_3\" | \"molecule_4\" |\n+---------------+-----------------+-----------------+--------------------------------+\n| 2 | reduction | \"molecule_5\" | \"Prediction_921341_reduction\" |\n+---------------+-----------------+-----------------+--------------------------------+\n\nTwo new reduction variant reactions have been inferred at step two of incremenetal mode:\n\n- one between Molecule3 and Molecule4 inferred from the reduction between Molecule1 and Molecule2. This is a demonstration of the deductive reasoning of PathModel:\n\n.. table::\n :align: center\n :widths: auto\n\n +-------------------------------------------+\n | .. image:: images/deductive_reasoning.svg |\n +-------------------------------------------+\n\n- one between Molecule5 and a newly inferred metabolite with the MZ of 92,1341. To find this, PathModel computes the MZ of Molecule5 (94,1489). Then it applies each transformations from its knowledge database (here reduction) to each molecules from the knowledge database. With this, PathModel computes the MZ of hypothetical molecules and compared them to the MZ given by the user (here 92,1341). And if a match is found then the reaction and the molecule are inferred. This is an example of the analogical reasoning:\n\n.. table::\n :align: center\n :widths: auto\n\n +--------------------------------------------+\n | .. image:: images/analogical_reasoning.svg |\n +--------------------------------------------+\n\nThen it is possible to have access to graphic representations of molecules and reactions:\n\n.. code:: sh\n\n\tpathmodel_plot -i output_folder\n\n.. code-block:: text\n\n\toutput_folder\n\t\u251c\u2500\u2500 ...\n\t\u251c\u2500\u2500 molecules\n\t\t\u251c\u2500\u2500 molecule_1.svg\n\t\t\u251c\u2500\u2500 molecule_2.svg\n\t\t\u251c\u2500\u2500 molecule_3.svg\n\t\t\u251c\u2500\u2500 molecule_4.svg\n\t\t\u251c\u2500\u2500 molecule_5.svg\n\t\u251c\u2500\u2500 newmolecules_from_mz\n\t\t\u251c\u2500\u2500 Prediction_921341_reduction.svg\n\t\u251c\u2500\u2500 pathmodel_output.svg\n\nThere is a structure inferred by PathModel for the MZ 92.1341:\n\n.. table::\n :align: center\n :widths: auto\n\n +----------------------------------------------------+\n | .. image:: images/Prediction_921341_reduction.svg |\n +----------------------------------------------------+\n\nPathModel creates also a picture showing all the reactions (known reactions in green, inferred reaction variant in blue and blue square for predicted molecules):\n\n.. table::\n :align: center\n :widths: auto\n\n +--------------------------------------------+\n | .. image:: images/pathmodel_output.svg |\n | :width: 400px |\n +--------------------------------------------+\n\nTutorial on *iScience* Article data (*Chondrus crispus* sterol and Mycosporine-like Amino Acids pathways)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nPathModel contains script to reproduce the experience run in the article: analysis of *Chondrus crispus* sterol and Mycosporine-like Amino Acids (MAA) pathways.\n\nArticle data\n############\n\nSterol pathway\n**************\n\nInput data for sterol pathway are in `pathmodel/pathmodel/data/sterol_pwy.lp `__.\n\nFor this pathway, known reactions were extracted from:\n\n- `MetaCyc cholesterol biosynthesis (plants) PWY18C3-1 `__.\n- `MetaCyc cholesterol biosynthesis III (via desmosterol) PWY66-4 `__.\n- `MetaCyc phytosterol biosynthesis (plants) PWY-2541 `__.\n- simplification of multistep C24-C29 demethylation from `Sonawane et al. (2016) `__.\n\nThe source molecule is the cycloartenol and the goal molecules are: 22-dehydrocholesterol, brassicasterol and sitosterol.\n\nMAA pathway\n***********\n\nInput data for MAA pathway are in `pathmodel/pathmodel/data/MAA_pwy.lp `__.\n\nFor this pathway, known reactions were extracted from:\n\n- `MetaCyc shinorine biosynthesis PWY-7751 `__.\n- Extended reaction from serine to threonine as proposed in `Brawley et al. (2017) `__.\n- Reactions hypothesized by `Carreto and Carignan (2011) `__.\n\nTwo unknown M/Z ratios were given as input for MAA pathway:\n\n- 270,2720\n- 302,3117\n\nThe source molecule is the sedoheptulose-7-phosphate and the goal molecule is the palythine.\n\nArticle commands\n################\n\nArticle data are stored in PathModel code. By calling the 'test' command, you can reproduce PathModel article experience. First run the inference on the sterol and MAA pathways:\n\n.. code:: sh\n\n\tpathmodel test -o output_folder\n\nThen, it is possible to create pictures representation of the results:\n\n.. code:: sh\n\n pathmodel_plot -i output_folder/sterol\n\n.. code:: sh\n\n pathmodel_plot -i output_folder/MAA\n\nArticle results\n###############\n\nThis prototype has been used to analyse to pathways from the red alga *Chondrus crispus*, the sterol and the Mycopsorine-like Amino-Acids.\n\n.. code:: sh\n\n\tpathmodel test -o output_folder\n\nThis test command will create an output folder containing the inference results for the sterol and the MAA pathways:\n\n.. code-block:: text\n\n output_folder\n \u251c\u2500\u2500 MAA\n \u251c\u2500\u2500 data_pathmodel.lp\n \u251c\u2500\u2500 pathmodel_data_transformations.tsv\n \u251c\u2500\u2500 pathmodel_incremental_inference.tsv\n \u251c\u2500\u2500 pathmodel_output.lp\n \u251c\u2500\u2500 sterol\n \u251c\u2500\u2500 data_pathmodel.lp\n \u251c\u2500\u2500 pathmodel_data_transformations.tsv\n \u251c\u2500\u2500 pathmodel_incremental_inference.tsv\n \u251c\u2500\u2500 pathmodel_output.lp\n\nSterol pathway results\n**********************\n\nThen you can create pictures representation of the results (pathways and molecules) for the sterol pathway:\n\n.. code:: sh\n\n pathmodel_plot -i output_folder/sterol\n\n.. code-block:: text\n\n\toutput_folder\n \u251c\u2500\u2500 sterol\n \u251c\u2500\u2500 data_pathmodel.lp\n \u251c\u2500\u2500 pathmodel_data_transformations.tsv\n \u251c\u2500\u2500 pathmodel_incremental_inference.tsv\n \u251c\u2500\u2500 pathmodel_output.lp\n \u251c\u2500\u2500 pathmodel_output.svg\n \u251c\u2500\u2500 molecules\n \u251c\u2500\u2500 22-dehydrocholesterol.svg\n \u251c\u2500\u2500 24-epicampesterol.svg\n \u251c\u2500\u2500 24-ethylidenelophenol.svg\n \u251c\u2500\u2500 24-methyldesmosterol.svg\n \u251c\u2500\u2500 24-methylenecholesterol.svg\n \u251c\u2500\u2500 24-methylenecycloartanol.svg\n \u251c\u2500\u2500 24-methylenelophenol.svg\n \u251c\u2500\u2500 31-norcycloartanol.svg\n \u251c\u2500\u2500 31-norcycloartenol.svg\n \u251c\u2500\u2500 4\u03b1,14\u03b1-dimethyl-cholesta-8-enol.svg\n \u251c\u2500\u2500 4\u03b1,14\u03b1-dimethylcholest-8,24-dien-3\u03b2-ol.svg\n \u251c\u2500\u2500 4\u03b1-methyl-5\u03b1-cholest-7-en-3\u03b2-ol.svg\n \u251c\u2500\u2500 4\u03b1-methyl-5\u03b1-cholesta-7,24-dienol.svg\n \u251c\u2500\u2500 4\u03b1-methyl-5\u03b1-cholesta-8-en-3-ol.svg\n \u251c\u2500\u2500 4\u03b1-methyl-cholesta-8,14-dienol.svg\n \u251c\u2500\u2500 4\u03b1-methylcholest-8(9),14,24-trien-3\u03b2-ol.svg\n \u251c\u2500\u2500 4\u03b1-methylzymosterol.svg\n \u251c\u2500\u2500 5\u03b1-cholesta-7,24-dienol.svg\n \u251c\u2500\u2500 7-dehydrocholesterol.svg\n \u251c\u2500\u2500 7-dehydrodesmosterol.svg\n \u251c\u2500\u2500 brassicasterol.svg\n \u251c\u2500\u2500 campesterol.svg\n \u251c\u2500\u2500 cholesterol.svg\n \u251c\u2500\u2500 cycloartanol.svg\n \u251c\u2500\u2500 cycloartenol.svg\n \u251c\u2500\u2500 desmosterol.svg\n \u251c\u2500\u2500 lathosterol.svg\n \u251c\u2500\u2500 sitosterol.svg\n \u251c\u2500\u2500 stigmasterol.svg\n \u251c\u2500\u2500 newmolecules_from_mz\n (empty)\n\nIn the molecules folder, each input molecules are represented as a svg file.\n\nNo M/Z ratio were given as input for the sterol so there is no new molecules from M/Z.\n\n'pathmodel_output.svg' shows the predicted reactions in blue and the predicted molecules in blue (the picture form can change but it contains the same result):\n\n.. table::\n :align: center\n :widths: auto\n\n +---------------------------------------------------------------------------------+\n | .. image:: images/sterol_pathmodel_output.svg |\n | :width: 800px |\n +---------------------------------------------------------------------------------+\n\nInferred reactions are listed in 'pathmodel_incremental_inference.tsv', with the step of the incremental mode from the source molecule (cycloartenol) to the goal molecules:\n\n.. table::\n :align: center\n :widths: auto\n\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | infer_step | new_reaction | reactant | product |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 2 | c24_c29_demethylation | \"cycloartenol\" | \"31-norcycloartenol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 2 | rxn66_28 | \"cycloartenol\" | \"cycloartanol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 3 | rxn_4282 | \"31-norcycloartenol\" | \"31-norcycloartanol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 3 | rxn_20436 | \"31-norcycloartenol\" | \"4\u03b1,14\u03b1-dimethylcholest-8,24-dien-3\u03b2-ol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 4 | rxn_4282 | \"4\u03b1,14\u03b1-dimethylcholest-8,24-dien-3\u03b2-ol\" | \"4\u03b1,14\u03b1-dimethyl-cholesta-8-enol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 4 | rxn_20438 | \"4\u03b1,14\u03b1-dimethylcholest-8,24-dien-3\u03b2-ol\" | \"4\u03b1-methylcholest-8(9),14,24-trien-3\u03b2-ol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 5 | rxn_4282 | \"4\u03b1-methylcholest-8(9),14,24-trien-3\u03b2-ol\" | \"4\u03b1-methyl-cholesta-8,14-dienol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 5 | rxn_20439 | \"4\u03b1-methylcholest-8(9),14,24-trien-3\u03b2-ol\" | \"4\u03b1-methylzymosterol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 6 | rxn_4286 | \"4\u03b1-methylzymosterol\" | \"4\u03b1-methyl-5\u03b1-cholesta-7,24-dienol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 6 | rxn_4282 | \"4\u03b1-methylzymosterol\" | \"4\u03b1-methyl-5\u03b1-cholesta-8-en-3-ol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 7 | rxn_4282 | \"4\u03b1-methyl-5\u03b1-cholesta-7,24-dienol\" | \"4\u03b1-methyl-5\u03b1-cholest-7-en-3\u03b2-ol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 7 | c24_c28_demethylation | \"4\u03b1-methyl-5\u03b1-cholesta-7,24-dienol\" | \"5\u03b1-cholesta-7,24-dienol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 8 | rxn_1_14_21_6 | \"5\u03b1-cholesta-7,24-dienol\" | \"7-dehydrodesmosterol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 8 | rxn_4282 | \"5\u03b1-cholesta-7,24-dienol\" | \"lathosterol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 9 | rxn_4282 | \"7-dehydrodesmosterol\" | \"7-dehydrocholesterol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 9 | rxn66_323 | \"7-dehydrodesmosterol\" | \"desmosterol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 10 | rxn_4021 | \"desmosterol\" | \"24-methylenecholesterol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 10 | rxn_4282 | \"desmosterol\" | \"cholesterol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 11 | c22_desaturation | \"cholesterol\" | \"22-dehydrocholesterol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 12 | rxn_2_1_1_143 | \"campesterol\" | \"sitosterol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n\nMAA pathway results\n*******************\n\nAnd the pictures for the MAA pathway are created with:\n\n.. code:: sh\n\n pathmodel_plot -i output_folder/MAA\n\n.. code-block:: text\n\n output_folder\n \u251c\u2500\u2500 MAA\n \u251c\u2500\u2500 data_pathmodel.lp\n \u251c\u2500\u2500 pathmodel_data_transformations.tsv\n \u251c\u2500\u2500 pathmodel_incremental_inference.tsv\n \u251c\u2500\u2500 pathmodel_output.lp\n \u251c\u2500\u2500 pathmodel_output.svg\n \u251c\u2500\u2500 molecules\n \u251c\u2500\u2500 asterina-330.svg\n \u251c\u2500\u2500 mycosporin-glycine.svg\n \u251c\u2500\u2500 palythene.svg\n \u251c\u2500\u2500 palythine.svg\n \u251c\u2500\u2500 palythinol.svg\n \u251c\u2500\u2500 porphyra-334.svg\n \u251c\u2500\u2500 R-4-deoxygadusol.svg\n \u251c\u2500\u2500 R-demethyl-4-deoxygadusol.svg\n \u251c\u2500\u2500 S-4-deoxygadusol.svg\n \u251c\u2500\u2500 S-demethyl-4-deoxygadusol.svg\n \u251c\u2500\u2500 sedoheptulose-7-phosphate.svg\n \u251c\u2500\u2500 shinorine.svg\n \u251c\u2500\u2500 z-palythenic acid.svg\n \u251c\u2500\u2500 newmolecules_from_mz\n \u251c\u2500\u2500 Prediction_2702720_dehydration.svg\n \u251c\u2500\u2500 Prediction_3023117_decarboxylation_1.svg\n \u251c\u2500\u2500 Prediction_3023117_decarboxylation_2.svg\n\npathmodel_output.svg contains the pathway with the known reactions (green), the reactions inferred by PathModel (blue) and the metabolites inferred (blue).\n\n.. table::\n :align: center\n :widths: auto\n\n +----------------------------------------------------------+\n | .. image:: images/maa_pathmodel_output.svg |\n | :width: 800px |\n +----------------------------------------------------------+\n\nInferred reactions are listed in 'pathmodel_incremental_inference.tsv', with the step of the incremental mode from the source molecule (sedoheptulose-7-phosphate) to the goal molecule (palythine).\n\nIncremental step 2 is not showed because it is already known (between 'sedoheptulose-7-phosphate' and 'R-demethyl-4-deoxygadusol') and no new predictions have been inferred.\n\n.. table::\n :align: center\n :widths: auto\n\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | infer_step | new_reaction | reactant | product |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 3 | rxn_17896 | \"R-demethyl-4-deoxygadusol\" | \"R-4-deoxygadusol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 3 | rxn_17370 | \"R-demethyl-4-deoxygadusol\" | \"S-demethyl-4-deoxygadusol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 4 | rxn_17895 | \"R-4-deoxygadusol\" | \"S-4-deoxygadusol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 4 | rxn_17366 | \"S-demethyl-4-deoxygadusol\" | \"S-4-deoxygadusol\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 7 | dehydration | \"Prediction_3023117_decarboxylation_1\" | \"palythene\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 7 | dehydration | \"Prediction_3023117_decarboxylation_2\" | \"palythene\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 7 | decarboxylation_2 | \"porphyra-334\" | \"Prediction_3023117_decarboxylation_1\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 7 | decarboxylation_2 | \"porphyra-334\" | \"Prediction_3023117_decarboxylation_2\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 7 | decarboxylation_1 | \"shinorine\" | \"asterina-330\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n | 8 | dehydration | \"asterina-330\" | \"Prediction_2702720_dehydration\" |\n +------------+-------------------------+-------------------------------------------+--------------------------------------------+\n\nThe structures of the predicted molecules from M/Z can be found in newmolecules_from_mz:\n\n- Prediction_2702720_dehydration corresponds to MAA1 of the article:\n\n.. table::\n :align: center\n :widths: auto\n\n +--------------------------------------------------------------+\n | Prediction_2702720_dehydration |\n +--------------------------------------------------------------+\n |from reaction(dehydration,\"porphyra-334\",\"z-palythenic acid\").|\n +--------------------------------------------------------------+\n | .. image:: images/Prediction_2702720_dehydration.svg |\n | :width: 300px |\n +--------------------------------------------------------------+\n | predictatom(\"Prediction_2702720_dehydration\",1,carb). |\n | predictatom(\"Prediction_2702720_dehydration\",2,carb). |\n | predictatom(\"Prediction_2702720_dehydration\",3,carb). |\n | predictatom(\"Prediction_2702720_dehydration\",4,carb). |\n | predictatom(\"Prediction_2702720_dehydration\",5,carb). |\n | predictatom(\"Prediction_2702720_dehydration\",6,carb). |\n | predictatom(\"Prediction_2702720_dehydration\",7,carb). |\n | predictatom(\"Prediction_2702720_dehydration\",8,nitr). |\n | predictatom(\"Prediction_2702720_dehydration\",9,oxyg). |\n | predictatom(\"Prediction_2702720_dehydration\",10,nitr). |\n | predictatom(\"Prediction_2702720_dehydration\",11,oxyg). |\n | predictatom(\"Prediction_2702720_dehydration\",12,oxyg). |\n | predictatom(\"Prediction_2702720_dehydration\",13,carb). |\n | predictatom(\"Prediction_2702720_dehydration\",14,carb). |\n | predictatom(\"Prediction_2702720_dehydration\",15,carb). |\n | predictatom(\"Prediction_2702720_dehydration\",16,oxyg). |\n | predictatom(\"Prediction_2702720_dehydration\",17,oxyg). |\n | predictatom(\"Prediction_2702720_dehydration\",18,carb). |\n | predictatom(\"Prediction_2702720_dehydration\",19,carb). |\n | |\n | predictbond(\"Prediction_2702720_dehydration\",double,1,2). |\n | predictbond(\"Prediction_2702720_dehydration\",single,1,6). |\n | predictbond(\"Prediction_2702720_dehydration\",single,1,8). |\n | predictbond(\"Prediction_2702720_dehydration\",single,2,3). |\n | predictbond(\"Prediction_2702720_dehydration\",single,2,9). |\n | predictbond(\"Prediction_2702720_dehydration\",single,3,4). |\n | predictbond(\"Prediction_2702720_dehydration\",double,3,10). |\n | predictbond(\"Prediction_2702720_dehydration\",single,4,5). |\n | predictbond(\"Prediction_2702720_dehydration\",single,5,6). |\n | predictbond(\"Prediction_2702720_dehydration\",single,5,7). |\n | predictbond(\"Prediction_2702720_dehydration\",singleS,5,12). |\n | predictbond(\"Prediction_2702720_dehydration\",single,7,11). |\n | predictbond(\"Prediction_2702720_dehydration\",single,8,14). |\n | predictbond(\"Prediction_2702720_dehydration\",single,9,13). |\n | predictbond(\"Prediction_2702720_dehydration\",single,10,18). |\n | predictbond(\"Prediction_2702720_dehydration\",single,14,15). |\n | predictbond(\"Prediction_2702720_dehydration\",single,15,17). |\n | predictbond(\"Prediction_2702720_dehydration\",double,15,16). |\n | predictbond(\"Prediction_2702720_dehydration\",double,18,19). |\n +--------------------------------------------------------------+\n\n- Prediction_3023117_decarboxylation_1 and Prediction_3023117_decarboxylation_2 (which are the same molecule) correspond to MAA2.\n\nThis molecule has been identified as the Aplysiapalythine A found in *Aplysia californica* [Kamio2011]_.\nFurthermore, Aplysiapalythine A has been detected in red algae (the group in which *Chondrus crispus* is classified) [Orfanoudaki2019]_.\n\n.. table::\n :align: center\n :widths: auto\n\n +-------------------------------------------------------------------+-------------------------------------------------------------------+\n | Prediction_3023117_decarboxylation_1 | Prediction_3023117_decarboxylation_2 |\n +-------------------------------------------------------------------+-------------------------------------------------------------------+\n | from reaction(decarboxylation_1,\"z-palythenic acid\",\"palythene\"). | from reaction(decarboxylation_2,\"shinorine\",\"asterina-330\"). |\n +-------------------------------------------------------------------+-------------------------------------------------------------------+\n | .. image:: images/Prediction_3023117_decarboxylation_1.svg | .. image:: images/Prediction_3023117_decarboxylation_2.svg |\n | :width: 300px | :width: 300px |\n +-------------------------------------------------------------------+-------------------------------------------------------------------+\n | predictatom(\"Prediction_3023117_decarboxylation_1\",1,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",1,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",2,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",2,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",3,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",3,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",4,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",4,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",5,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",5,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",6,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",6,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",7,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",7,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",8,nitr). | predictatom(\"Prediction_3023117_decarboxylation_2\",8,nitr). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",9,oxyg). | predictatom(\"Prediction_3023117_decarboxylation_2\",9,oxyg). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",10,nitr). | predictatom(\"Prediction_3023117_decarboxylation_2\",10,nitr). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",11,oxyg). | predictatom(\"Prediction_3023117_decarboxylation_2\",11,oxyg). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",12,oxyg). | predictatom(\"Prediction_3023117_decarboxylation_2\",12,oxyg). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",13,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",13,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",14,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",14,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",15,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",15,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",16,oxyg). | predictatom(\"Prediction_3023117_decarboxylation_2\",16,oxyg). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",17,oxyg). | predictatom(\"Prediction_3023117_decarboxylation_2\",17,oxyg). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",18,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",18,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",19,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",19,carb). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",20,oxyg). | predictatom(\"Prediction_3023117_decarboxylation_2\",20,oxyg). |\n | predictatom(\"Prediction_3023117_decarboxylation_1\",24,carb). | predictatom(\"Prediction_3023117_decarboxylation_2\",24,carb). |\n | | |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",double,1,2). | predictbond(\"Prediction_3023117_decarboxylation_2\",double,1,2). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,1,6). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,1,6). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,1,8). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,1,8). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,2,3). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,2,3). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,2,9). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,2,9). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,3,4). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,3,4). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",double,3,10). | predictbond(\"Prediction_3023117_decarboxylation_2\",double,3,10). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,4,5). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,4,5). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,5,6). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,5,6). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,5,7). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,5,7). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",singleS,5,12). | predictbond(\"Prediction_3023117_decarboxylation_2\",singleS,5,12). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,7,11). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,7,11). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,8,14). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,8,14). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,9,13). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,9,13). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,10,18). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,10,18). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,14,15). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,14,15). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",double,15,16). | predictbond(\"Prediction_3023117_decarboxylation_2\",double,15,16). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,15,17). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,15,17). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,18,19). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,18,19). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,19,20). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,19,20). |\n | predictbond(\"Prediction_3023117_decarboxylation_1\",single,19,24). | predictbond(\"Prediction_3023117_decarboxylation_2\",single,19,24). |\n +-------------------------------------------------------------------+-------------------------------------------------------------------+\n\nData\n----\n\nIn the GitHub repository (`pathmodel/pathmodel/data/ `__), there are 4 data files:\n\n- ``MAA_pwy.lp``: Mycosporine Amino-Acids Like pathways according to data from *Chondrus crispus* (`Belcour et al, 2020 `__).\n- ``sterol_pwy.lp``: Sterol pathways according to data from *Chondrus crispus* (`Belcour et al, 2020 `__).\n- ``brown_sterols_pwy.lp``: Sterol pathways in Brown algae (`Girard et al., 2021 `__).\n- ``mozukulins_pwy.lp``: Mozukulins and sterol pathway in the brown alga *Cladosiphon okamuranus* (`Girard et al., 2021 `__).\n\n\nCitation\n--------\n\nArnaud Belcour, Jean Girard, M\u00e9ziane Aite, Ludovic Delage, Camille Trottier, Charlotte Marteau, C\u00e9dric Leroux, Simon M. Dittami, Pierre Sauleau, Erwan Corre, Jacques Nicolas, Catherine Boyen, Catherine Leblanc, Jonas Coll\u00e9n, Anne Siegel, Gabriel V. Markov. (2020). Inferring biochemical reactions and metabolite structures to understand metabolic pathway drift, *iScience*, 2020, 23(2): 100849, `https://doi.org/10.1016/j.isci.2020.100849 `__.\n\n`Citation in BibTeX format `__.\n\nBibliography\n------------\n\n.. [Kamio2011] Kamio, M., Kicklighter, C.E., Nguyen, L., Germann, M.W. and Derby, C.D. (2011). Isolation and Structural Elucidation of Novel Mycosporine\u2010Like Amino Acids as Alarm Cues in the Defensive Ink Secretion of the Sea Hare *Aplysia californica*. *Helvetica Chimica Acta*, 94: 1012-1018. `doi:10.1002/hlca.201100117 `__.\n\n.. [Orfanoudaki2019] Orfanoudaki, M., Hartmann, A., Karsten, U. and Ganzera, M. (2019). Chemical profiling of mycosporine\u2010like amino acids in twenty\u2010three red algal species. *Journal of Phycology*, 55: 393-403. `doi:10.1111/jpy.12827 `__.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pathmodel/pathmodel", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pathmodel", "package_url": "https://pypi.org/project/pathmodel/", "platform": "", "project_url": "https://pypi.org/project/pathmodel/", "project_urls": { "Homepage": "https://github.com/pathmodel/pathmodel" }, "release_url": "https://pypi.org/project/pathmodel/0.2.1/", "requires_dist": [ "clyngor", "matplotlib", "clyngor-with-clingo", "networkx" ], "requires_python": "", "summary": "Ab initio pathway inference", "version": "0.2.1", "yanked": false, "yanked_reason": null }, "last_serial": 10065520, "releases": { "0.1.1a1": [ { "comment_text": "", "digests": { "md5": "a9e48ecdfda688405fe7be837e9fd7a6", "sha256": "f9b0bb3ddc3f4ffe5c939bd8eddfb4cadb81b4ef211b2abce3f87e119253ef3a" }, "downloads": -1, "filename": "pathmodel-0.1.1a1.tar.gz", "has_sig": false, "md5_digest": "a9e48ecdfda688405fe7be837e9fd7a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16868, "upload_time": "2018-11-05T15:40:57", "upload_time_iso_8601": "2018-11-05T15:40:57.609567Z", "url": "https://files.pythonhosted.org/packages/b8/91/1da2cee990f005a4433850d764645a0a0ad7462305e12a67e33824eeaaa8/pathmodel-0.1.1a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2.1a1": [ { "comment_text": "", "digests": { "md5": "7538de6069c9f22739c4dc52c25ed49e", "sha256": "4f777eba12e4dd8d30e8d5848e820133347440dd5c8894ba312bac86fdceb015" }, "downloads": -1, "filename": "pathmodel-0.1.2.1a1.tar.gz", "has_sig": false, "md5_digest": "7538de6069c9f22739c4dc52c25ed49e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17002, "upload_time": "2018-11-06T09:02:12", "upload_time_iso_8601": "2018-11-06T09:02:12.505212Z", "url": "https://files.pythonhosted.org/packages/82/d9/3eff2796f38578d715d77fac53f36097a5bfc4acdaa0406e41a229fbeff8/pathmodel-0.1.2.1a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2a1": [ { "comment_text": "", "digests": { "md5": "29fde770ca97a1a6061f413bd277e285", "sha256": "f0468e82d35c18c43051dd80b84e9c949a921d2e966763e16b403a1c21d34391" }, "downloads": -1, "filename": "pathmodel-0.1.2a1.tar.gz", "has_sig": false, "md5_digest": "29fde770ca97a1a6061f413bd277e285", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16865, "upload_time": "2018-11-05T15:59:09", "upload_time_iso_8601": "2018-11-05T15:59:09.204415Z", "url": "https://files.pythonhosted.org/packages/ad/c9/97bf65854708cc1e1ff67703b8ae892e42d363b371f32f1bd1bc126990de/pathmodel-0.1.2a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3.1a1": [ { "comment_text": "", "digests": { "md5": "afa404ea2af02e573131307c6fe98d51", "sha256": "08d75200d976fc6179512717e7ad887115e99ddea9a8c23167b0bd567030ab04" }, "downloads": -1, "filename": "pathmodel-0.1.3.1a1.tar.gz", "has_sig": false, "md5_digest": "afa404ea2af02e573131307c6fe98d51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17228, "upload_time": "2018-11-06T10:57:28", "upload_time_iso_8601": "2018-11-06T10:57:28.249668Z", "url": "https://files.pythonhosted.org/packages/ea/f7/24dab5021857e60c0871e570302ea84064890185f303c4c649377e8e7229/pathmodel-0.1.3.1a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3.2a1": [ { "comment_text": "", "digests": { "md5": "9c1781cf1981a6e938963fd51189c193", "sha256": "078b85c0bd153fb4d655bc4aecc2d22b6bde2c02937ec4cf163f1f51b3f620be" }, "downloads": -1, "filename": "pathmodel-0.1.3.2a1.tar.gz", "has_sig": false, "md5_digest": "9c1781cf1981a6e938963fd51189c193", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17285, "upload_time": "2018-11-16T09:12:53", "upload_time_iso_8601": "2018-11-16T09:12:53.507538Z", "url": "https://files.pythonhosted.org/packages/7d/db/4d9317265f04173c760a1ae1e57410543c3f4638d71d6e4c0f19bfa0c51a/pathmodel-0.1.3.2a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3.3a1": [ { "comment_text": "", "digests": { "md5": "4fa9d78990e09d51bf1daeded7449861", "sha256": "7884818a1aa6f9979b05784a311ab96972adf30e92143454b6b1bdfe74a1cdf6" }, "downloads": -1, "filename": "pathmodel-0.1.3.3a1.tar.gz", "has_sig": false, "md5_digest": "4fa9d78990e09d51bf1daeded7449861", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17791, "upload_time": "2018-12-19T10:38:58", "upload_time_iso_8601": "2018-12-19T10:38:58.486831Z", "url": "https://files.pythonhosted.org/packages/c7/cb/ea072e5ff0710b5289340eca68f9578bf0ba328b426a9cc06c1af90ac758/pathmodel-0.1.3.3a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3.4a1": [ { "comment_text": "", "digests": { "md5": "c953b7692d118e386aa37ab5f6bb1911", "sha256": "b3cd2a6f9a31f2396fed81d6073ac1fcd5dce9fe01a08944b3f3835f6fd706fc" }, "downloads": -1, "filename": "pathmodel-0.1.3.4a1.tar.gz", "has_sig": false, "md5_digest": "c953b7692d118e386aa37ab5f6bb1911", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17823, "upload_time": "2018-12-19T12:56:01", "upload_time_iso_8601": "2018-12-19T12:56:01.523664Z", "url": "https://files.pythonhosted.org/packages/31/00/556e1c902df7f291d3d7b78ac59b53f3bb3f67645eaf5d62556364b8e8dc/pathmodel-0.1.3.4a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3.5a1": [ { "comment_text": "", "digests": { "md5": "6eb6be8a2a39b3323a59db80d8142172", "sha256": "260740b524e4829e4ac25785f6cfcdc961c716f025353d0be2386d6a5da99ba8" }, "downloads": -1, "filename": "pathmodel-0.1.3.5a1.tar.gz", "has_sig": false, "md5_digest": "6eb6be8a2a39b3323a59db80d8142172", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17913, "upload_time": "2019-01-08T09:34:04", "upload_time_iso_8601": "2019-01-08T09:34:04.545106Z", "url": "https://files.pythonhosted.org/packages/eb/ea/fa28e583df163bab50a8c7afd2734f128ca639d86e57cb8adc4885ce9502/pathmodel-0.1.3.5a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3.6a1": [ { "comment_text": "", "digests": { "md5": "772056b6ed91b160e246977a5b1e712a", "sha256": "8a1dcb8724a9f5aedbc3a94cc5d5b705d9b6b2c7835c40be492073983465b3c6" }, "downloads": -1, "filename": "pathmodel-0.1.3.6a1.tar.gz", "has_sig": false, "md5_digest": "772056b6ed91b160e246977a5b1e712a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17909, "upload_time": "2019-01-08T09:41:31", "upload_time_iso_8601": "2019-01-08T09:41:31.935179Z", "url": "https://files.pythonhosted.org/packages/04/ea/1db7efbe72148a2d777618d2137f00b572dd0ae4db3c4b173a9b0827ec2f/pathmodel-0.1.3.6a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3.7a1": [ { "comment_text": "", "digests": { "md5": "043421e7430e28a6434c9240b0174d8d", "sha256": "a176eb05d35450cc1e3145595f712b24504b9f9c6669682b9287135a57cf642a" }, "downloads": -1, "filename": "pathmodel-0.1.3.7a1.tar.gz", "has_sig": false, "md5_digest": "043421e7430e28a6434c9240b0174d8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6677, "upload_time": "2019-01-11T10:02:37", "upload_time_iso_8601": "2019-01-11T10:02:37.908038Z", "url": "https://files.pythonhosted.org/packages/aa/8e/42bb5325fe9436da80fbf15a551de00435fb7b12f6693a79fa53168fc8c3/pathmodel-0.1.3.7a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3a1": [ { "comment_text": "", "digests": { "md5": "139782464dac494e01b904b1d194708d", "sha256": "87e39f1446d79351287dc69b9e4f7a1dc84fd701b13cf6c8fbfc901194497796" }, "downloads": -1, "filename": "pathmodel-0.1.3a1.tar.gz", "has_sig": false, "md5_digest": "139782464dac494e01b904b1d194708d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17049, "upload_time": "2018-11-06T10:49:44", "upload_time_iso_8601": "2018-11-06T10:49:44.221531Z", "url": "https://files.pythonhosted.org/packages/78/02/f59820e17aac873933aa02ab5a483d480de67e909151a0f110aa7abe9a10/pathmodel-0.1.3a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "33c93c5ab6e0ffc39cdebe603920993b", "sha256": "f1c5e5c3c637719ad7c3cbd196f0ff7569b46e4800b506668d4713d724e3eb79" }, "downloads": -1, "filename": "pathmodel-0.1.4.tar.gz", "has_sig": false, "md5_digest": "33c93c5ab6e0ffc39cdebe603920993b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6622, "upload_time": "2019-10-21T13:59:39", "upload_time_iso_8601": "2019-10-21T13:59:39.507344Z", "url": "https://files.pythonhosted.org/packages/ce/68/e83c6ecda6b78dd5280d300c6467e8b7eb621d1857bbbfa7f411f6d84d24/pathmodel-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "8cc82b4a9508c63921a430d884830284", "sha256": "c89c7c110dba918c1255a2717c29b64f35e5a45b3ecdc9b94ca9e6637f537b4a" }, "downloads": -1, "filename": "pathmodel-0.1.5.tar.gz", "has_sig": false, "md5_digest": "8cc82b4a9508c63921a430d884830284", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26403, "upload_time": "2019-10-31T13:56:53", "upload_time_iso_8601": "2019-10-31T13:56:53.630794Z", "url": "https://files.pythonhosted.org/packages/aa/12/7f3dafdea4ddb1cdb7b73bf96176a22cb6056370bd825e247e4087ee972f/pathmodel-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "18538fa93a78677c6235f28f6723da51", "sha256": "b293762db279b38dc5341642d759fcc0f225dc4ac23e801fe4a4c2b6a48796cd" }, "downloads": -1, "filename": "pathmodel-0.1.6.tar.gz", "has_sig": false, "md5_digest": "18538fa93a78677c6235f28f6723da51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26608, "upload_time": "2019-11-04T10:08:39", "upload_time_iso_8601": "2019-11-04T10:08:39.953655Z", "url": "https://files.pythonhosted.org/packages/cf/27/6ebb16794e5e18f6344b9fe12a44fbee6a1b1cef73a24c6bee3d7b7153a4/pathmodel-0.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "0a8b844257056d00c131e68e6b3ce15e", "sha256": "1f8405c5267fb78d441cb18310260ea302fffc1de902570b524b2d1a2f967517" }, "downloads": -1, "filename": "pathmodel-0.1.7.tar.gz", "has_sig": false, "md5_digest": "0a8b844257056d00c131e68e6b3ce15e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25792, "upload_time": "2019-11-15T16:03:15", "upload_time_iso_8601": "2019-11-15T16:03:15.913020Z", "url": "https://files.pythonhosted.org/packages/db/69/6af286e5f83894958db5dfd19db09ebf7f18d80db6a3efdcd1eace60d0ef/pathmodel-0.1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "7f596e7de758d89ab9561f0939289eae", "sha256": "d44d3bf97300b2573b7d938a833e119b0b01381f686f111c4947087329aab18f" }, "downloads": -1, "filename": "pathmodel-0.1.8.tar.gz", "has_sig": false, "md5_digest": "7f596e7de758d89ab9561f0939289eae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31685, "upload_time": "2019-11-15T16:22:43", "upload_time_iso_8601": "2019-11-15T16:22:43.895892Z", "url": "https://files.pythonhosted.org/packages/3a/c0/95498fd5c1642fa74e47cf19117f2b0718e49f58bc0607d6d306a6ba09fb/pathmodel-0.1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "b96632988e51d55d281816719f0c593b", "sha256": "a1ba5dad9485551425b745446fafa605dbc7a1258f00b8b06311c0e5b87e8ce3" }, "downloads": -1, "filename": "pathmodel-0.1.9.tar.gz", "has_sig": false, "md5_digest": "b96632988e51d55d281816719f0c593b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44331, "upload_time": "2019-12-25T11:09:29", "upload_time_iso_8601": "2019-12-25T11:09:29.137234Z", "url": "https://files.pythonhosted.org/packages/ea/d5/4daef38a2145e6ab26d2b555ac936ae15adcec818644eb069e6663caff42/pathmodel-0.1.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b43f642468bcde91c79b8e7484179406", "sha256": "9ccfaf24a9854884c3ba6c289f2bfe33d0af0ab8bcb90c8cb1ef43b61c88679f" }, "downloads": -1, "filename": "pathmodel-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b43f642468bcde91c79b8e7484179406", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68237, "upload_time": "2021-04-14T18:20:02", "upload_time_iso_8601": "2021-04-14T18:20:02.066785Z", "url": "https://files.pythonhosted.org/packages/a5/74/392a4e12d7d8cc5e500c8291c8e9db35ab234ffdaec0e963580be633182a/pathmodel-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "c10c81b2039491f24f2ea9d52430a1ed", "sha256": "0e45c5651d669205357630825885ffb18196c503660bd76eb65694192476dc13" }, "downloads": -1, "filename": "pathmodel-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c10c81b2039491f24f2ea9d52430a1ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51481, "upload_time": "2021-04-14T19:05:37", "upload_time_iso_8601": "2021-04-14T19:05:37.970515Z", "url": "https://files.pythonhosted.org/packages/f4/ff/458365c2376808208b71861d4a6972b33e5dced4ab9163aa33cba496c0c5/pathmodel-0.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "71999517e087beefabda7251e1aa75e4", "sha256": "d5bcaf6f98f0ab9885053fb16b5071e9e300d14ad124d4168f1c55c6dd6726ee" }, "downloads": -1, "filename": "pathmodel-0.2.1.tar.gz", "has_sig": false, "md5_digest": "71999517e087beefabda7251e1aa75e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66855, "upload_time": "2021-04-14T19:05:40", "upload_time_iso_8601": "2021-04-14T19:05:40.462512Z", "url": "https://files.pythonhosted.org/packages/8b/c0/307e1ca76480e8a5ba29aee078b00c846ab298184f6558197c12ee15cda0/pathmodel-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c10c81b2039491f24f2ea9d52430a1ed", "sha256": "0e45c5651d669205357630825885ffb18196c503660bd76eb65694192476dc13" }, "downloads": -1, "filename": "pathmodel-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c10c81b2039491f24f2ea9d52430a1ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51481, "upload_time": "2021-04-14T19:05:37", "upload_time_iso_8601": "2021-04-14T19:05:37.970515Z", "url": "https://files.pythonhosted.org/packages/f4/ff/458365c2376808208b71861d4a6972b33e5dced4ab9163aa33cba496c0c5/pathmodel-0.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "71999517e087beefabda7251e1aa75e4", "sha256": "d5bcaf6f98f0ab9885053fb16b5071e9e300d14ad124d4168f1c55c6dd6726ee" }, "downloads": -1, "filename": "pathmodel-0.2.1.tar.gz", "has_sig": false, "md5_digest": "71999517e087beefabda7251e1aa75e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66855, "upload_time": "2021-04-14T19:05:40", "upload_time_iso_8601": "2021-04-14T19:05:40.462512Z", "url": "https://files.pythonhosted.org/packages/8b/c0/307e1ca76480e8a5ba29aee078b00c846ab298184f6558197c12ee15cda0/pathmodel-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }