view rp2paths.xml @ 8:0ab78638059c draft default tip

planemo upload for repository https://github.com/brsynth/rp2paths commit 317cbbd78126bdbffe626b327924953768c5a17f-dirty
author tduigou
date Mon, 06 Oct 2025 09:56:09 +0000
parents f3843f6b7332
children
line wrap: on
line source

<tool id="rp2paths" name="RP2paths" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.09"
    license="MIT">
    <description>Enumerate and seperate the different pathways generated by RetroPath2.0</description>
    <macros>
        <token name="@VERSION_SUFFIX@">1</token>
        <token name="@TOOL_VERSION@">2.1.0</token>
    </macros>
    <requirements>
        <requirement type="package" version="@TOOL_VERSION@">rp2paths</requirement>
    </requirements>
    <stdio>
        <regex match="TIMEOUT:" level="fatal" />
        <regex match="ERROR:" level="fatal" />
        <regex match="WARNING:" level="warning" />
    </stdio>
    <command detect_errors="exit_code"><![CDATA[
        mkdir out &&
        python -m rp2paths --no-color all
        '$rp2_pathways'
        --outdir out
        --timeout '$path_enum.timeout' 
        #if str($general.forward) == 'true'
            --forward
        #end if
        #if $cofactor_removal.cofile
            --cofile '$cofactor_removal.cofile'
        #end if
        #if str($scope.mindepth) == 'true'
            --minDepth
        #end if
        #if $scope.sink
            --customsinkfile '$scope.sink'
        #end if
        --maxsteps '$path_enum.maxsteps'
        --maxpaths '$path_enum.maxpaths'
        #if str($path_enum.unfold) == 'true'
            --unfold_compounds
        #end if
        #set cmp_ids = []
        #for $x in $path_enum.rep_include_path
            #silent cmp_ids.append(str($x.cmp_id))
        #end for
        #if len(cmp_ids) > 0
            #set cmp_id = ' '.join($cmp_ids)
            --onlyPathsStartingBy $cmp_id
        #end if
        #set cmp_ids = []
        #for $x in $path_enum.rep_exclude_path
            #silent cmp_ids.append(str($x.cmp_id))
        #end for
        #if len(cmp_ids) > 0
            #set cmp_id = ' '.join($cmp_ids)
            --notPathsStartingBy $cmp_id
        #end if 
        --target '$dev.target' &&
        mv out/compounds.txt out/compounds.tsv &&
        cp out/compounds.tsv '$compounds' &&
        if test -f 'out/out_paths.csv'; then
            cp out/out_paths.csv '$master_pathways';
        fi
    ]]></command>
    <inputs>
        <param name="rp2_pathways" type="data" format="csv" label="RetroPath2.0 Pathways"
            help="Retrosynthesis network CSV file outputted by the RetroPath2 tool which desribes the network linking the targeted compound to the chassis." />
        <section name="general" title="General" expanded="false">
            <param
                name="forward" type="boolean" checked="false" label="Forward"
                help="Consider reactions in the forward direction" />
        </section>
        <section name="cofactor_removal" title="Cofactor removal" expanded="False">
            <param name="cofile"
                type="data" format="csv" optional="True" label="List of cofactors" />
        </section>
        <section name="scope" title="Scope" expanded="False">
            <param
                name="mindepth" type="boolean" checked="false" label="Minimal Depth Scope Only"
                help="Use minimal depth scope only, i.e. stop the scope computation as as soon an a first minimal path linking target to sink is found" />
            <param
                name="sink" type="data" format="tabular" optional="True"
                label="List of custom sinks"
                help="Listing compounds to consider as sink compounds. Sink compounds should be provided by their IDs, as used in the reaction.erxn file" />
        </section>
        <section name="path_enum" title="Pathways enumeration" expanded="false">
            <param name="timeout" type="integer" value="1800" label="Time Out"
                help="Time out before killing a process (in seconds), default: 30 minutes." />
            <param
                name="maxsteps" type="integer" min="0" value="0" max="20" label="Max steps"
                help="Cutoff on the maximum number of steps in a pathways. 0 (default) for unlimited number of steps" />
            <param
                name="maxpaths" type="integer" min="0" value="0" max="20" label="Max pathways"
                help="Cutoff on the maximum number of pathways. 0 (default) for unlimited number of pathways" />
            <param
                name="unfold" type="boolean" checked="false" label="Unfold pathways"
                help="Unfold pathways based on equivalencie of compounds (can lead to combinatorial explosion)." />
            <repeat name="rep_include_path" title="Only include pathways starting by compounds.."
                help="List of compounds IDs to consider. If specified, only pathways making use of at least one of these compounds as initial substrate (first step of a pathway) will be returned. Leave empty to keep all.">
                <param name="cmp_id" type="text" label="Pathway label"
                    help="List of compounds IDs to consider. If specified, only paths making use of at least one of these compounds as initial substrate (first step of a pathway) are kept.">
                    <validator type="empty_field" message="Not empty" />
                </param>
            </repeat>
            <repeat name="rep_exclude_path" title="Exclude pathways starting by compounds.."
                help="List of compounds IDs to exclude. If specifed, pathways making use of any of these compounds as unique initial substrate will be filtered out. Leave empty for no exclusion.">
                <param name="cmp_id" type="text" label="Path label"
                    help="List of compounds IDs. If specifed, paths making use of one of these compounds as unique initial substrate will be filtered out">
                    <validator type="empty_field" message="Not empty" />
                </param>
            </repeat>
        </section>
        <section name="dev" title="Dev" expanded="false">
            <param
                name="target" type="text" value="TARGET_0000000001"
                label="Target compound internal ID (Internal)"
                help="This internal ID specifies which compound should be considered as the targeted compound. The default behavior is to consider as the target the first compound used as a source compound in a first iteration of a metabolic exploration. Let this value as it is except if you know what you are doing" />
        </section>
    </inputs>
    <outputs>
        <data name="master_pathways" format="csv"
            label="${tool.name} on ${rp2_pathways.name} : Enumerated Pathways" />
        <data name="compounds" format="tabular"
            label="${tool.name} on ${rp2_pathways.name} : Compounds" />
    </outputs>
    <tests>
        <test>
            <!-- test 1: check if identical outputs are produced with default parameters  -->
            <param name="rp2_pathways" value="retropath2_pathways.csv" />
            <output name="master_pathways" file="rp2paths_pathways.csv" ftype="csv" compare="diff" />
            <output name="compounds" file="rp2paths_compounds.tsv" ftype="tabular" compare="diff" />
        </test>
    </tests>
    <help><![CDATA[
RP2paths
========


**RP2paths** extracts the set of heterologous pathways that lies in a metabolic space file outputted by the `RetroPath2.0 workflow <https://www.myexperiment.org/workflows/4987.html>`_ into individual pathways and enumerate them. This analysis is required to ensure that only pathways fulfilling all the precursor needs are retained for further analysis. This tool takes as input a retrosynthesis network in the CSV file produced by `RetroPath2.0 <https://toolshed.g2.bx.psu.edu/view/tduigou/retropath2/9c8ac9980bd6>`_ , and outputs the enumerated pathways (using EC numbers) as well as the structure of involved chemicals (as SMILES: Simplified Molecular-Input Line-Entry System) in TSV format.


.. image:: ${static_path}/images/enumerated_pathways.png
    :width: 40 %
    :align: center

|

Output
------

* **Enumerated Pathways**\ : Describes all the indiviudal enumerated pathways that produce the compound of interest.
* **Compounds**\ : Describes the structure of all the chemical species involved in all pathways as SMILES (Simplified Molecular-Input Line-Entry System).
    ]]></help>
    <creator>
        <organization name="BioRetroSynth" url="https://github.com/brsynth" />
    </creator>
    <citations>
        <citation type="doi">10.1016/j.ymben.2017.12.002</citation>
    </citations>
</tool>