diff venn_diagram.xml @ 0:57f01ca855cd draft default tip

"planemo upload commit 47d779aa1de5153673ac8bb1e37c9730210cbb5d"
author galaxyp
date Sat, 12 Jun 2021 18:06:28 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/venn_diagram.xml	Sat Jun 12 18:06:28 2021 +0000
@@ -0,0 +1,177 @@
+<?xml version="1.0"?>
+<tool id="proteore_venn_diagram" name="Venn diagram" version="2021.06.08" profile="20.01">
+    <description>with JVenn</description>
+    <requirements>
+        <requirement type="package" version="3.9">python</requirement>
+    </requirements>
+    <command detect_errors="aggressive"><![CDATA[
+        python '$__tool_directory__/venn_diagram.py'
+
+        #for $i, $s in enumerate($series)
+            --input
+            #if $s.se.input == "file"
+                '$s.se.file' '$s.name' 'file' '$s.se.header' '$s.se.ncol'
+            #else
+                '$s.se.list' '$s.name' 'list'
+             #end if
+        #end for 
+        --summary '$output_summary'
+    ]]></command>
+    <inputs>
+        <repeat name="series" title="List to compare" min="2" max="6">
+            <conditional name="se" >
+                <param type="select" name="input" label="Enter your list" help="Copy/paste or from a file (e.g. table)" >
+                    <option value="list">Copy/paste list </option>
+                    <option value="file" selected="true">Input file containing your list</option>
+                </param>
+                <when value="file">
+                    <param type="data" name="file" format="txt,tabular" label="Select your file" />
+                    <param name="header" type="boolean" checked="true" truevalue="true" falsevalue="false" label="Does file contain header?" />
+                    <param type="text" name="ncol" value="c1" label="Column number on which apply the comparison" help ='For example, fill in "c1" if you want to filter the first column'>
+                        <validator type="regex" message="Please enter a column number, for example: 'c1' for the first column">[c]{0,1}[0-9]+</validator>
+                    </param>
+                </when>
+                <when value="list">
+                    <param type="text" name="list" label="Copy/paste list" help='IDs must be separated by spaces into the form field, for example: P31946 P62258' >
+                        <sanitizer>
+                            <valid initial="string.printable">
+                                <remove value="&apos;"/>
+                                <remove value="/"/>
+                            </valid>
+                            <mapping initial="none">
+                                <add source="&apos;" target="__sq__"/>
+                            </mapping>
+                        </sanitizer>
+                    </param>
+                </when>
+            </conditional>
+            <param type="text" name="name" value="" label="Enter the name of this list" help="This name will be displayed on venn diagram" optional="false">
+                <sanitizer>
+                    <valid initial="string.printable">
+                        <remove value="&apos;"/>
+                    </valid>
+                    <mapping initial="none">
+                        <add source="&apos;" target="__sq__"/>
+                    </mapping>
+                </sanitizer>
+                <validator type="regex" message="Please enter a list name">[a-zA-Z0-9._-]+</validator>
+            </param>
+        </repeat>
+    </inputs>
+    <outputs>
+        <data format="html" name="output_summary" label="Venn diagram" from_work_dir="venn_diagram_summary.html" />
+        <data format="tsv" name="output_text" label="Venn diagram text output" from_work_dir="venn_diagram_text_output.tsv" />
+    </outputs>
+    <tests>
+        <test>
+            <repeat name="series">
+                <conditional name="se">
+                    <param name="input" value="file" />
+                    <param name="file" value="ID_Converter_FKW_Lacombe_et_al_2017_OK.txt" />
+                    <param name="header" value="true" />
+                    <param name="ncol" value="c1" />
+                </conditional>
+                 <param name="name" value="Lacombe" />
+            </repeat>
+            <repeat name="series">
+                <conditional name="se">
+                    <param name="input" value="file" />
+                    <param name="file" value="Bredberg.txt" />
+                    <param name="header" value="false" />
+                    <param name="ncol" value="c1" />
+                </conditional>
+                <param name="name" value="Bredberg" />
+            </repeat>
+            <repeat name="series">
+                <conditional name="se">
+                    <param name="input" value="file" />
+                    <param name="file" value="Mucilli.txt" />
+                    <param name="header" value="false" />
+                    <param name="ncol" value="c1" />
+                </conditional>
+                <param name="name" value="Mucilli" />
+            </repeat>
+            <output name="output_summary" file="Venn_diagram_html.html" />
+            <!-- <output name="output_text" file="Venn_text_output.txt" />       -->
+        </test>
+    </tests>
+    <help><![CDATA[
+
+**Description**
+
+This tool is used for cross-comparison purpose between several lists having a common key (e.g. IDs) and draw a venn diagram from lists/files using the Jvenn plug-in (see Authors below).
+It also creates output text file that contain common or specific elements between query and each compared lists/files.
+
+-----
+
+**Input**
+
+Can be either a list entered in a copy/paste mode or a single or multi-columns file (txt, tsv, csv, tab, output from other tools) up to six lists/files
+
+* **List of IDs in a copy/paste mode:** IDs have to be separated by a space (e.g. AMY1A ALB IGKC CSTA IGHA1 ACTG1)
+        
+* **for example an IDs list file** in .txt format, with 1 ID per line
+
+.. csv-table:: tab1
+    :header: "Ids"
+
+
+    "AMY1A"
+    "ALB"    
+    "IGKC"    
+    "CSTA"    
+    "IGHA1"
+        
+If you use a file as input list, it is necessary to specify the column number on which to apply the comparison.
+
+Ids in a line will be split by ";", so if you have this kind of input : 
+
+.. csv-table:: tab with multiple ids per line
+    :header: "Ids"
+
+    "P22531"
+    "P04792"
+    "P01834"
+    "Q96KK5"
+    "Q06830;P60709;P13646;P31949"
+    "P06702"
+    "P14923"
+    "Q13835"
+
+All ID will be considered (i.e. Q06830,P60709,P13646 and P31949 will be split).
+
+.. class:: warningmark
+    
+In copy/paste mode, the number of IDs considered in input is limited to 5000.
+
+-----
+
+**Parameter**
+
+"Please enter the name of this list": each list or set should be named, this information will be reported in both output (see below)
+
+-----
+
+**Output**
+
+Two outputs are generated:
+        
+* **Graphical file**: Venn diagram that you can either display (interactive mode) or download as an image (PNG, SVG format)
+        
+* **Venn text output file** : a text file containing specific elements or shared by lists/files.
+
+
+]]></help>
+   <citations>
+         <citation type="doi">doi:10.1186/1471-2105-15-293</citation>
+         <citation type="bibtex">@book{toolsProteoRE,
+            journal = {GitHub repository},
+            publisher = {GitHub},
+            title = {ProteoRE tools},
+            url = {https://github.com/galaxyproteomics/tools-galaxyp},
+            author = {Lien Nguyen, David Chistiany, Florence Combes,Christophe Caron, Valentin Loux Yves Vandenbrouck},
+            date = {2021},
+            year = {2021},
+        }</citation>
+   </citations>
+</tool>