view clustergrammerIPG.xml @ 0:fee56ee2f7ac draft

"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/clustergrammer_flow commit b11dfcf10d287c1da91ffb1d5d0148c7f8f61356"
author azomics
date Fri, 31 Jul 2020 19:06:45 -0400
parents
children c90127c2a1ae
line wrap: on
line source

<tool id="clustergrammer_flow" name="Generate a heat map" version="1.1+galaxy0" 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>