diff cluster_profiler.xml @ 7:4609346d8108 draft

planemo upload commit 9af2cf12c26c94e7206751ccf101a3368f92d0ba
author proteore
date Tue, 18 Dec 2018 09:21:32 -0500
parents 5e16cec55146
children b29255864039
line wrap: on
line diff
--- a/cluster_profiler.xml	Thu Mar 29 11:43:28 2018 -0400
+++ b/cluster_profiler.xml	Tue Dec 18 09:21:32 2018 -0500
@@ -1,11 +1,10 @@
-<tool id="cluter_profiler" name="clusterProfiler" version="0.1.0">
-    <description>
-    GO terms classification and enrichment analysis
-    </description>
+<tool id="cluter_profiler" name="GO terms classification and enrichment analysis" version="2018.12.18">
+    <description>(Human, Mouse, Rat)[clusterProfiler]</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.2.0">bioconductor-dose</requirement>
         <requirement type="package" version="3.4.4">bioconductor-clusterprofiler</requirement>
     </requirements>
@@ -37,30 +36,29 @@
             --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"
+                #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
-            --universe_id_type="$ego.universe.universe_idti.universe_idtypein"
-        #end if
         #else
             --go_enrich="false"
         #end if
         
-        --onto_opt="$ontology"
-
-        --text_output="$text_output"
+        --plot="$ego.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 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 name="ids" type="select" label="Enter your IDs (UniProt Accession numer or Gene ID)" help="Copy/paste or from a file (e.g. table)" >
+                <option value="text">Copy/paste your IDs</option>
+                <option value="file" selected="true">Input file containing your IDs</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' >
@@ -76,50 +74,54 @@
             </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' />                
+                <param name="header" type="boolean" checked="true" truevalue="true" falsevalue="false" label="Does file contain header?" />
+                <param name="ncol" type="text" value="c1" label="Column number of IDs" 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</option>
-                <option value="Entrez">Entrez Gene ID</option>
+            <param name="idtypein" type="select" label="Select type/source of IDs" help="" >
+                <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="human">Human</option>
-            <option value="mouse">Mouse</option>
-            <option value="rat">Rat</option>
+        </conditional>   
+        <param name="species" type="select" label="Species" >
+            <option value="org.Hs.eg.db">Human (Homo sapiens) </option>
+            <option value="org.Mm.eg.db">Mouse (Mus musculus) </option>
+            <option value="org.Rn.eg.db">Rat (Rattus norvegicus)</option>
+        </param>
+		<param name="ontology" type="select" display="checkboxes" multiple="true" label="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>
         <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?"/>
+            <param name="go_represent" type="boolean" checked="true" truevalue="true" falsevalue="false" label="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)">
+                <param name="level" type="select" label="Ontology level (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>
+				    <option value="2" selected="True">2</option>
+				    <option value="3">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?"/>
+            <param name="go_enrich" type="boolean" checked="true" truevalue="true" falsevalue="false" label="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?"/>
+                    <param name="universe_option" type="boolean" checked="false" truevalue="true" falsevalue="false" label="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 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 name="universe_ids" type="select" label="Enter your background IDs (UniProt Accession number or Entrez Gene ID)" help="Copy/paste or from a file (e.g. table)" >
+                                <option value="text">Copy/paste your background IDs</option>
+                                <option value="file" selected="true">Input file containing your background IDs</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' >
+                                <param name="txt" type="text" label="Copy/paste your background IDs" help='IDs must be separated by spaces into the form field, for example: P31946 P62258' >
                                     <sanitizer>
                                         <valid initial="string.printable">
                                             <remove value="&apos;"/>
@@ -131,14 +133,14 @@
                                 </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' />                
+                                <param name="file" type="data" format="txt,tabular" label="Select file that contains your background IDs list" help="" />
+                                <param name="header" type="boolean" checked="true" truevalue="true" falsevalue="false" label="Does file contain header?" />
+                                <param name="ncol" type="text" value="c1" label="Column number of IDs" 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>
+                            <param name="universe_idtypein" type="select" label="Select type of background IDs" help="" >
+                                <option value="Uniprot">UniProt Accession number</option>
                                 <option value="Entrez">Entrez Gene ID</option>
                             </param>
                             <when value="Uniprot"/>
@@ -147,24 +149,22 @@
                     </when>
                     <when value="false"/>
                 </conditional>
+                <param name="plot" type="select" display="checkboxes" multiple="true" label="Graphical display" optional="false">
+                    <option selected = "true" value="dotplot">dot-plot</option>
+                    <option value="barplot">bar-plot</option>
+                </param>
             </when>
             <when value="false"/>
         </conditional>
-				
-		<param name="ontology" type="select" display="checkboxes" multiple="true" label="Please select GO terms category">
-            <option value="CC">Cellular Component</option>
-            <option value="BP">Biological Process</option>
-            <option value="MF">Molecular Function</option>
-        </param>
-	    
-	    
-	    
     </inputs>
     <outputs>
-        <data name="text_output" format="tabular" label="clusterProfiler text output" />
-        <collection type="list" label="clusterProfiler diagram outputs" name="output" >
-	    <discover_datasets pattern="(?P&lt;designation&gt;.+\.png)" ext="png" />
-	</collection>
+        <data name="log" format="tsv" label="Cluster profiler" />
+        <collection type="list" label="clusterProfiler text files" name="text_output">
+            <discover_datasets pattern="(?P&lt;designation&gt;.+\.tsv)" ext="tsv"/>
+        </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>
@@ -177,53 +177,102 @@
             <conditional name="idti">
                 <param name="idtypein" value="Uniprot"/>
             </conditional>
