diff rrparser.xml @ 7:90e260b93a3a draft

planemo upload for repository https://github.com/brsynth/rrparser commit b06816a566855a3f5c83b85fed0923853e562549-dirty
author tduigou
date Wed, 02 Apr 2025 08:16:50 +0000
parents d7882cf07d98
children 2ec2fae2a58d
line wrap: on
line diff
--- a/rrparser.xml	Tue May 30 21:11:17 2023 +0000
+++ b/rrparser.xml	Wed Apr 02 08:16:50 2025 +0000
@@ -1,8 +1,8 @@
 <tool id="rrparser" name="RRules Parser" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.09" license="MIT">
     <description>Retrieve the reaction rules from RetroRules</description>
     <macros>
-        <token name="@VERSION_SUFFIX@">0</token>
-        <token name="@TOOL_VERSION@">2.5.2</token>
+        <token name="@VERSION_SUFFIX@">1</token>
+        <token name="@TOOL_VERSION@">2.7.0</token>
     </macros>
     <requirements>
         <requirement type="package" version="@TOOL_VERSION@">rrparser</requirement>
@@ -20,15 +20,24 @@
             --rules_file '$rules.file'
             --input-format '$rules.input_format'
         #end if
-        --diameters '$diameters'
+        --diameters '$adv.diameters'
         --output-format csv
         --rules-dir "\${TMPDIR:-.}"
-        #if str($compress) == "true":
+        #if str($adv.compress) == "true":
             --outfile '$out_rules'.csv.gz
             && mv '$out_rules'.csv.gz '$out_rules'
         #else:
             --outfile '$out_rules'
         #end if
+        #if str($adv.input_conditional_ec.input_type) == "in"
+            --ec '$adv.input_conditional_ec.input_ec_in'
+        #end if
+        #if str($adv.input_conditional_ec.input_type) == "out"
+            --ecx '$adv.input_conditional_ec.input_ec_out'
+        #end if
+        #if $adv.input_scores_file
+            --scores '$adv.input_scores_file'
+        #end if
     ]]></command>
     <inputs>
         <conditional name="rules">
@@ -49,17 +58,35 @@
                 </param>
             </when>
         </conditional>
-        <param argument="--diameters" type="select" display="checkboxes" multiple="True" label="Select the diameters of the reactions rules" help=" Diameter of the sphere including the atoms around the reacting center (default is including all values: 2,4,6,8,10,12,14,16). The higher is the diameter, the more specific are the rules">
-            <option selected="true" value="2">2</option>
-            <option selected="true" value="4">4</option>
-            <option selected="true" value="6">6</option>
-            <option selected="true" value="8">8</option>
-            <option selected="true" value="10">10</option>
-            <option selected="true" value="12">12</option>
-            <option selected="true" value="14">14</option>
-            <option selected="true" value="16">16</option>
-        </param>
-        <param name="compress" type="boolean" checked="false" label="Compress output" />
+        <section name="adv" title="Advanced Options" expanded="false" >
+            <param name="compress" type="boolean" checked="false" label="Compress output" />
+            <param name="input_scores_file" type="data" format="csv" optional="True" label="Score File" help="Filename containing rules names and scores" />
+            <conditional name="input_conditional_ec">
+                <param name="input_type" type="select" label="Filter based on EC number">
+                    <option value="no" selected="True">No</option>
+                    <option value="in">EC numbers to keep</option>
+                    <option value="out">EC numbers to remove</option>
+                </param>
+                <when value="no" />
+                <when value="in">
+                    <param name="input_ec_in" type="data" format="csv" label="File containing EC numbers" help="EC numbers on one line separted by a comma" />
+                </when>
+                <when value="out">
+                    <param name="input_ec_out" type="data" format="csv" label="File containing EC numbers" help="EC numbers on one line separted by a comma" />
+                </when>
+            </conditional>
+            <param argument="--diameters" type="select" display="checkboxes" multiple="True" label="Select the diameters of the reactions rules" help=" Diameter of the sphere including the atoms around the reacting center (default is including all values: 2,4,6,8,10,12,14,16). The higher is the diameter, the more specific are the rules">
+                <option selected="true" value="2">2</option>
+                <option selected="true" value="4">4</option>
+                <option selected="true" value="6">6</option>
+                <option selected="true" value="8">8</option>
+                <option selected="true" value="10">10</option>
+                <option selected="true" value="12">12</option>
+                <option selected="true" value="14">14</option>
+                <option selected="true" value="16">16</option>
+            </param>
+        </section>
+        
     </inputs>
     <outputs>
         <data name="out_rules" format="csv" label="${tool.name}(${rules.type}, d=$diameters)" >
