diff gem_escher_visualization.xml @ 0:b79cf44068bc draft default tip

planemo upload for repository https://github.com/AlmaasLab/elixir-galaxy-tools-systemsbiology commit 3f7bec1264a86e1488ee1315dbac0f44675f5171
author iuc
date Fri, 13 Dec 2024 21:32:58 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gem_escher_visualization.xml	Fri Dec 13 21:32:58 2024 +0000
@@ -0,0 +1,154 @@
+<tool id="gem_escher_visualization" name="Pathway visualization" version="@VERSION@" profile="@PROFILE@">
+    <description>
+        of a GEM using Escher
+    </description>
+    <macros>
+        <import>gem_macros.xml</import>
+    </macros>
+    <expand macro="requirements"/>
+    <expand macro="version_command_escher"/>
+    <command>
+        python '$__tool_directory__/gem_escher_visualization.py'
+            -output '${output}'
+            --cb_model_location '${cb_model_location}'
+            #if not $flux_distribution_location == "None":
+                --flux_distribution_location '${flux_distribution_location}'
+            #end if
+            #if not $uptake_constraints_file == "None":
+                --uptake_constraints_file '${uptake_constraints_file}'
+            #end if
+            #if $map_selection.map_selection_select == "upload_map" or $map_selection.map_selection_select == "load_map":
+                --expect_map 'True'
+            #elif $map_selection.map_selection_select == "no_map":
+                --expect_map 'False'
+            #end if
+            #if $map_selection.map_selection_select == "upload_map":
+                --map_upload_name '${map_selection.map_upload_name}'
+            #elif $map_selection.map_selection_select == "load_map":
+                --map_load_name '${map_selection.map_load_name}'
+            #end if
+    </command>
+    <inputs>
+        <expand macro="input_model"/>
+        <param format="tabular,csv" name="flux_distribution_location" type="data" label="Flux distribution to visualize flux for" optional="true"/>
+        <expand macro="input_uptake_constraints"/>
+        <conditional name="map_selection">
+            <param format="select" name="map_selection_select" type="select" label="How would you like to select a map?">
+                <option value="load_map">Load a map from the list below</option>
+                <option value="upload_map">Upload a map</option>
+                <option value="no_map">Don't use a map (I'll draw my own from scratch)</option>
+            </param>
+            <when value="load_map">
+                <param format="select" name="map_load_name" type="select" label="Map to load" optional="false">
+                    <option value="iMM904.Central carbon metabolism">iMM904 (S. cerevisiae), Central carbon metabolism</option>
+                    <option value="RECON1.Inositol retinol metabolism">RECON1 (H. sapiens), Inositol retinol metabolism</option>
+                    <option value="RECON1.Glycolysis TCA PPP">RECON1 (H. sapiens), Glycolysis TCA PPP</option>
+                    <option value="RECON1.Tryptophan metabolism">RECON1 (H. sapiens), Tryptophan metabolism</option>
+                    <option value="RECON1.Carbohydrate metabolism">RECON1 (H. sapiens), Carbohydrate metabolism</option>
+                    <option value="RECON1.Amino acid metabolism (partial)">RECON1 (H. sapiens), Amino acid metabolism (partial)</option>
+                    <option value="iJO1366.Nucleotide metabolism">iJO1366 (E. coli), Nucleotide metabolism</option>
+                    <option value="iJO1366.Fatty acid biosynthesis (saturated)">iJO1366 (E. coli), Fatty acid biosynthesis (saturated)</option>
+                    <option value="iJO1366.Nucleotide and histidine biosynthesis">iJO1366 (E. coli), Nucleotide and histidine biosynthesis</option>
+                    <option value="e_coli_core.Core metabolism">e_coli_core, Core metabolism</option>
+                    <option value="iJO1366.Central metabolism">iJO1366 (E. coli), Central metabolism</option>
+                    <option value="iJO1366.Fatty acid beta-oxidation">iJO1366 (E. coli), Fatty acid beta-oxidation</option>
+                </param>
+            </when>
+            <when value="upload_map">
+                <param format="txt" name="map_upload_name" type="data" label="Map to use for visualizing fluxes" optional="true"/>
+            </when>
+            <when value="no_map">
+                <!-- Do nothing -->
+            </when>
+        </conditional>
+    </inputs>
+    <outputs>
+        <data name="output" format="html" label="${tool.name} on ${on_string}"/>
+    </outputs>
+    <tests>
+        <!-- Test 1: Valid E. coli core model, no map -->
+        <test>
+            <param name="cb_model_location" value="textbook_model_cobrapy.xml"/>
+            <conditional name="map_selection">
+                <param name="map_selection_select" value="no_map"/>
+            </conditional>
+            <output name="output">
+                <assert_contents>
+                    <has_line line="     var data = get_data();"/>
+                </assert_contents>
+            </output>
+        </test>
+        <!-- Test 2: Valid E. coli core model, load map -->
+        <test>
+            <param name="cb_model_location" value="textbook_model_cobrapy.xml"/>
+            <conditional name="map_selection">
+                <param name="map_selection_select" value="load_map"/>
+                <param name="map_load_name" value="e_coli_core.Core metabolism"/>
+            </conditional>
+            <output name="output">
+                <assert_contents>
+                    <has_line line="     var data = get_data();"/>
+                </assert_contents>
+            </output>
+        </test>
+        <!-- Test 3: Valid E. coli core model, upload map -->
+        <test>
+            <param name="cb_model_location" value="textbook_model_cobrapy.xml"/>
+            <conditional name="map_selection">
+                <param name="map_selection_select" value="upload_map"/>
+                <param name="map_upload_name" value="e_coli_core_test_map.json"/>
+            </conditional>
+            <output name="output">
+                <assert_contents>
+                    <has_line line="     var data = get_data();"/>
+                </assert_contents>
+            </output>
+        </test>
+        <!-- Test 4: Invalid model, no map -->
+        <test expect_failure="true">
+            <param name="cb_model_location" value="invalid_format.txt"/>
+            <conditional name="map_selection">
+                <param name="map_selection_select" value="no_map"/>
+            </conditional>
+            <assert_stderr>
+                <has_text text="The model could not be read"/>
+            </assert_stderr>
+        </test>
+    </tests>
+    <help><![CDATA[
+        Escher Visualization Tool
+
+        Overview
+
+        This tool generates an interactive HTML visualization of metabolic flux distributions in a Genome-scale Metabolic Model (GEM) using Escher.
+
+        Inputs
+
+        * Model File (Required): COBRA-compatible metabolic model file
+        * Flux Distribution (Optional): a pre-calculated flux distribution
+        * Model constraints (Optional): constraints to apply during model simulation if no flux distribution is provided
+        * Map Selection (Optional): maps for common metabolic models
+
+        Output
+
+        The tool generates an interactive HTML file that:
+        * Displays metabolic pathways with reaction fluxes
+        * Allows zooming and panning
+        * Enables hovering over reactions for detailed information
+        * Provides options for customizing the visualization
+
+        Tips
+
+        * Ensure your model is properly formatted and constrained
+        * For large models, consider visualizing specific subsystems
+        * Custom maps should follow Escher's JSON format
+        * The visualization works best with modern web browsers
+
+        For more information about Escher, visit: https://escher.github.io/
+    ]]></help>
+    <citations>
+        <expand macro="citation_escher"/>
+        <expand macro="citation_pandas"/>
+        <expand macro="citation_cobrapy"/>
+    </citations>
+</tool>