view dimet_isotopologues_plot.xml @ 3:b761f919732d draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/DIMet commit 0e7c185547d51ec3fc8ff2d87ac7e2b6d9ae0b0f
author iuc
date Mon, 04 Mar 2024 20:01:33 +0000
parents 31b19ad28c81
children 89ca62980a2e
line wrap: on
line source

<tool id="dimet_@EXECUTABLE@" name="dimet @TOOL_LABEL@" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="20.05">
    <description>
        Figures of isotopologues proportions by metabolite, as stacked barplots (by DIMet)
    </description>
    <macros>
        <token name="@TOOL_LABEL@">isotopologues plot</token>
        <token name="@EXECUTABLE@">isotopologues_plot</token>
        <import>macros.xml</import>
    </macros>
    <expand macro="requirements"/>
    <command detect_errors="exit_code"><![CDATA[
    @INIT_CONFIG@
    @INIT_ISOTOPOLOGUE_PLOT@
    @INIT_PLOT_CONDITIONS@
    @INIT_TIMEPOINTS@
    HYDRA_FULL_ERROR=1 python -m dimet
        -cp '$__new_file_path__/config'
        '++hydra.run.dir=isotopologue_proportions_plot'
        '++figure_path=figures'
        '++table_path=tables'
        '++analysis={
            dataset:{
                _target_:dimet.data.DatasetConfig,
                name: "Galaxy DIMet run"
            },
            method:{
                _target_: dimet.method.IsotopologueProportionsPlotConfig,
                label: isotopologue_proportions_plot,
                name: "Generate isotopologues proportion plots",
                barcolor: timepoint,
                axisx: condition,
                max_nb_carbons_possible: '${output_options.max_nb_carbons_possible}',
                appearance_separated_time: '${output_options.appearance_separated_time}', ## adds a space between timepoints, conditions stay comparative
                split_plots_by_condition: '${output_options.split_plots_by_condition}', ## prints each condition in independent plots
                x_ticks_text_size: ${output_options.x_ticks_text_size},
                y_ticks_text_size: ${output_options.y_ticks_text_size},
                as_grid: ${output_options.as_grid},
                figure_format:${output_options.figure_format},
                sharey:${output_options.sharey}
            },
            label: isotopologue_proportions_plot
        }'
        '++analysis.dataset.label='
        '++analysis.timepoints=${timepoints}'
        '++analysis.inner_numbers_size='${output_options.inner_numbers_size}''
        '++analysis.width_each_stack='${output_options.width_each_stack}''
        '++analysis.method.height_each_stack='${output_options.height_each_stack}''
        '++analysis.dataset.subfolder='
        '++analysis.dataset.conditions=${conditions}'
        '++x_text='metabolites''

        #if $metadata_path:
            '++analysis.dataset.metadata=metadata'
        #end if
        #if $isotop_prop_file:
            '++analysis.dataset.isotopologue_proportions=isotop_prop'
        #end if
    @REMOVE_CONFIG@
    ]]></command>
    <inputs>
        <expand macro="input_parameters_isotopologue"/>
        <expand macro="plot_factor_list"/>
        <expand macro="timepoint"/>
        <section name="output_options" title="Output options">
            <param name="figure_format" type="select" value="pdf" display="radio" label="Select output figure format" help="Please enter at max 1 format">
                <option value="pdf">Pdf</option>
                <option value="svg">Svg</option>
            </param>
            <param name="appearance_separated_time" type="boolean" value="false" label="appearance separated time"
                   help="Default value is false."/>
            <param name="split_plots_by_condition" type="boolean" value="false" label="split plots by condition"
                   help="Default value is false."/>
            <param name="as_grid" type="boolean" value="false" label="plot as grid"
                   help="Default value is false."/>
            <param name="sharey" type="boolean" value="false" label="share y axis"
                   help="Default value is false."/>
            <param name="x_ticks_text_size" type="integer" min="1" max="24" value="18" label="xticks text size"
                   help="Default value is 18."/>
            <param name="y_ticks_text_size" type="integer" min="1" max="24" value="18" label="yticks text size"
                   help="Default value is 18."/>
            <param name="height_each_stack" type="float" min="1.0" max="10.0" value="4.6" label="height of each stack"
                   help="Default value is 4.6."/>
            <param name="width_each_stack" type="float" min="0.1" max="5.0" value="3.0" label="width of each stack"
                   help="Default value is 3.0."/>
            <param name="inner_numbers_size" type="integer" min="1" max="20" value="13" label="inner number size"
                   help="Default value is 13."/>
            <param name="max_nb_carbons_possible" type="integer" min="1" max="20" value="12" label="max number carbons possible"
                   help="Default value is 12."/>
        </section>
    </inputs>

    <outputs>
        <collection name="report" type="list">
            <discover_datasets pattern="__designation_and_ext__" directory="figures"/>
        </collection>
    </outputs>
    <tests>
        <test>
            <param name="metadata_path" ftype="tabular" value="example2_metadata.csv"/>
            <param name="isotop_prop_file" ftype="tabular" value="CorrectedIsotopologues_reduced.csv"/>
            <repeat name="plot_factor_list">
                <param name="condition" value="Control"/>
            </repeat>
            <repeat name="plot_factor_list">
                <param name="condition" value="L-Cycloserine"/>
            </repeat>
            <param name="timepoint" value='T0,T2h'/>
            <section name="output_options">
                <param name="figure_format" value="svg"/>
                <param name="appearance_separated_time" value="false"/>
                <param name="split_plots_by_condition" value="false"/>
                <param name="as_grid" value="false"/>
                <param name="sharey" value="false"/>
                <param name="inner_numbers_size" value="13"/>
                <param name="max_nb_carbons_possible" value="12"/>
                <param name="width_each_stack" value="3.0"/>
                <param name="height_each_stack" value="4.6"/>
                <param name="x_ticks_text_size" value="18"/>
                <param name="y_ticks_text_size" value="18"/>
            </section>
            <output_collection name="report" type="list" count="13">
                <element file="Isotopologues_cell-Fructose_1,6-bisphosphate.svg"  name="Isotopologues_cell-Fructose_1,6-bisphosphate" ftype="svg" compare="sim_size" delta="100"/>
                <element file="Isotopologues_cell-L-Aspartic_acid.svg" name="Isotopologues_cell-L-Aspartic_acid" ftype="svg" compare="sim_size" delta="100"/>
                <element file="Isotopologues_cell-L-Glutamic_acid.svg" name="Isotopologues_cell-L-Glutamic_acid" ftype="svg" compare="sim_size" delta="100"/>
                <element file="Isotopologues_cell-L-Glutamine.svg" name="Isotopologues_cell-L-Glutamine" ftype="svg" compare="sim_size" delta="100"/>
                <element file="Isotopologues_cell-L-Lactic_acid.svg" name="Isotopologues_cell-L-Lactic_acid" ftype="svg" compare="sim_size" delta="100"/>
                <element file="Isotopologues_cell-L-Lysine.svg" name="Isotopologues_cell-L-Lysine" ftype="svg" compare="sim_size" delta="100"/>
                <element file="Isotopologues_cell-L-Proline.svg" name="Isotopologues_cell-L-Proline" ftype="svg" compare="sim_size" delta="100"/>
                <element file="Isotopologues_cell-L-Serine.svg" name="Isotopologues_cell-L-Serine" ftype="svg" compare="sim_size" delta="100"/>
                <element file="Isotopologues_med-L-Lactic_acid.svg" name="Isotopologues_med-L-Lactic_acid" ftype="svg" compare="sim_size" delta="100"/>
                <element file="Isotopologues_med-L-Lysine.svg" name="Isotopologues_med-L-Lysine" ftype="svg" compare="sim_size" delta="100"/>
                <element file="Isotopologues_med-L-Proline.svg" name="Isotopologues_med-L-Proline" ftype="svg" compare="sim_size" delta="100"/>
                <element file="Isotopologues_med-L-Serine.svg" name="Isotopologues_med-L-Serine" ftype="svg" compare="sim_size" delta="100"/>
                <element file="legend_isotopologues_stackedbars.svg" name="legend_isotopologues_stackedbars" ftype="svg" compare="sim_size" delta="100"/>
            </output_collection>
        </test>
    </tests>
    <help><![CDATA[
This module is part of DIMet: Differential analysis of Isotope-labeled targeted Metabolomics data (https://pypi.org/project/DIMet/).

DIMet isotopologues plot performs stacked-bars figures for visualization of the isotopologues proportions across all given conditions and all/selected time points, for each metabolite. All the (selected) metabolites are processed automatically.

The figures in .pdf format are of publication quality, and as they are vectorial images you can open them and customize aesthetics with a professional image software such as Inkscape, Adobe Illustrator, Sketch,  CorelDRAW, etc.


    **Input data files**

For running DIMet @EXECUTABLE@ you need the following .csv files :

- The **isotopologue proportions** file, and

- The metadata file, a unique file with the description of the samples. This file is compulsory (see section **Metadata File Information**).


The isotopologue proportions file must be organized as a matrix:

- The first column must contain isotopologues IDs that are unique (not repeated) within the file.

- The rest of the columns correspond to the samples

- The rows correspond to the isotopologues

- The values must be tab separated, with the first row containing the sample/column labels.



Example - **Isotopologue proportions**:

    =============== ================== ================== ================== ================== ================== ==================
    ID              **MCF001089_TD01** **MCF001089_TD02** **MCF001089_TD03** **MCF001089_TD04** **MCF001089_TD05** **MCF001089_TD06**
    =============== ================== ================== ================== ================== ================== ==================
    2_3-PG_m+0      0.023701408        0.026667837        0.003395407        0.05955            0.034383527        0.12
    2_3-PG_m+1      0.0                0.0                0.0                0.0                0.4                0.12
    2_3-PG_m+2      0.015379329        0.01506            0.017029723        0.35483229         0.54131313         0.743
    2_3-PG_m+3      0.960919263        0.958268099        0.97957487         0.581310816        0.017029723        0.017
    2-OHGLu_m+0     0.972778716        0.960016157        0.238843937        0.234383527        0.9998888          0.015064063
    2-OHGLu_m+1     0.0                0.0                0.0                0.0                0.0001112          0.960919263
    =============== ================== ================== ================== ================== ================== ==================


**Metadata File Information**

Provide a tab-separated file that has the names of the samples in the first column and one header row.
Column names must be exactly in this order:

   name_to_plot
   condition
   timepoint
   timenum
   compartment
   original_name


Example **Metadata File**:


    ==================== =============== ============= ============ ================ =================
    **name_to_plot**     **condition**   **timepoint** **timenum**  **compartment**   **original_name**
    -------------------- --------------- ------------- ------------ ---------------- -----------------
    Control_cell_T0-1    Control         T0            0            cell             MCF001089_TD01
    Control_cell_T0-2    Control         T0            0            cell             MCF001089_TD02
    Control_cell_T0-3    Control         T0            0            cell             MCF001089_TD03
    Tumoral_cell_T0-1    Tumoral         T0            0            cell             MCF001089_TD04
    Tumoral_cell_T0-2    Tumoral         T0            0            cell             MCF001089_TD05
    Tumoral_cell_T0-3    Tumoral         T0            0            cell             MCF001089_TD06
    Tumoral_cell_T24-1   Tumoral         T24           24           cell             MCF001089_TD07
    Tumoral_cell_T24-2   Tumoral         T24           24           cell             MCF001089_TD08
    Tumoral_cell_T24-3   Tumoral         T24           24           cell             MCF001090_TD01
    Control_med_T24-1    Control         T24           24           med              MCF001090_TD02
    Control_med_T24-2    Control         T24           24           med              MCF001090_TD03
    Tumoral_med_T24-1    Tumoral         T24           24           med              MCF001090_TD04
    Tumoral_med_T24-2    Tumoral         T24           24           med              MCF001090_TD05
    Control_med_T0-1     Control         T0            0            med              MCF001090_TD06
    Tumoral_med_T0-1     Tumoral         T0            0            med              MCF001090_TD07
    Tumoral_med_T0-2     Tumoral         T0            0            med              MCF001090_TD08
    ==================== =============== ============= ============ ================ =================


The column **original_name** must have the names of the samples as given in your data.

The column **name_to_plot** must have the names as you want them to be (or set identical to original_name if you prefer). To set names that
are meaningful is a better choice, as we will take them to display the results.

The column **timenum** must contain only the numeric part of the timepoint, for example 2,0, 10, 100 (this means, without letters ("T", "t", "s", "h" etc)
nor any other symbol). Make sure these time numbers are in the same units (but do not write the units here!).

The column **compartment** is an abbreviation, coined by you, for the compartments. This will be used for the results' files names: the longer the
compartments names are, the longer the output files' names! Please pick short and clear abbreviations to fill this column.


**Running the analysis**


You can precise how you want your analysis to be executed, with the parameters:

- **conditions**: the conditions present in your data, exactly in the ORDER you want them to appear in the x axis of each figure.

- **timepoints**: timepoints to include for the figures.

- **width_each_stack** : the desired width (in inches) for the the individual metabolite figure.

- **inner_numbers_size**: by default, the arithmetic mean over the biological replicates for a given isotopologue is displayed in the middle of each bar portion, the default font size is 13.5.  Set to 0 if you do not want to show these values.

There exist hints on use that will guide you, next to the parameters.

The output consist of stacked-bar figures, one by each metabolite, and one legend .pdf file, common to all the produced figures.

**Available data for testing**

You can test our tool with the data from our manuscript https://zenodo.org/record/10579862 (the pertinent
files for you are located in the subfolders inside the data folder).
You can also use the minimal data examples from https://zenodo.org/record/10579891

 ]]>
    </help>
    <expand macro="citations"/>
</tool>