view cluster_profiler.xml @ 13:1d6095094e5f draft

planemo upload commit 3305e0bef3621ca618b08e9f2fa79e55ecd11595-dirty
author proteore
date Tue, 25 Sep 2018 08:58:30 -0400
parents 7a5814f0392a
children 0e3ac8fc061c
line wrap: on
line source

<tool id="cluter_profiler" name="clusterProfiler" version="2018.09.25.3">
    <description>
    GO terms classification and enrichment analysis
    </description>
    <requirements>
        <requirement type="package" version="3.4.1">R</requirement>
        <requirement type="package" version="3.5.0">bioconductor-org.hs.eg.db</requirement>
        <requirement type="package" version="3.5.0">bioconductor-org.mm.eg.db</requirement>
        <requirement type="package" version="3.5.0">bioconductor-org.rn.eg.db</requirement>
        <requirement type="package" version="3.4.0">bioconductor-dose</requirement>
        <requirement type="package" version="3.6.0">bioconductor-clusterprofiler</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
        Rscript "$__tool_directory__/GO-enrich.R"
        #if $input.ids == "text"
            --input_type="text"
            --input="$input.txt"
        #else
            --input_type="file"
            --input="$input.file"
            --ncol="$input.ncol"
            --header="$input.header"
        #end if
        
        --id_type="$idti.idtypein"

        --species="$species"

        #if $ggo.go_represent == "true"
            --go_represent="true"
            --level="$ggo.level"
        #else
            --go_represent="false"
        #end if

        #if $ego.go_enrich == "true"
            --go_enrich="true"
            --pval_cutoff="$ego.pval"
            --qval_cutoff="$ego.qval"
            #if $ego.universe.universe_option == "true"
                #if $ego.universe.universe_input.universe_ids == "text"
                    --universe_type="text"
                    --universe="$ego.universe.universe_input.txt"
                #else
                    --universe_type="file"
                    --universe="$ego.universe.universe_input.file"
                    --uncol="$ego.universe.universe_input.ncol"
                    --uheader="$ego.universe.universe_input.header"
                #end if
                --universe_id_type="$ego.universe.universe_idti.universe_idtypein"
            #end if
        #else
            --go_enrich="false"
        #end if
        
        --plot="$plot"        
        --onto_opt="$ontology" > $log
    ]]></command>
    <inputs>
        <conditional name="input" >
            <param name="ids" type="select" label="Provide your identifiers" help="Copy/paste or ID list (Uniprot accession Nb or Entrez Gene ID) from a file (e.g. table)" >
                <option value="text">Copy/paste your identifiers</option>
                <option value="file" selected="true">Input file containing your identifiers</option>
            </param>
            <when value="text" >
                <param name="txt" type="text" label="Copy/paste your identifiers" help='IDs must be separated by spaces into the form field, for example: P31946 P62258' >
                    <sanitizer>
                        <valid initial="string.printable">
                            <remove value="&apos;"/>
                        </valid>
                        <mapping initial="none">
                            <add source="&apos;" target="__sq__"/>
                        </mapping>
                    </sanitizer>
                </param>
            </when>
            <when value="file" >
                <param name="file" type="data" format="txt,tabular" label="Choose a file that contains your list of IDs" help="" />
                <param name="header" type="boolean" checked="true" truevalue="true" falsevalue="false" label="Does your input file contain header?" />
                <param name="ncol" type="text" value="c1" label="The column number of IDs to map" help='For example, fill in "c1" if it is the first column, "c2" if it is the second column and so on' />                
            </when>
        </conditional>
        <conditional name="idti" >
            <param name="idtypein" type="select" label="Select type/source of identifier of your list" help="Please see example of IDs in help section" >
                <option value="Uniprot">UniProt accession number (e.g. P31946)</option>
                <option value="Entrez">Entrez Gene ID (e.g : 4151)</option>
            </param>
            <when value="Uniprot"/>
            <when value="Entrez"/>
        </conditional>
            
        <param name="species" type="select" label="Select a species" >
            <option value="org.Hs.eg.db">Human</option>
            <option value="org.Mm.eg.db">Mouse</option>
            <option value="org.Rn.eg.db">Rat</option>
        </param>
        <conditional name="ggo">
            <param name="go_represent" type="boolean" checked="true" truevalue="true" falsevalue="false" label="Do you want to perform GO categories representation analysis?"/>
            <when value="true">
                <param name="level" type="select" label="Level of the ontology at which the profile has to be built (the higher this number, the deeper the GO level)">
				    <option value="1">1</option>
				    <option value="2">2</option>
				    <option value="3" selected="True">3</option>
			    </param>
            </when>
            <when value="false"/>
        </conditional>
        <conditional name="ego">
            <param name="go_enrich" type="boolean" checked="true" truevalue="true" falsevalue="false" label="Do you want to perform GO categories enrichment analysis?"/>
            <when value="true">
                <param name="pval" type="float" value="0.01" label="P-value cut off"/>
			    <param name="qval" type="float" value="0.05" label="Q-value cut off"/>
                <conditional name="universe" >
                    <param name="universe_option" type="boolean" checked="false" truevalue="true" falsevalue="false" label="Would you like to define your own background IDs?"/>
                    <when value="true">
                        <conditional name="universe_input">
                            <param name="universe_ids" type="select" label="Provide your background IDs list" help="Copy/paste or ID list (Uniprot accession Nb or Entrez Gene ID) from a file (e.g. table)" >
                                <option value="text">Copy/paste your background identifiers</option>
                                <option value="file" selected="true">Input file containing your background identifiers</option>
                            </param>
                            <when value="text" >
                                <param name="txt" type="text" label="Copy/paste your background identifiers" help='IDs must be separated by spaces into the form field, for example: P31946 P62258' >
                                    <sanitizer>
                                        <valid initial="string.printable">
                                            <remove value="&apos;"/>
                                        </valid>
                                        <mapping initial="none">
                                            <add source="&apos;" target="__sq__"/>
                                        </mapping>
                                    </sanitizer>
                                </param>
                            </when>
                            <when value="file" >
                                <param name="file" type="data" format="txt,tabular" label="Choose a file that contains your background IDs list" help="" />
                                <param name="header" type="boolean" checked="true" truevalue="true" falsevalue="false" label="Does your input file contain header?" />
                                <param name="ncol" type="text" value="c1" label="The column number of IDs to map" help='For example, fill in "c1" if it is the first column, "c2" if it is the second column and so on' />                
                            </when>
                        </conditional>
                        <conditional name="universe_idti" >
                            <param name="universe_idtypein" type="select" label="Select type/source of background identifier of your list" help="Please see example of IDs in help section" >
                                <option value="Uniprot">UniProt accession number</option>
                                <option value="Entrez">Entrez Gene ID</option>
                            </param>
                            <when value="Uniprot"/>
                            <when value="Entrez"/>
                        </conditional>
                    </when>
                    <when value="false"/>
                </conditional>
            </when>
            <when value="false"/>
        </conditional>
				
		<param name="ontology" type="select" display="checkboxes" multiple="true" label="Please select GO terms category" optional="false">
            <option value="CC">Cellular Component</option>
            <option value="BP">Biological Process</option>
            <option value="MF">Molecular Function</option>
        </param>
	    
	    <param name="plot" type="select" display="checkboxes" multiple="true" label="Please select your visualization for enrichment analysis" optional="false">
            <option selected = "true" value="dotplot">dot-plot</option>
            <option value="barplot">bar-plot</option>
        </param>
	    
    </inputs>
    <outputs>
        <data name="log" format="tabular" label="Cluster profiler" />
        <collection type="list" label="clusterProfiler text files" name="text_output">
            <discover_datasets pattern="(?P&lt;designation&gt;.+\.csv)" ext="csv"/>
        </collection>
        <collection type="list" label="clusterProfiler diagram outputs" name="graph_output" >
	        <discover_datasets pattern="(?P&lt;designation&gt;.+plot)" ext="png" />
	    </collection>
    </outputs>
    <tests>
        <test>
            <conditional name="input">
                <param name="ids" value="file"/>
                <param name="file" value="Lacombe_et_al_2017_OK.txt"/>
                <param name="header" value="true"/>
                <param name="ncol" value="c1"/>
            </conditional>
            <conditional name="idti">
                <param name="idtypein" value="Uniprot"/>
            </conditional>
            <param name="species" value="org.Hs.eg.db"/>
            <conditional name="ggo">
                <param name="go_represent" value="true"/>
                <param name="level" value="3"/>
            </conditional>
            <conditional name="ego">
                <param name="go_enrich" value="true"/>
                 <conditional name="universe_input">
                    <param name="universe_ids" value="file"/>
                    <param name="file" value="background_ids.txt"/>
                    <param name="header" value="true"/>
                    <param name="ncol" value="c7"/>
                 </conditional>
                 <conditional name="universe_idti" >
                    <param name="universe_idtypein" value="Uniprot"/>
                 </conditional>
            </conditional>
            <param name="ontology" value="CC,BP,MF"/>
            <param name="plot" value="dotplot,barplot"/>
            <output name="log" file="log.txt" />
            <output_collection name="text_output">
                <element name="cluster_profiler_GGO_CC.csv" file="cluster_profiler_GGO_CC.csv" ftype="csv"/>
                <element name="cluster_profiler_EGO_BP.csv" file="cluster_profiler_GGO_BP.csv" ftype="csv"/>
                <element name="cluster_profiler_GGO_MF.csv" file="cluster_profiler_GGO_MF.csv" ftype="csv"/>
                <element name="cluster_profiler_EGO_CC.csv" file="cluster_profiler_EGO_CC.csv" ftype="csv"/>
                <element name="cluster_profiler_EGO_BP.csv" file="cluster_profiler_EGO_BP.csv" ftype="csv"/>
                <element name="cluster_profiler_EGO_MF.csv" file="cluster_profiler_EGO_MF.csv" ftype="csv"/>

            </output_collection>
            <output_collection name="graph_output">
                <element name="GGO_CC_bar-plot" file="GGO_CC_bar-plot" ftype="png" diff="size"/>
                <element name="GGO_BP_bar-plot" file="GGO_BP_bar-plot" ftype="png" diff="size"/>
                <element name="GGO_MF_bar-plot" file="GGO_MF_bar-plot" ftype="png" diff="size"/>
                <element name="EGO_CC_bar-plot" file="EGO_CC_bar-plot" ftype="png" diff="size"/>
                <element name="EGO_BP_bar-plot" file="EGO_BP_bar-plot" ftype="png" diff="size"/>
                <element name="EGO_CC_dot-plot" file="EGO_CC_dot-plot" ftype="png" diff="size"/>
                <element name="EGO_BP_dot-plot" file="EGO_BP_dot-plot" ftype="png" diff="size"/>
            </output_collection>
        </test>
    </tests>
    <help><![CDATA[
       
**Galaxy component based on R package clusterProfiler (see ref below)**
 	
This component allows to perform GO enrichment-analyses.

Given a list of IDs, the tool either 
  (i)  performs gene classification based on GO distribution at a specific level, or
  (ii) calculates GO categories enrichment (over- or under-representation) for the IDs of the input list, compared to a background. 
	User has the possibility to use for this background: either the whole organism, or a user-defined list. In this latter case,
	we recommand to use the "Retrieve tissue-specific expression data" ProteoRE tool to constitute this list according to user
	parameters. 

**Input required**

This component works with Gene ids (e.g : 4151, 7412) or Uniprot accession number (e.g. P31946). 

Two modes are allowed: either by supplying a tabular file (.csv, .tsv, .txt, .tab) including your IDs (identifiers) 
or by copy/pasting your IDs (separated by a space).

 
**Output**

Text (tables) and graphics representing the repartition and/or enrichment of GO categories. 

**User manual / Documentation** of the clusterProfiler R package (functions and parameters):
https://bioconductor.org/packages/3.7/bioc/vignettes/clusterProfiler/inst/doc/clusterProfiler.html
(Very well explained)

**Reference**
 
clusterProfiler R package reference : 
G Yu, LG Wang, Y Han, QY He. clusterProfiler: an R package for comparing biological themes among gene clusters. 
OMICS: A Journal of Integrative Biology 2012, 16(5):284-287. 
doi:[10.1089/omi.2011.0118](http://dx.doi.org/10.1089/omi.2011.0118)

-----

.. class:: infomark

**Galaxy integration**

T.P. Lien Nguyen, Florence Combes, Yves Vandenbrouck CEA, INSERM, CNRS, Grenoble-Alpes University, BIG Institute, FR

Sandra Dérozier, Olivier Rué, Christophe Caron, Valentin Loux INRA, Paris-Saclay University, MAIAGE Unit, Migale Bioinformatics platform

This work has been partially funded through the French National Agency for Research (ANR) IFB project.

Contact support@proteore.org for any questions or concerns about the Galaxy implementation of this tool.


    ]]></help>
    <citations>
    </citations>
</tool>