view COBRAxy/ras_to_bounds.xml @ 93:7e703e546998 draft

Uploaded
author luca_milaz
date Sun, 13 Oct 2024 11:41:34 +0000
parents
children 45574f99a807
line wrap: on
line source

<tool id="MaREA RAS to bounds" name="RAStoBounds" 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>
        <requirement type="package" version="1.4.2">joblib</requirement>
	</requirements>

    <command detect_errors="exit_code">
        <![CDATA[
      	python $__tool_directory__/ras_to_bounds.py
        --tool_dir $__tool_directory__
        --model_selector $cond_model.model_selector
        --cell_class $cell_class
        #if $cond_model.model_selector == 'Custom'
            --model $model
            --model_name $model.element_identifier
        #end if
        --medium_selector $cond_medium.medium_selector
        #if $cond_medium.medium_selector == 'Custom'
            --medium $medium
        #end if
        --ras_selector $cond_ras.ras_choice
        #if $cond_ras.ras_choice == "True"
        	--input_ras $cond_ras.input_ras
            --classes $cond_ras.classes
        #end if
        --out_log $log
        ]]>
    </command>
    <inputs>
        <conditional name="cond_model">
            <expand macro="options_ras_to_bounds_model"/>
            <when value="Custom">
                <param name="model" argument="--model" type="data" format="json, xml" label="Custom model" />
            </when>
        </conditional> 

        <conditional name="cond_ras">
			<param name="ras_choice" argument="--ras_choice" type="select" label="Do want to use RAS?">
                	<option value="True" selected="true">Yes</option>
                	<option value="False">No</option>
        	</param>
            <when value="True">
                <param name="input_ras" argument="--input_ras" multiple="true" type="data" format="tabular, csv, tsv" label="RAS matrix:" />
                <param name="classes" argument="--classes"  type="text"  value="None" label="Classes:" help="Write here the the classes to assign to each of the uploaded RAS matrices. Example for two RAS matrices:'cellNormal, cellCancer'. If you uploaded just one matrix, leave default value." />
            </when>
        </conditional>  
        
        <conditional name="cond_medium">
            <expand macro="options_ras_to_bounds_medium"/>
            <when value="Custom">
                <param name="medium" argument="--medium" type="data" format="tabular, csv, tsv" label="Custom medium" />
            </when>
        </conditional> 

    </inputs>

    <outputs>
        <data format="txt" name="log" label="RAStoBounds- Log" />
        <data format="tabular" name="cell_class" label="RAStoBounds - Cells class" />
        <collection name="ras_to_bounds" type="list" label="Ras to Bounds">
            <discover_datasets name = "collection" pattern="__name_and_ext__" directory="ras_to_bounds"/>
        </collection>

    </outputs>

    <help>

    <![CDATA[

What it does
-------------

This tool generates the reactions bounds for a given metabolic model (JSON or XML format) both with and without the use of the Reaction Activity Scores (RAS) matrix generated by RAS generator.
Moreover, it enables to use custom/pre-defined growth mediums to constrain exchange reactions. For a custom medium, It is suggested to use the template file returned by the Custom Data Generator tool.
If the RAS matrix, generated by the RAS generator tool, is used, then a bounds file is generated for each cell. Otherwise, a single bounds file is returned.

Accepted files:
    - A model: JSON or XML file reporting reactions and rules contained in the model.   
    - RAS matrix: tab-separated RAS file as returned by RAS generator. It can be a collection of RAS files too (e.g. one RAS matrix for normal cells and one for cancer cells). Note that if multiple RAs matrices are uploaded, the bounds are normalzed across all cells.
    - Classes: If multiple RAS matrices are uploaded, then the tool returns a simple file containing for each cell the class it belongs to (cells coming from the same RAS matrix are assigned to the same class). This file is useful in the Flux enrichment analysis tool.
    - Medium: tab-separated file containing lower and upper-bounds of medium reactions.

Example of custum growth medium file:


+------------+----------------+----------------+
| Reaction ID|   lower_bound  |   upper_bound  |  
+============+================+================+
| r1         |    0.123167    |    0.371355    | 
+------------+----------------+----------------+   
| r2         |    0.268765    |    0.765567    |  
+------------+----------------+----------------+   


Output:
-------------

The tool generates:
    - bounds: reporting the bounds of the model, or cells if RAS is used. Format: tab-separated.
    - Classes: a file containing the class of each cell (only if multiple RAS matrices were uploaded). Format: tab-separated.
    - a log file (.txt).
    ]]>
    </help>
    <expand macro="citations" />
</tool>