view venn_diagram.xml @ 0:adb808a15409 draft default tip

"planemo upload commit 47d779aa1de5153673ac8bb1e37c9730210cbb5d"
author galaxyp
date Sat, 12 Jun 2021 18:05:53 +0000
parents
children
line wrap: on
line source

<?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>