-            <param name="species" value="human"/>
+            <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="false"/>
+                <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"/>
-            <output name="text_output" file="clusterProfiler_text_output.tabular"/>
-            <output_collection name="output">
-                <element name="clusterProfiler_diagram_outputs__GGO.CC.png" file="clusterProfiler_diagram_outputs__GGO.CC.png" ftype="png"/>
+            <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"/>
+                <element name="GGO_BP_bar-plot" file="GGO_BP_bar-plot" ftype="png"/>
+                <element name="GGO_MF_bar-plot" file="GGO_MF_bar-plot" ftype="png"/>
+                <element name="EGO_CC_bar-plot" file="EGO_CC_bar-plot" ftype="png"/>
+                <element name="EGO_BP_bar-plot" file="EGO_BP_bar-plot" ftype="png"/>
+                <element name="EGO_CC_dot-plot" file="EGO_CC_dot-plot" ftype="png"/>
+                <element name="EGO_BP_dot-plot" file="EGO_BP_dot-plot" ftype="png"/>
             </output_collection>
         </test>
     </tests>
     <help><![CDATA[
-       
-**Galaxy component based on R package clusterProfiler (see ref below)**
- 	
-This component allows to perform GO enrichment-analyses.
+
+**Description**
+
+This tool is based on R package clusterProfiler and allows to perform GO terms classification and enrichment analyses on gene/protein sets (e.g. given a set of genes that are up-regulated under certain conditions, an enrichment analysis will find which GO terms are over-represented (or under-represented) using annotations for that gene/protein set).
+
+Given a list of IDs, this tool: 
 
-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 (whole organism or user-defined list). 
+(i)  performs gene classification based on GO distribution at a specific level,
+  
+(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 background corresponding to the whole organism or to a user-defined list. In this latter case, we recommand to use the "Build tissue-specific expression dataset" ProteoRE tool to create this list according to your need. 
+
+-----
+
+**Input**
+
+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).
+
+"Select type/source of IDs": only entrez gene ID (e.g : 4151, 7412) or Uniprot accession number (e.g. P31946) are allowed. If your list is not in this form, please use the ID_Converter tool of ProteoRE. 
+
+-----
 
-**Input required**
+**Parameters**
+
+"Species": the three supported species are Homo sapiens, Mus musculus and Rattus norvegicus 
 
-This component works with Gene ids (e.g : 4151, 7412) or Uniprot accession number (e.g. P31946). 
+"Perform GO categories representation analysis?": classify genes based on their projection at a specific level of the GO corpus (see parameter below), and provides functions (set to "Yes")
+
+"Ontology level (the higher this number, the deeper the GO level)": correspond to the level of GO hierarchy (from 1 to 3) (set to level "2" by default). In general the higher the level, the more semantically specific the term is.
+
+"Perform GO categories enrichment analysis?": calculate enrichment test for GO terms based on hypergeometric distribution (set to "Yes")
 
-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).
+"P-value cut off": P-value threshold value for the declaration of significance (default is < 0.01)
+
+"Q-value cut off": to prevent high false discovery rate (FDR) in multiple testing, Q-values (adjusted P-values) are estimated for FDR control. (default is < 0.05)
+
+"Define your own background IDs?": by default the whole genome/proteome is used as a reference background to compute the enrichment. As this reference set should normally only include genes/proteins that were monitored during your analysis, this option allows to provide your own background; this could be for instance, the total number of genes/proteins expressed in the tissue/sample under study. 
 
- 
+If you want to use your own background, click on the "Yes" button. Your gene/protein set must be a list of Entrez gene ID or Uniprot accession number (otherwise, use the ID-Converter tool of ProteoRE). Select the file containing your list of ID (as background), then specify the column number which contains IDs and the type of IDs (gene Entrez or Uniprot Accession number) as requested. 
+
+Of note: for Human species, you can build your own background by using the "Build tissue-specific expression dataset" tool of ProteoRE.
+
+----- 
+
 **Output**
 
-Text (tables) and graphics representing the repartition and/or enrichment of GO categories. 
+Diagram output: graphical output in the form of bar-plot or dot-plot (png, jpeg or pdf format), one figure for each GO category. 
+Text tables: with the following information GO category description (e.g.BP.Description), GO term identifier (e.g. BP.GOID) and GO term frequency (e.g. BP.Frequency)d graphics representing the repartition and/or enrichment of GO categories. One table and one graphic will be produced for each GO catagory. 
 
-**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 : 
+**Authors**
 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)
+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)
+
+User manual / Documentation of the clusterProfiler R package (functions and parameters):
+https://bioconductor.org/packages/3.7/bioc/vignettes/clusterProfiler/inst/doc/clusterProfiler.html
 
 -----
 
@@ -231,9 +280,9 @@
 
 **Galaxy integration**
 
-T.P. Lien Nguyen, Florence Combes, Yves Vandenbrouck CEA, INSERM, CNRS, Grenoble-Alpes University, BIG Institute, FR
+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
+Sandra Dérozier, Olivier Rué, Christophe Caron, Valentin Loux - INRA, Paris-Saclay University, MAIAGE Unit, Migale Bioinformatics platform, FR
 
 This work has been partially funded through the French National Agency for Research (ANR) IFB project.