Open will-moore opened 6 years ago
Currently https://github.com/will-moore/omero-parade is looking like this:
Mousing over Well shows the image underneath the heatmap.
@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.
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.
List view of the Wells or Images in the plate: 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.
After adding Heatmap: "Cell Count", adding data to table for "Roundness" and "Length" and sorting table via "Roundness" we might see:
@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.
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.
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!
First prototype of this is done at https://github.com/will-moore/omero-parade/pull/1
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.