view 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 source

<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>