view physiofit.xml @ 1:52dddad92226 draft

planemo upload for repository https://github.com/MetaSys-LISBP/PhysioFit commit 3d93a125fa9636cc64663a0e94f3e089eb2d8aff
author workflow4metabolomics
date Wed, 16 Nov 2022 17:16:06 +0000
parents 198d81ccc75e
children 232ad69fc93c
line wrap: on
line source

<tool id='physiofit' name='PhysioFit' profile='21.09' version='@TOOL_VERSION@+galaxy0' python_template_version='3.5'>
    <description>Extracellular flux analysis</description>
    <macros>
        <token name="@TOOL_VERSION@">2.2.1</token>
    </macros>
    <requirements>
        <requirement type='package' version='@TOOL_VERSION@'>physiofit4galaxy</requirement>
    </requirements>
    <command detect_errors='exit_code'><![CDATA[

    physiofit4galaxy --galaxy

    #if $input_selection.input_selector == 'tsv':
        --data '$input_selection.datafile'
    #end if

    #if $input_selection.input_selector == 'json':
        --data '$input_selection.datafile'
        --config '$input_selection.cfgfile'
    #end if


    #if $basic_settings.lag:
        -l
    #end if

    #if $basic_settings.deg_select.deg == 'Yes':
        -d '$basic_settings.deg_select.degconsts'
    #end if

    #if $basic_settings.mc_select.montecarlo == 'Yes':
        -mc '$basic_settings.mc_select.iters'
    #end if

    --vini '$advanced_settings.vini'

    #if $advanced_settings.sd_select.sd == 'Yes':
        -s '$advanced_settings.sd_select.stddevs'
    #end if

    #if $advanced_settings.cm_select.cm == 'Yes':
        -cm '$advanced_settings.cm_select.conc_met_bounds'
    #end if

    #if $advanced_settings.fm_select.fm == 'Yes':
        -fm '$advanced_settings.fm_select.flux_met_bounds'
    #end if

    #if $advanced_settings.cb_select.cb == 'Yes':
        -cb '$advanced_settings.cb_select.conc_biom_bounds'
    #end if

    #if $advanced_settings.fb_select.fb == 'Yes':
        -fb '$advanced_settings.fb_select.flux_biom_bounds'
    #end if

    #if $advanced_settings.verbose:
        -v
    #end if

    -op '$plots' -of '$fluxes' -os '$stats' -oc '$config' 2> $log

    ]]></command>
    <inputs>

        <conditional name='input_selection'>
            <param name='input_selector' type='select' label='Choose the input data type to upload (tsv or json config file. For more information please check the documentation'>
                <option value='tsv'>tsv file</option>
                <option value='json'>config file (json)</option>
            </param>
            <when value='tsv'>
                <param name='datafile' type='data' format='tabular, txt' multiple='true' label='Upload data file containing biomass and concentration values'/>
            </when>
            <when value='json'>
                <param name='datafile' type='data' format='tabular, txt' multiple='true' label='Upload data file containing biomass and concentration values'/>
                <param name='cfgfile' type='data' format='json' label='Upload configuration file' />
            </when>
        </conditional>


        <section name='basic_settings' title='Basic Settings'>

            <param name='lag' type='boolean' argument='--lag' truevalue='-l' falsevalue='' label='Flag to estimate lag phase'/>

            <conditional name='deg_select'>
                <param name='deg' type='select' label='Select yes to add degradation constants'>
                    <option value='No'>No</option>
                    <option value='Yes'>Yes</option>
                </param>
                <when value='Yes'>
                    <param type='text' name='degconsts' value='{}' label='Enter degradation constants in dictionary format (see docs for more information)'>
                        <sanitizer>
                            <valid>
                                <add value='"'/>
                                <add value='{'/>
                                <add value='}'/>
                            </valid>
                        </sanitizer>
                    </param>
                </when>
            </conditional>

            <conditional name='mc_select'>
                <param name='montecarlo' type='select' label='Select yes for sensitivity analysis'>
                    <option value='Yes'>Yes</option>
                    <option value='No'>No</option>
                </param>
                <when value='Yes'>
                    <param name='iters' type='integer' value='100' label='Number of iterations for sensitivity analysis'/>
                </when>
            </conditional>

        </section>


        <section name='advanced_settings' title='Advanced Settings'>

            <param name='vini' type='float' value='1' label='Initial value for fluxes to estimate' />

            <conditional name='sd_select'>
                <param name='sd' type='select' label='Select yes to add standard deviations'>
                    <option value='No'>No</option>
                    <option value='Yes'>Yes</option>
                </param>
                <when value='Yes'>
                    <param name='stddevs' type='text' value='{}' label='Standard deviation on measurements. Give SDs in dictionary format (see docs for more information)'>
                        <sanitizer>
                            <valid>
                                <add value='"'/>
                                <add value='{'/>
                                <add value='}'/>
                            </valid>
                        </sanitizer>
                    </param>
                </when>
            </conditional>

            <conditional name='cm_select'>
                <param name='cm' type='select' label='Flag to add bounds on metabolite concentrations'>
                    <option value='No'>No</option>
                    <option value='Yes'>Yes</option>
                </param>
                <when value='Yes'>
                    <param name='conc_met_bounds' type='text' value='()' label='Bounds on metabolite concentrations. Bounds should be given in tuple format (see docs for more information)'/>

                </when>
            </conditional>

            <conditional name='fm_select'>
                <param name='fm' type='select' label='Select yes to add bounds on metabolite fluxes'>
                    <option value='No'>No</option>
                    <option value='Yes'>Yes</option>
                </param>
                <when value='Yes'>
                    <param name='flux_met_bounds' type='text' value='()' label='Bounds on metabolite fluxes. Bounds should be given in tuple format (see docs for more information)' />
                </when>
            </conditional>

            <conditional name='cb_select'>
                <param name='cb' type='select' label='Select yes to add bounds on biomass concentrations'>
                    <option value='No'>No</option>
                    <option value='Yes'>Yes</option>
                </param>
                <when value='Yes'>
                    <param name='conc_biom_bounds' type='text' value='()' label='Bounds on biomass concentrations. Bounds should be given in tuple format (see docs for more information)' />
                </when>
            </conditional>

            <conditional name='fb_select'>
                <param name='fb' type='select' label='Select yes to add bounds on biomass fluxes'>
                    <option value='No'>No</option>
                    <option value='Yes'>Yes</option>
                </param>
                <when value='Yes'>
                    <param name='flux_biom_bounds' type='text' value='()' label='Bounds on biomass fluxes. Bounds should be given in tuple format (see docs for more information)' />
                </when>
            </conditional>

            <param name='verbose' type='boolean' argument='--verbose' truevalue='-v' falsevalue='' label='Flag to get debug information'/>

        </section>

    </inputs>

    <outputs>
    <data name='plots' label='Plots' format='pdf'/>
    <data name='fluxes' label='Flux_results' format='tabular'/>
    <data name='stats' label='Stat_results' format='tabular'/>
    <data name='config' label='Config_file' format='json'/>
    <data name='log' label='Run_Log' format='txt'/>
    </outputs>

    <tests>
        <test>
            <param name='input_selection|input_selector' value='tsv' />
            <param name='input_selection|datafile' value='KEIO_ROBOT6_1.tsv' />
            <section name='basic_settings'>
                <param name='lag' value='No'/>
                <param name='deg_select|deg' value='No'/>
                <param name='mc_select|montecarlo' value='Yes'/>
            </section>
            <section name='advanced_settings'>
                <param name='vini' value='1'/>
                <param name='sd_select|sd' value='No'/>
                <param name='cm_select|cm' value='No'/>
                <param name='fm_select|fm' value='No'/>
                <param name='cb_select|cb' value='No'/>
                <param name='fb_select|fb' value='No'/>
                <param name='verbose' value='No'/>
            </section>
            <output name='fluxes'>
                <assert_contents>
                    <has_n_columns n='7'/>
                    <has_n_lines n='7'/>
                    <has_size value='767' delta='20'/>
                </assert_contents>
            </output>
        </test>
