Skip to content

Commit

Permalink
wrote dim reduction interaction section
Browse files Browse the repository at this point in the history
  • Loading branch information
cornhundred committed Feb 15, 2017
1 parent 1d56d18 commit 782c88a
Show file tree
Hide file tree
Showing 16 changed files with 74 additions and 31 deletions.
Binary file modified docs/_build_html/.doctrees/clustergrammer_web.doctree
Binary file not shown.
Binary file modified docs/_build_html/.doctrees/environment.pickle
Binary file not shown.
Binary file modified docs/_build_html/.doctrees/interacting_with_viz.doctree
Binary file not shown.
Binary file modified docs/_build_html/.doctrees/matrix_format_io.doctree
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/_build_html/_sources/clustergrammer_web.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The Clustergrammer web application (referred to as Clustergrammer-Web) enables u
Uploading Data through the Homepage
====================================

**add upload screenshots**
**<add-screenshot upload screenshots>**


.. _clustergrammer_web_viz:
Expand Down
28 changes: 21 additions & 7 deletions docs/_build_html/_sources/interacting_with_viz.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Interacting with the Visualization
----------------------------------
Data visualizations benefit enormously from user interactions that allow users to explore and generate new views of their data. Clustergrammer produces highly interactive heatmaps that enable users to intuitively explore and perform complex transformations on their data. This section will cover the types of interactions available to the user.
Data visualizations benefit enormously from user interactions that allow users to explore and generate new views of their data. Clustergrammer produces highly interactive heatmaps that enable users to intuitively explore and perform complex transformations on their data. Clustergrammer visualizations are consistent across the :ref:`clustergrammer_web` and the :ref:`clustergrammer_widget` and are built using :ref:`clustergrammer_js`. This section will cover the types of interactions available to the user.

Introduction to Clustergrams/Heatmaps
=====================================
Expand All @@ -20,8 +20,12 @@ Mouseover Interactions
======================
Mousing over visualization elements brings up more information in tooltips. For instance, mousing over matrix cells brings up a tooltip with the row name, column name, and value of the matrix cell.

**<add-screenshot of mouseover tooltip>**

See :ref:`clustergrammer_js_api` for information about adding callback functions to mouseover events and :ref:`hzome_gene_info` for biology specific mouseover behavior.

.. _row_col_reordering:

Row and Column Reordering
=========================
Clustergrammer allows users to order rows and columns based on:
Expand All @@ -30,14 +34,19 @@ Clustergrammer allows users to order rows and columns based on:
- hierarchical clustering order
- label order

by using the reordering-buttons on the sidebar.
by using the reordering-buttons on the sidebar. This can be useful for identifying broad patterns in your data. Users can also reorder their matrix based on the values in a single row/column by double-clicking the row/column labels. Similarly, users can reorder based on categorical information by double-clicking the category labels (see :ref:`interactive_categories`). For small matrices reordering events are animated to help users visually track the effects of the transformation.

.. _interactive_dim_reduction:

Users can also reorder their matrix based on the values in a single row/column by double-clicking the row/column labels. Similarly, users can reorder based on categorical information by double-clicking the category labels (see :ref:`interactive_categories`).
Interactive Dimensionality Reduction
====================================
Dimensionality reduction is a useful data analysis technique (e.g. `PCA`_ , `t-SNE`_) that is often used to reduce the dimensionality of high-dimensional datasets (e.g. hundreds-thousands of dimensions) down to a number that can be easily be analyzed and visualized (e.g. two-three dimensions). Heatmaps are capable of directly visualizing high-dimensional data, but can also benefit from dimensionality reduction.

For instance, the matrix can be reorderd based on the value in a single row by double-clicking the row label or the matrix can be reorderd based on row categories by double-clicking the category label.
Clustergrammer enables users to interactively perform dimensionality reduction by filtering rows based on sum or variance and instantaneously observe the effects of this dimensionality reduction on clustering (where matrix rows represent dimensions, see :ref:`matrix_format_io`). Users can filter for the top rows based on sum or variance using the row-filter-sliders in the sidebar. The sliders allow users to select their top 500, 250, 100, 50, 20, and 10 rows (clustered views of the filtered matrices are pre-calculated by :ref:`clustergrammer_py`). This can be useful for filtering out dimensions that are not of interest (e.g. dimensions with low sum may not be of interest) and determining the effect of these dimensions on clustering.

Dimensionality Reduction (Row Filtering)
========================================
**<addscreenshot of sidebar filters>**

For small matrices dimensionality reduction is animated to help the user visualize the effects this transformation. Clustergrammer employs the concept of `object constancy`_ by using animations to help the user visually follow changes to their data. Filtering out dimensions (rows) occurs in two steps: 1) filtered rows fade out, then the remaining rows rearrange themselves into their new order (e.g. clustering order). Adding back in dimensions (rows) occurs in two steps: the current rows rearrange themselves into their new positions, then the new rows fade into view.

Interactive Dendrogram
======================
Expand Down Expand Up @@ -71,7 +80,12 @@ Expanding
Biology Specific Interactions
=============================

Row Downsampling
================

.. _`Eisen et al., 1998`: http://www.pnas.org/content/95/25/14863.full
.. _`dendrogram trees`: https://en.wikipedia.org/wiki/Dendrogram
.. _`t-SNE`: https://lvdmaaten.github.io/tsne/
.. _`hierarchical clustering`: https://docs.scipy.org/doc/scipy-0.18.1/reference/cluster.hierarchy.html
.. _`hierarchical clustering`: https://docs.scipy.org/doc/scipy-0.18.1/reference/cluster.hierarchy.html
.. _`PCA`: https://en.wikipedia.org/wiki/Principal_component_analysis
.. _`object constancy`: https://bost.ocks.org/mike/constancy/
4 changes: 3 additions & 1 deletion docs/_build_html/_sources/matrix_format_io.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
.. _matrix_format_io:

Matrix Formats and Input/Output
------------------------------
Clustergrammer takes as input either:

- a tab-separated matrix file
- a Pandas DataFrame (using :ref:`clustergrammer_py`)

The tab-separated matrix file can take several formats shown below, which can include row/column categories and name/category titles. In call cases, row and column names must be unique. Optional, name/category titles will be shown as titles above row/column names or names adjacent to row/column categories, respectively. The front-end :ref:`clustergrammer_js` library can visualize matrices up to ~500,000 to ~1,000,000 cells large, but very large matrices may take a long time to cluster using the :ref:`clustergrammer_py` library. Clustergrammer is also optimized to visualize matrices with more rows than columns.
The tab-separated matrix file can take several formats shown below, which can include row/column categories and name/category titles. In call cases, row and column names must be unique. Optional, name/category titles will be shown as titles above row/column names or names adjacent to row/column categories, respectively. The front-end :ref:`clustergrammer_js` library can visualize matrices up to ~500,000 to ~1,000,000 cells large, but very large matrices may take a long time to cluster using the :ref:`clustergrammer_py` library. Clustergrammer is also optimized to visualize matrices with more rows than columns. Users are encouraged to arrange their matrix with data-points as columns and dimensions as rows, which enables users to take advantage of Clustergrammer's :ref:`interactive_dim_reduction`.

Simple Matrix Format
====================
Expand Down
3 changes: 2 additions & 1 deletion docs/_build_html/clustergrammer_web.html
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,8 @@
<p>The Clustergrammer web application (referred to as Clustergrammer-Web) enables users to easily generate interactive and shareable heatmap visualizations.</p>
<div class="section" id="uploading-data-through-the-homepage">
<span id="clustergrammer-web-upload"></span><h2>Uploading Data through the Homepage<a class="headerlink" href="#uploading-data-through-the-homepage" title="Permalink to this headline"></a></h2>
<p><strong>add upload screenshots</strong></p>
<blockquote>
<div><strong>&lt;add-screenshot upload screenshots&gt;</strong></div></blockquote>
</div>
<div class="section" id="clustergrammer-web-visualization">
<span id="clustergrammer-web-viz"></span><h2>Clustergrammer-Web Visualization<a class="headerlink" href="#clustergrammer-web-visualization" title="Permalink to this headline"></a></h2>
Expand Down
3 changes: 2 additions & 1 deletion docs/_build_html/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ <h2>Contents:<a class="headerlink" href="#contents" title="Permalink to this hea
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#zooming-and-panning">Zooming and Panning</a></li>
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#mouseover-interactions">Mouseover Interactions</a></li>
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#row-and-column-reordering">Row and Column Reordering</a></li>
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#dimensionality-reduction-row-filtering">Dimensionality Reduction (Row Filtering)</a></li>
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#interactive-dimensionality-reduction">Interactive Dimensionality Reduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#interactive-dendrogram">Interactive Dendrogram</a></li>
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#interactive-categories">Interactive Categories</a></li>
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#dendrogram-cropping">Dendrogram Cropping</a></li>
Expand All @@ -206,6 +206,7 @@ <h2>Contents:<a class="headerlink" href="#contents" title="Permalink to this hea
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#row-searching">Row Searching</a></li>
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#expanding">Expanding</a></li>
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#biology-specific-interactions">Biology Specific Interactions</a></li>
<li class="toctree-l2"><a class="reference internal" href="interacting_with_viz.html#row-downsampling">Row Downsampling</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="biology_specific_features.html">Biology-Specific Features</a><ul>
Expand Down

0 comments on commit 782c88a

Please sign in to comment.