ome / design

OME Design proposals
http://ome.github.io/design/
1 stars 15 forks source link

webclient filtering & analysis data display #82

Open will-moore opened 6 years ago

will-moore commented 6 years ago

A couple of long-standing requirements for webclient which concern the central panel:

Filtering can take place either "server-side" via HQL query or in the browser, filtering a list of images via some additional info. Filtering server-side is harder to customise since you have to construct more complex HQL queries. E.g. to filter images by tag you'd need to load links etc. Filtering in the centre panel can start with a list of image IDs (from the tree) and load additional data to filter sequentially by e.g. Tag, Rating, Name etc. This make it more straight-forward to customise.

One issue with the current centre-panel filtering is that only filters a single page at a time (200 images by default). Historically, we've only loaded 200 images because we don't want to load too many thumbnails at a time. But we could load much higher numbers of images if we don't build thumbnails for thumbnails that are not visible. E.g. if using React, could use something like https://bvaughn.github.io/react-virtualized/. But this would get the centre panel out of sync with the tree, which is currently responsible for loading data. Need to see how much performance of loading large number of images is affected by also loading Pixels as we do now.

will-moore commented 6 years ago

Currently https://github.com/will-moore/omero-parade is looking like this:

screen shot 2018-01-17 at 09 57 47

screen shot 2018-01-17 at 10 10 12

Mousing over Well shows the image underneath the heatmap.

emilroz commented 6 years ago

@will-moore have you considered showing the plate with thumbnails and the heatmap below it? So you would get more info at the same time? Obviously would be tricky on smaller screens and with larger plates just wondering if it would be useful.

will-moore commented 6 years ago

I made a couple of mock-ups showing how we might support customizable filtering and using custom data for heatmap / table columns.

Users could specify filters in much the same way that we currently support for "Open with" options. Each has a Name/label and can support named datatypes - E.g. Image, Field or Well. The filter has parameters of various types: text, number, boolean, enum.

Choosing e.g. "Table data" filter (see screenshot) would load a script from /filter/js/?name=table_data&plate=1. This would return a script with a function: filter(data, column, operator, value) as well as some parameter spec. E.g.

[{"name": "column", "type": "text", "values": ["col1", "col2"],
 {"name": "operator", "type": "text", "values":["=", ">", "<", "!="],
 {"name": "value", "type": "number"}]

This could be used to build the UI for that filter. When user chooses input, the filter(data, column, operator, value) function is called, with the data being the list of Wells or Images.

screen shot 2018-01-18 at 13 23 46

List view of the Wells or Images in the plate: screen shot 2018-01-18 at 13 23 59 This is "Field 1" but user could choose to show "All Fields".

User can choose to add a heatmap, with data being provided by customised functions. E.g. "ROIcount", "cell count", "Table data col1", "Table data col2" etc. (see screenshot at top of page). Also, data provided by the same functions can be shown as table columns (or shown via tooltip for the Plate view above).

Thanks for the heat-map suggestion @emilroz.

will-moore commented 6 years ago

After adding Heatmap: "Cell Count", adding data to table for "Roundness" and "Length" and sorting table via "Roundness" we might see:

screen shot 2018-01-18 at 16 27 48

emilroz commented 6 years ago

@will-moore have you considered adding a Coloured-value (font colour or the cell background colour) instead of the heatmap blob - that may give you more info straight away.

pwalczysko commented 6 years ago

See also https://trello.com/c/ILIGB0vf/117-rfe-search-cross-feature and https://trello.com/c/wv7P3Fhq/118-rfe-search-results-filtering.

Most users will not be content with just filtering the present dataset. We have to give a thought to have a comprehensive search and filter strategy.

will-moore commented 6 years ago

See https://trello.com/c/6s9EHOXD/119-rfe-configurable-search-results-columns Using the same centre panel for search results would be nice, but tricky!

will-moore commented 6 years ago

First prototype of this is done at https://github.com/will-moore/omero-parade/pull/1