view clustergrammerIPG.xml @ 1:c90127c2a1ae draft default tip

"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/clustergrammer_flow commit e47edffe14c2e8544fe0d00d932090657beae528"
author azomics
date Sun, 27 Jun 2021 22:13:16 +0000
parents fee56ee2f7ac
children
line wrap: on
line source

<tool id="clustergrammer_flow" name="Generate a heat map" version="1.1+galaxy1" profile="18.01">
  <description>of a flow analysis using Clustergrammer</description>
  <requirements>
    <requirement type="package" version="2.11.2">jinja2</requirement>
    <requirement type="package" version="1.13.6">clustergrammer</requirement>
  </requirements>
  <stdio>
    <exit_code range="1"/>
    <exit_code range="2" level="fatal" description="Please provide a comma-separated list of indices." />
    <exit_code range="3" level="fatal" description="Please provide integer as indices." />
    <exit_code range="4" level="fatal" description="Indices within one of the categories are used several times." />
    <exit_code range="5" level="fatal" description="Please provide indices within the range of your input matrix." />
    <exit_code range="6:"/>
  </stdio>
  <command><![CDATA[
      python '$__tool_directory__/clustergrammerIPG.py' '${input_matrix}' '${html_file}' '${html_file.files_path}' '$__tool_directory__' '${dist_type}' '${linkage}'
      #for $category in $cat
        'new_cat'
        '${category.roc}'
        '${category.cat_title}'
        '${category.label1}'
        '${category.indices1}'
        #for $catlabel in $category.cat_labels
          'new_label'
          '${catlabel.label}'
          '${catlabel.indices}'
        #end for
      #end for
      ;
      cp -r '$__tool_directory__'/js '${html_file.files_path}'/;
      cp -r '$__tool_directory__'/css '${html_file.files_path}'/;
  ]]>
  </command>
  <inputs>
    <param format="flowmfi" name="input_matrix" type="data" label="Centroids file" help="Any type of input matrix can be used."/>
    <param name="dist_type" type="select" label="Clustering option - Compute distance using:" help="See below for documentation, default is set to cosine.">
      <option value="cosine" selected="true">Cosine</option>
      <option value="euclidean">Euclidian</option>
      <option value="correlation">Correlation</option>
      <option value="jaccard">Jaccard</option>
    </param>
    <param name="linkage" type="select" label="Clustering option - Linkage type" help="See below for documentation. default is set to average.">
      <option value="average" selected="true">Average</option>
      <option value="single">Single</option>
      <option value="complete">Complete</option>
      <option value="weighted">Weigthed</option>
    </param>
    <repeat name="cat" title="Category">
      <param name="roc" type="select" label="Is this category for row data or column data?">
        <option value="row" selected="true">Row data (population or cluster)</option>
        <option value="col">Column (marker name)</option>
      </param>
      <param name="cat_title" type="text" label="Category Title" value="i.e.: Marker Type"/>
      <param name="label1" type="text" label="Category label" value="i.e.: Surface Marker"/>
      <param name="indices1" type="text" label="Indices of rows or columns this label should be given to." value="i.e.:1,2,5"/>
      <repeat name="cat_labels" title="Category label">
        <param name="label" type="text" label="Category label" value="i.e.: Phospho Marker"/>
        <param name="indices" type="text" label="Indices of rows or columns this label should be given to." value="i.e.:3,6,7"/>
      </repeat>
    </repeat>
  </inputs>
  <outputs>
    <data format="html" name="html_file" label="Heatmap of ${input_matrix.name}"/>
  </outputs>
  <tests>
    <test>
      <param name="input_matrix" value="test.flowmfi"/>
      <output name="html_file" file="heatmap.html">
        <extra_files type="file" name="mult_view.json" value="mult_view.json"/>
      </output>
    </test>
  </tests>
  <help><![CDATA[
This tool generates a heat map from the provided input matrix using Clustergrammer.

-----

**Input**

Please provide a tab-separated matrix of values as input, for instance a centroid file from a FLOCK analysis.
Rows and columns can be annotated by setting up categories and labels for each group within categories.

.. class:: infomark

Any type of matrix can be used but the datatype expected by this tool is flowmfi. You can modify the file format of any file in your history by clicking on the pencil next to the name of your file, and going to the 'Datatype' tab.

**Distance and Linkage types**

Distance_ and linkage_ are computed using functions implemented in SciPy. Please refer to their documentation for further explanations.

**Graphical output**

The output is an interactive heat-map of the matrix provided.

.. class:: warningmark

The color scale represents ranges of fluorescence intensity and covers values between the minimun and maximum intensity values in the dataset used as input.

.. class:: infomark

Some features might not show up depending on the browser used. If the dendograms aren't displayed, try opening the output in Chrome.

-----

**Example**

*Input*: Centroids file::

   Population Marker1 Marker2 Marker3
   1          38      49      10
   2          21      63      100
   3          31      52      45
   4          11      78      25

*Interactive Graphical output*

.. image:: ./static/images/flowtools/clustergrammer.png

-----

Clustergrammer_ is a project from the Ma'ayan lab. Find them on GitHub_, more info here_.

.. _Clustergrammer: http://amp.pharm.mssm.edu/clustergrammer/
.. _GitHub: https://github.com/MaayanLab/clustergrammer
.. _here: https://clustergrammer.readthedocs.io/getting_started.html
.. _Distance: https://docs.scipy.org/doc/scipy/reference/spatial.distance.html
.. _linkage: https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html#scipy.cluster.hierarchy.linkage
  ]]>
  </help>
  <citations>
    <citation type="doi">10.1038/sdata.2017.151</citation>
  </citations>
</tool>