view heatmap.xml @ 5:9ccb5122bffb draft

planemo upload commit b8671ffe2e12dc6612b971a3e6e1dc71496aefd0
author proteore
date Fri, 24 Jan 2020 04:55:54 -0500
parents 40a7cb90d20b
children 0fd68acd3e31
line wrap: on
line source

<tool id="heatmap" name="HeatMap" version="2019.01.23">
    <description>(clustering and visualization)</description>
    <requirements>
        <requirement type="package" version="4.7.1">r-plotly</requirement>
        <requirement type="package" version="0.14.1">r-heatmaply</requirement>
        <requirement type="package" version="2.1.1">phantomjs</requirement>
        <requirement type="package" version="2.2.1">pandoc</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
        Rscript $__tool_directory__/heatmap_viz.R 
            --input='$file' 
            --output="$file.name"  
            --type='$output_type' 
            --cols='$select_data_columns.cols' 
            --row_names="$rownames"
            --header='$header' 
            --col_text_angle='$angle_col'
            --dist="$distance"
            --clust="$clustering"
            --dendrogram="$dendrogram"

    ]]></command>
    <inputs>
        <param name="file" type="data" format="txt,tabular" label="Select your file (table)" help="" />
        <param name="header" type="boolean" checked="true" truevalue="true" falsevalue="false" label="Does your file contain a header?" />
        <conditional name="select_data_columns">
            <param name="enter_cols" type="select" label="Select columns or a range of columns containing expression values">
                <option value="cols_number">Select columns to be used one by one</option>
                <option value="cols_range">Select a range of columns to be used</option>
            </param>
            <when value="cols_number">
                <param name="cols" type="text" label="Enter column number (separated by a comma)" help="For example : c3,c5,c7">
                    <validator type="regex" message="Please enter column numbers, for example: 'c1,c3' for first and third columns">^([c]{0,1}[0-9]+[,]*)+$</validator>
                </param>
            </when>
            <when value="cols_range">
                <param name="cols" type="text" label="Enter a range of column number, first and last column separated by ':'" help="For example : c2:c7">
                    <validator type="regex" message="Please enter first and last column numbers separated by ':', for example: 'c2:c7' for all colums from the second to the 7th">^[c]{0,1}[0-9]+:[c]{0,1}[0-9]+$</validator>
                </param>
            </when>
        </conditional>
        <param name="rownames" type="text" value="c1" label="Enter column number containing row labels" help="for example : c1 if labels are in column n°1">
            <validator type="regex" message="Please enter a column number, for example: 'c1' for the first column">[c]{0,1}[0-9]+</validator>
        </param>
        <param type="integer" name="angle_col" label="Angle of column labels" value="0" min="-90" max="90" />
        <param name="clustering" type="select" label="Clustering method" value="average">
            <option value="ward.D">Ward</option>
            <option value="ward.D2">Ward2</option>
            <option value="single">Single linkage (nearest neighbor)</option>
            <option value="complete">Complete linkage (farthest neighbor)</option>
            <option value="average" selected="true">Group average linkage (UPGMA)</option>
            <option value="mcquitty">Simple average method (WPGMA)</option>
            <!--option value="median">Median (WPGMC)</option>
            <option value="centroid">Centroid (UPGMC)</option-->
        </param>
         <param name="distance" type="select" label="Distance measurement method" value="euclidean">
            <option value="euclidean" selected="true">Euclidean</option>
            <option value="pearson" selected="true">Pearson</option>
            <option value="spearman">Spearman</option>
            <option value="kendall">Kendall</option>
            <option value="maximum">Maximum</option>
            <option value="manhattan">Manhattan</option>
            <option value="canberra">Canberra</option>
            <option value="binary">Binary</option>
            <option value="minkowski">Minkowski</option>
        </param>
        <param name="dendrogram" type="select" label="Apply clustering on :" value="both">
            <option value="row">Rows</option>
            <option value="column">Columns</option>
            <option value="both" selected="true">Rows and columns</option>
            <option value="none">None</option>
        </param>
        
        <param name="output_type" type="select" label="Select output format">
            <option value="html">html</option>
            <option value="pdf">pdf</option>
            <!--option value="jpeg">jpeg</option-->
            <!--option value="png">png</option-->
        </param>

    </inputs>
    <outputs>
        <data name="output" format="html">
            <discover_datasets pattern="(?P&lt;designation&gt;.+)\.html" ext="html" visible="true" assign_primary_output="true"/>
                <filter>output_type=="html"</filter>
        </data>
        <data name="pdf" format="pdf">
            <discover_datasets pattern="(?P&lt;designation&gt;.+)\.pdf" ext="pdf" visible="true" assign_primary_output="true"/>
                <filter>output_type=="pdf"</filter>
        </data>
        <data name="jpeg" format="jpg">
            <discover_datasets pattern="(?P&lt;designation&gt;.+)\.jpg" ext="jpg" visible="true" assign_primary_output="true"/>
                <filter>output_type=="jpeg"</filter>
        </data>
        <data name="png" format="png">
            <discover_datasets pattern="(?P&lt;designation&gt;.+)\.png" ext="png" visible="true" assign_primary_output="true"/>
                <filter>output_type=="png"</filter>
        </data>
    </outputs>
    <tests>
        <test>
            <output name="output" file="heatmap.html"/>
        </test>
    </tests>
    <help><![CDATA[
**Description**

This tool allows users to generate, cluster and visualize expression-based heat maps from transcriptomic, proteomic and metabolomic experiments.
It is based on heatmaply, an R package for easily creating interactive cluster heatmaps (see reference below)

-----

**Input**

A file (tab-delimited) having a column with labels (e.g. a gene name, Uniprot accession number...) and colums with numerical value (intensities) for clustering.
See table below for an example input file

.. csv-table:: example of input file
   :header: "Uniprot","iBAQ_CTR1","iBAQ_CTR2","iBAQ_CTR3","iBAQ_pTCN1","iBAQ_pTCN2","iBAQ_pTCN3"


   "Q49AN9",17.4091970440807,16.0474907255521,14.9687330755858,21.8454060245779,18.9468529040903,21.2330797498008
   "O00148",14.1001686145694,14.806777888004,15.3555560564928,17.2942797505583,18.2106568817514,16.9479095182613
   "F5H6E2",15.0235503328855,16.6142578028388,20.5969569088489,14.6615767253835,17.9752549753108,20.4023495267791
   "E9PPW7",18.0770953690935,15.312218369812,13.8048301075204,17.5522130063356,15.9664520099065,15.1597932646987
   "O00483",17.4188205774495,16.783665086968,15.1589556127476,19.7398973660168,20.8648965533665,20.1781898785682
   "O00571",12.9049717044645,16.717296441372,13.8708732177805,19.8879681981565,21.0815521014477,17.4710040202845

-----

**Parameters**

"Select columns or a range of columns containing expression values": choose the columns to use to perform clustering and to create the heatmap.
You can enter specific column number (e.g. c2,c5 will create a heatmap for column 2 and 5 corresponding to condition from the example file above ) or a range of columns to use (e.g. c2:c7 will consider all replicates of each condition in the example above)).

"Enter column number containing row labels": enter the column number containing the rows labels (e.g. "c1" in the example above).

"Angle of column labels": In case of long label name, you might want to incline the column labels for practical display.

"Clustering method": methods for computing hierarchical clustering (six available) 

"Distance measurement method": function used to compute the distance (dissimilarity) between both rows and columns (nine available). The options "pearson", "spearman" and "kendall" can
be used to use correlation-based clustering.

-----

**Output**

Default output is html; it allows browsing the heatmap in an interactive way (of note: for large file, display and interactivity can be altered), pdf format are proposed for static output.

-----

.. class:: infomark

**Authors**
Galili T, O'Callaghan A, Sidi J, Sievert C. heatmaply: an R package for creating interactive cluster heatmaps for online publishing. Bioinformatics. 2018. 34(9):1600-1602. doi: 10.1093/bioinformatics/btx657. PubMed PMID: 29069305

-----

.. class:: infomark

**Galaxy integration**

David Christiany, Florence Combes, Yves Vandenbrouck CEA, INSERM, CNRS, Grenoble-Alpes University, BIG Institute, FR

Sandra Dérozier, Olivier Rué, 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.

Help: contact@proteore.org for any questions or concerns about this tool.

    ]]></help>
</tool>