@@ -75,7 +102,9 @@
         </test>
         <test>
         <!-- test 2: check if identical outputs are produced with diameters=2,4,6-->
-            <param name="diameters" value="2,4,6"/>
+            <section name="adv">   
+                <param name="diameters" value="2,4,6"/>
+            </section>
             <output name="out_rules" md5="12a55e1a3c7822a35ed799afa59b2aa2"/>
         </test>
         <test>
@@ -86,6 +115,45 @@
             </conditional>
             <output name="out_rules" file="rules_out.csv" ftype="csv" compare="diff"/>
         </test>
+        <test>
+        <!-- test 4 -->
+            <conditional name="rules">
+                <param name="type" value="rules-file"/>
+                <param name="file" value="rules_in.csv" />
+            </conditional>
+            <section name="adv">
+                <conditional name="input_conditional_ec">
+                    <param name="input_type" value="in"/>
+                    <param name="input_ec_in" value="ec.csv"/>
+                </conditional>
+            </section>
+            <output name="out_rules" file="test.4.output.csv" ftype="csv" compare="diff"/>
+        </test>
+        <test>
+            <!-- python -m rrparser -rules_file rules_in.csv -input-format csv -ecx ec.csv -diameters 2,4,6,8,10,12,14,16 -output-format csv -outfile test.5.output.csv -->
+            <conditional name="rules">
+                <param name="type" value="rules-file"/>
+                <param name="file" value="rules_in.csv" />
+            </conditional>
+            <section name="adv">
+                <conditional name="input_conditional_ec">
+                    <param name="input_type" value="out"/>
+                    <param name="input_ec_out" value="ec.csv"/>
+                </conditional>
+            </section>
+            <output name="out_rules" file="test.5.output.csv" ftype="csv" compare="diff"/>
+        </test>
+        <test>
+            <!-- python -m rrparser -rules_file rules_in.csv -input-format csv -diameters 2,4,6,8,10,12,14,16 -output-format csv -outfile rules_scores.csv -scores scores.csv -->
+            <conditional name="rules">
+                <param name="type" value="rules-file"/>
+                <param name="file" value="rules_in.csv" />
+            </conditional>
+            <section name="adv" >
+                <param name="input_scores_file" value="scores.csv" />
+            </section>
+            <output name="out_rules" file="rules_scores.csv" ftype="csv" compare="diff"/>
+        </test>
     </tests>
     <help><![CDATA[
 RRulesParser
@@ -93,7 +161,7 @@
 
 Retrieve the reaction rules from `RetroRules <https://retrorules.org/>`_ extracted from public databases and expressed in the community-standard SMARTS (SMILES arbitrary target specification) format, augmented by a rule representation at different levels of specificity (the atomic environment around the reaction center).
 
-The generated output is a file containing reaction rules which are generic descriptions of chemical reactions that can be used in retrosynthesis workflows (e.g. `Retrosynthesis KNIME Workflow <https://www.myexperiment.org/workflows/4987/versions/2.html>`_) in order to enumerate all possible biosynthetic routes connecting a target molecule to its precursors.
+The generated output is a file containing reaction rules which are generic descriptions of chemical reactions that can be used in retrosynthesis workflows (e.g. `Retrosynthesis KNIME Workflow <https://www.myexperiment.org/workflows/4987.html>`_) in order to enumerate all possible biosynthetic routes connecting a target molecule to its precursors.
 
 Input
 -----
@@ -102,6 +170,8 @@
 * **rules-file**: (string) Filename of reaction rules provided in csv or tsv format.
 * **input_format**: (string) input file format (csv: default, tsv)
 * **diameters**: (integer list) diameter of the sphere including the atoms around the reacting center (default is including all values: 2,4,6,8,10,12,14,16). The higher is the diameter, the more specific are the rules
+* **EC numbers to filter**: retain or remove some EC numbers. A file is expected containing EC numbers separated by a comma on the first line.
+* **Scores file**: file containing rules names and scores
 
 Ouput
 -----