changeset 385:cbb2dcbe768c draft

Uploaded
author francesco_lapi
date Fri, 05 Sep 2025 10:08:39 +0000
parents 8a1213d1393d
children cccbf259459e
files COBRAxy/custom_data_generator.xml
diffstat 1 files changed, 137 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/COBRAxy/custom_data_generator.xml	Fri Sep 05 09:53:40 2025 +0000
+++ b/COBRAxy/custom_data_generator.xml	Fri Sep 05 10:08:39 2025 +0000
@@ -4,18 +4,18 @@
         <import>marea_macros.xml</import>
     </macros>
 
-	<requirements>
+    <requirements>
         <requirement type="package" version="1.24.4">numpy</requirement>
         <requirement type="package" version="2.0.3">pandas</requirement>
-		<requirement type="package" version="0.29.0">cobra</requirement>
+        <requirement type="package" version="0.29.0">cobra</requirement>
         <requirement type="package" version="5.2.2">lxml</requirement>
-	</requirements>
+    </requirements>
 
     <command detect_errors="exit_code">
         <![CDATA[
-      	python $__tool_directory__/custom_data_generator.py
+        python $__tool_directory__/custom_data_generator.py
         --tool_dir $__tool_directory__
-        --medium_selector $cond_medium.medium_selector
+        --medium_selector $cond_model.medium_selector
         #if $cond_model.model_selector == 'Custom_model'
             --input $cond_model.input
             --name $cond_model.name
@@ -23,8 +23,8 @@
             --model $cond_model.model_selector
             --name $cond_model.model_selector
         #end if
-        #if $cond_medium.medium_selector == 'Custom'
-            --medium $cond_medium.medium
+        #if $cond_model.medium_selector == 'Custom'
+            --medium $cond_model.medium
         #end if
         --out_log $log
         --out_tabular $out_tabular
@@ -100,7 +100,136 @@
 
     <data name="out_tabular" format="tabular"
             label="${cond_model.model_selector}_data_tabular"
-            optional="true"/>
+             optional="true"/>
+    </outputs>
+
+    <help>
+    <![CDATA[
+What it does
+-------------
+
+This tool generates four files containing reactions, rules, reaction bounds and medium composition respectively, starting from a custom model in JSON or XML format.
+Reactions and rules can be used as inputs for the RAS and RPS generator tools.
+
+Accepted files:
+    - A model: JSON, XML, MAT or YAML (.yml) file reporting reactions and rules contained in the model. Supported compressed formats: .zip, .gz and .bz2. Filename must follow the pattern: {model_name}.{extension}.[zip|gz|bz2]
+
+Output:
+-------------
+
+The tool generates:
+    - rules: reporting the rules for each reaction in the custom model given. Format: csv (tab separated).
+    - reactions: reporting the reactions in the custom model given. Format: csv (tab separated).
+    - reaction bounds: reporting the lower and upper bounds of each model reaction. Format: csv (tab separated).
+    - medium composition: reporting the list of exchange/transport reactions. Format: csv (tab separated).
+    - a log file (.txt).
+    ]]>
+    </help>
+    <expand macro="citations" />
+</tool><tool id="CustomDataGenerator" name="Custom Data Generator" version="2.0.0">
+    
+    <macros>
+        <import>marea_macros.xml</import>
+    </macros>
+
+    <requirements>
+        <requirement type="package" version="1.24.4">numpy</requirement>
+        <requirement type="package" version="2.0.3">pandas</requirement>
+        <requirement type="package" version="0.29.0">cobra</requirement>
+        <requirement type="package" version="5.2.2">lxml</requirement>
+    </requirements>
+
+    <command detect_errors="exit_code">
+        <![CDATA[
+        python $__tool_directory__/custom_data_generator.py
+        --tool_dir $__tool_directory__
+        --medium_selector $cond_model.medium_selector
+        #if $cond_model.model_selector == 'Custom_model'
+            --input $cond_model.input
+            --name $cond_model.name
+        #else
+            --model $cond_model.model_selector
+            --name $cond_model.model_selector
+        #end if
+        #if $cond_model.medium_selector == 'Custom'
+            --medium $cond_model.medium
+        #end if
+        --out_log $log
+        --out_tabular $out_tabular
+        ]]>
+    </command>
+    <inputs>
+        <conditional name="cond_model">
+            <param name="model_selector" argument="--model_selector" type="select" label="Model:">
+                <option value="HMRcore">HMRcore</option>
+                <option value="Recon">Recon 2.2</option>
+                <option value="ENGRO2"  selected="true">ENGRO 2</option>
+                <option value="Custom_model">Custom</option>
+            </param>
+            <!-- ENGRO2 -->
+            <when value="ENGRO2">
+                <param name="name" argument="--name" type="text" value="ENGRO2" hidden="true" />
+                <conditional name="medium_selector">
+                    <expand macro="options_ras_to_bounds_medium"/>
+                    <when value="Custom">
+                        <param name="medium" argument="--medium" type="data" format="tabular,csv,tsv" label="Custom medium file:" />
+                    </when>
+                </conditional>
+            </when>
+
+            <!-- Recon -->
+            <when value="Recon">
+                <param name="name" argument="--name" type="text" value="Recon" hidden="true" />
+                <param name="medium_selector" argument="--medium_selector" type="select" label="Medium">
+                <option value="Default" selected="true">Default (Recon built-in medium)</option>
+                <option value="Custom">Custom medium file</option>
+                </param>
+                <conditional name="medium_selector">
+                    <when value="Custom">
+                        <param name="medium" argument="--medium" type="data" format="tabular,csv,tsv" label="Custom medium file:" />
+                    </when>
+                </conditional>
+            </when>
+
+            <!-- HMRcore -->
+            <when value="HMRcore">
+                <param name="name" argument="--name" type="text" value="HMRcore" hidden="true" />
+                <param name="medium_selector" argument="--medium_selector" type="select" label="Medium">
+                <option value="Default" selected="true">Default (HMRcore built-in medium)</option>
+                <option value="Custom">Custom medium file</option>
+                </param>
+                <conditional name="medium_selector">
+                    <when value="Custom">
+                        <param name="medium" argument="--medium" type="data" format="tabular,csv,tsv" label="Custom medium file:" />
+                    </when>
+                </conditional>
+            </when>
+
+            <!-- Custom model -->
+            <when value="Custom_model">
+                <param name="input" argument="--input" type="data" format="json,xml" label="Custom model file:" />
+                <param name="name" argument="--name" type="text" label="Model's name:" value="CustomModel" />
+                <param name="medium_selector" argument="--medium_selector" type="select" label="Medium">
+                    <option value="Default" selected="true">Don't use a separate medium file (use model defaults)</option>
+                    <option value="Custom">Custom medium file (required)</option>
+                </param>
+                <conditional name="medium_selector">
+                    <when value="Custom">
+                        <param name="medium" argument="--medium" type="data" format="tabular,csv,tsv" label="Custom medium file:" />
+                    </when>
+                </conditional>
+            </when>
+        </conditional>
+
+    </inputs>
+
+    <outputs>
+    <data name="log" format="txt" label="CustomDataGenerator - Log" />
+
+    <data name="out_tabular" format="tabular"
+            label="${cond_model.model_selector}_data_tabular"
+             optional="true"/>
+    </outputs>
 
     <help>
     <![CDATA[