Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

webclient filtering & analysis data display #82

Open
will-moore opened this issue Jan 14, 2018 · 8 comments
Open

webclient filtering & analysis data display #82

will-moore opened this issue Jan 14, 2018 · 8 comments

Comments

@will-moore
Copy link
Member

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

  • Customised filtering: Instead of hard-coding the filtering options in webclient (as now), it would be nice to allow sysadmins/devs to add their own filtering, based on any type of data (e.g. analysis results)

  • Display of analysis results: Data could be in tables or map annotations. Display data via e.g. Heatmap or as columns in table (sortable). Again, this should be customisable by sysadmins if not by users?

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
Copy link
Member Author

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
Copy link
Member

emilroz commented Jan 17, 2018

@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
Copy link
Member Author

will-moore commented Jan 18, 2018

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
Copy link
Member Author

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
Copy link
Member

emilroz commented Jan 18, 2018

@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
Copy link
Member

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
Copy link
Member Author

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
Copy link
Member Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants