Page tree
Skip to end of metadata
Go to start of metadata

out of date content - available for reference purposes only

View Modes

 

IGB will have the ability to display features using different methods called View Modes.
Each View Mode will only be appropriate to certain feature types. (@ indicates an existing mode)

Design

The current TierGlyph has all the logic for displaying the data in various ways (Graph, Annotation, ...)
The new design will have a subclass of TierGlyph, TierGlyphViewMode, that will contain another
Glyph, ViewModeGlyph (an abstract class), and will delegate all calls to the viewModeGlyph. To display
the data (object model SeqSymmetry) in a different manner, just change the ViewModeGlyph. For example,
for a Wiggle file (Graph track), the TierGlyph can have a FillBarGraphGlyph, then replace that with a
HeatMapGraphGlyph, then replace that with a StairStepGraphGlyph, all subclasses of ViewModeGlyph.
Each ViewModeGlyph will specify what data it can display, so only the view mode glyphs that can
handle the data will be available. This is done by specifying a FileTypeCategory for each data set.
FileTypeCategories are: Annotation, Alignment, Graph, Sequence, Probeset, Scored, Mismatch, or Variant.
The method com.affymetrix.igb.util.TrackUtils.useViewMode(String method), is used to specify whether
to use the old code (regular TierGlyph) or new code (TierGlyphViewMode). The method takes in the
uri, and passes back true to use new code, or false to use old code. To test all data using the
new code, change this method to always return true.

Annotations/Alignments
  • Collapsed /Expanded @
  • ScrollExpanded - like Expanded, but with a vertical scroll, and no max stack depth
  • Depth @
  • Tabular - show the data in a table like the Selection Info tab (rows/columns reversed)
Alignments
  • Mismatch @
  • Mismatch Pileup @
Graphs
  • Bar @
  • Line @
  • Dot @
  • Min/Max/Avg @
  • Heat Map @
  • StairStep @
  • Histogram
Operations

View Modes can be the result of an operation or series of operations on the SeqSymmetry data
e.g the not annotation operation, or the log graph operation. The view mode is on the output
SeqSymmetry of the operation.

Semantic Zooming

View Modes can be varying, depending on the view state, for example for a zoomed out annotation,
the depth view mode is shown, but when zoomed in, the MaxExpanded annotation view mode is shown.

Notes
  • The different View Modes can have parameters, like the user options in the track preferences.
    These same options can be instead linked to the data.
Discussion

=======
Hi,

For Operation View Mode,
I have added a popup menu called "Transform". It holds all transformation that applies to current file type category. Once a transform is applied, it starts with a default view mode based on output.

This view mode can be changed from popup menu called "View Mode".

Are you ok with this? Or would like to change these behavior?


Hiral
=======
I liked your other idea to put Transform (Operation?) in a top-level menu.

But this can work too.

I think that at this moment, we can't be sure what the best UI solution will be. For this, we'll need to try it with users. The important thing is to be flexible so that we can quickly iterate the design as we learn more about how users (apart from ourselves) will work with it.

-Ann
=======
Michael and I had a long talk about this yesterday (the various ways that the user
can view/modify the data) and we thought we should go over this with the group at
some point.

Some points to consider:

  • the view modes can do two things, one is just redisplay the track differently, the
    other is to show the new view mode in a new track, like the
    Make Annotation Depth Graph menu item.
  • the user can make some pretty complicated operations on the data. We could have
    a panel the graphically displays how the track was created. The user could even
    click on one of the intermediate steps to see that data in a new track. For example:

abc.bed
\
(merge) - * - (not) - * - (depth) - *
/ \
def.bed \
(ratio) - mygraph.wig
uvw.bedgraph /
\ /
(median) - * -
/
xyz.wig

where * is an intermediate file (yes, no one would do this in real life).

  • we want them to be able to be efficient, that is, to operate on a small zoomed in region
    (if possible) rather than have to process the entire chromosome every time.

Lance
=======

Thinking about this some more, the current approach makes sense for now. A view mode is at some level at "template" for a plot. The template will include things like: the geometric primitive that is drawn, and the scales from the data to the visual attributes of those primitives. Plots also often have a "statistical computation" associated with them, e.g., with histograms.

When the user switches the view, I think the computation specified by the previous view mode should be reset, i.e., the view is off of the original data.

At some point, we can support creating new datasets in IGB through these simple computations that we have already implemented. As you brought up though, the UI for managing the datasets is a challenge. For now, we will have to be happy IGB being a viewing tool, rather than also a computing tool.

Michael
=======

  • No labels