<!--        <test>-->
<!--            <param name='input_selection|input_selector' value='tsv' />-->
<!--            <param name='input_selection|datafile' value='KEIO_ROBOT6_1.tsv' />-->
<!--            <section name='basic_settings'>-->
<!--                <param name='lag' value='No'/>-->
<!--                <param name='deg_select|deg' value='No'/>-->
<!--                <param name='mc_select|montecarlo' value='No'/>-->
<!--            </section>-->
<!--            <section name='advanced_settings'>-->
<!--                <param name='vini' value='1'/>-->
<!--                <param name='sd_select|sd' value='No'/>-->
<!--                <param name='cm_select|cm' value='No'/>-->
<!--                <param name='fm_select|fm' value='No'/>-->
<!--                <param name='cb_select|cb' value='No'/>-->
<!--                <param name='fb_select|fb' value='No'/>-->
<!--                <param name='verbose' value='No'/>-->
<!--            </section>-->
<!--            <output name='fluxes' file='flux_results.tsv'/>-->
<!--        </test>-->
    </tests>

    <help><![CDATA[
.. class:: warningmark

**PhysioFit is a scientific tool designed to i) quantify exchange (production and consumption) fluxes and ii) cell growth
rate during (batch) cultivations of microorganisms.**

Fluxes are estimated from time-course measurements of extracellular metabolites and biomass concentrations. PhysioFit has been designed to
calculate fluxes in batch experiments, assuming cells are in metabolic (pseudo) steady-state (i.e. fluxes are constant during the experiment).

**PhysioFit includes the following features:**

   * **calculation of growth rate and extracellular (uptake and production) fluxes**.
   * if cell growth has some **lag** (e.g. due to adaptation to a novel environment), lag can be taken into account and lag time estimated.
   * **non-enzymatic degradation** of some metabolites (e.g. DHA or glutamine) can be estimated and taken into account when calculating fluxes.
   * sensitivity analyses are performed to **estimate the precision of the calculated fluxes**.
   * **evaluation of the goodness of fit and visual inspection of the fitted curves**.
   * shipped as a **library** with both a **graphical** and **command line** interface,
   * open-source, free and easy to install everywhere where Python 3 and pip run,
   * biologist-friendly.

It is one of the routine tools that we use at the MetaSys team and `MetaToul platform <http://www.metatoul.fr>`_ to calculate fluxes.

The code is open-source, and available on `GitHub <https://github.com/MetaSys-LISBP/PhysioFit/>`_ under a GPLv3 license.

We strongly encourage you to read the `documentation <https://physiofit.readthedocs.io/en/latest/>`_ before using PhysioFit.

    ]]></help>
    <citations>
        <citation type='bibtex'>
    @misc{githubphysiofit,
      author = {Le Gregam, Loic},
      year = {2022},
      title = {PhysioFit},
      publisher = {Peiro et al.},
      journal = {Appl Environ Microbiol},
      url = {https://journals.asm.org/doi/10.1128/AEM.00768-19},
    }</citation>
        </citations>
</tool>