ome / omero-parade

OMERO.web plugin for displaying Dataset thumbnails or Plates in webclient center panel
GNU Affero General Public License v3.0
1 stars 12 forks source link

support string columns table data #55

Closed will-moore closed 5 years ago

will-moore commented 5 years ago

See https://github.com/ome/omero-parade/issues/47

This allows table data in String columns to be loaded. To test:

Screen Shot 2019-03-11 at 03 42 31

This simply ignores any TypeError when generating histogram or min/max values for data. At this point we don't know the column type, so we can't test for numerical columns (as we do for filtering at https://github.com/ome/omero-parade/blob/master/omero_parade/table_filters/omero_filters.py#L74) I don't know what the intended usage of the min, max, and histogram JSON data was in the UI. It doesn't seem to be used currently, but there may be plans to use it? cc @chris-allan @emilroz

chris-allan commented 5 years ago

min, max, and histogram are used by the sparklines and to display the minima and maxima for any loaded numerical data.

snoopycrimecop commented 5 years ago

Conflicting PR. Removed from build parade-merge#276. See the console output for more details. Possible conflicts:

--conflicts

will-moore commented 5 years ago

@chris, But we only show the histograms for the filters, right? Not for the table data. If I don't return the histogram, min/max I don't see any difference in the table data (screenshot above). Unless you're using them in some other gs code/version?

chris-allan commented 5 years ago

On the table the min/max should be used for the heatmap I think. Since we were calculating everything else if memory serves I just kept the histogram in. I don't think we're using the histogram even on our PRs that advance the UI, etc. for Screens.

snoopycrimecop commented 5 years ago

Conflicting PR. Removed from build parade-merge#277. See the console output for more details. Possible conflicts:

--conflicts Conflict resolved in build parade-merge#278. See the console output for more details.

will-moore commented 5 years ago

OK, thanks. I'd forgotten the heatmaps use min/max from the server as I was originally calculating them in JS.

pwalczysko commented 5 years ago

@will-moore It works, except, when I add a new item, such as selecting the second dropdown and clicking onto Table_drug, I am confronted with empty central pane. This seems to improve at every step (refresh of the whole browser seems to help). So this bug seems to be first-time only.

But, if I add the same item twice, I get

eel, user-3, plate id 1153

Traceback (most recent call last):

  File "/home/hudson/virtualenv/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)

  File "/opt/hudson/workspace/WEB-DEV-merge-deploy/OMERO.py/lib/python/omeroweb/decorators.py", line 486, in wrapped
    retval = f(request, *args, **kwargs)

  File "/home/hudson/virtualenv/lib/python2.7/site-packages/omero_parade/views.py", line 170, in get_data
    data = module.get_data(request, data_name, conn)

  File "/home/hudson/virtualenv/lib/python2.7/site-packages/omero_parade/table_filters/data_providers.py", line 121, in get_data
    named_column_index = column_names.index(column_name)

ValueError: ' Drug' is not in list

<WSGIRequest
path:/parade/data/VGFibGVfIERydWc=/,
GET:<QueryDict: {u'plate': [u'1153'], u'_': [u'1552652690149'], u'field': [u'0']}>,
POST:<QueryDict: {}>,
COOKIES:{'__utma': '266053329.2142887685.1495792616.1500022766.1500022766.1',
 '_ga': 'GA1.2.2142887685.1495792616',
 '_gat': '1',
 '_gid': 'GA1.2.1727788206.1552573228',
 'csrftoken': '4YSve37bIcV2uyRnV5WM7qYZoYelyNG7',
 'phpbb3_a9mfv_k': '7f25ee13812249ab',
 'phpbb3_a9mfv_sid': 'd05bd6699dad6484bc65364d65ff9918',
 'phpbb3_a9mfv_u': '2759',
 'sessionid': 'p9iyxez092jkowx8vw8j8vcpcfimane2',
 'style_cookie': 'null'},
META:{u'CSRF_COOKIE': u'4YSve37bIcV2uyRnV5WM7qYZoYelyNG7',
 'HTTP_ACCEPT': 'application/json, text/javascript, */*; q=0.01',
 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
 'HTTP_ACCEPT_LANGUAGE': 'en-GB,en;q=0.5',
 'HTTP_CONNECTION': 'close',
 'HTTP_COOKIE': 'csrftoken=4YSve37bIcV2uyRnV5WM7qYZoYelyNG7; _ga=GA1.2.2142887685.1495792616; style_cookie=null; phpbb3_a9mfv_u=2759; phpbb3_a9mfv_k=7f25ee13812249ab; phpbb3_a9mfv_sid=d05bd6699dad6484bc65364d65ff9918; __utma=266053329.2142887685.1495792616.1500022766.1500022766.1; _gid=GA1.2.1727788206.1552573228; sessionid=p9iyxez092jkowx8vw8j8vcpcfimane2; _gat=1',
 'HTTP_HOST': 'web-dev-merge.openmicroscopy.org',
 'HTTP_REFERER': 'http://web-dev-merge.openmicroscopy.org/webclient/?show=plate-1153',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:65.0) Gecko/20100101 Firefox/65.0',
 'HTTP_X_FORWARDED_FOR': '10.205.124.62',
 'HTTP_X_FORWARDED_PROTO': 'http',
 'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest',
 'PATH_INFO': u'/parade/data/VGFibGVfIERydWc=/',
 'QUERY_STRING': 'plate=1153&field=0&_=1552652690149',
 'RAW_URI': '/parade/data/VGFibGVfIERydWc%3D/?plate=1153&field=0&_=1552652690149',
 'REMOTE_ADDR': '127.0.0.1',
 'REMOTE_PORT': '48634',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': u'',
 'SERVER_NAME': '127.0.0.1',
 'SERVER_PORT': '4080',
 'SERVER_PROTOCOL': 'HTTP/1.0',
 'SERVER_SOFTWARE': 'gunicorn/19.9.0',
 'gunicorn.socket': <socket._socketobject object at 0x8502de0>,
 'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x6c7ecd0>,
 'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,
 'wsgi.input': <gunicorn.http.body.Body object at 0x6c7e650>,
 'wsgi.multiprocess': True,
 'wsgi.multithread': False,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}>
pwalczysko commented 5 years ago

I can see at least three problems here. The white central pane is the fourth, but it is hard to find a concrete sequence which elicits it. But it is there, and very often too.

Edit: Okay, sorry, the problems I was reporting were caused by me not noticing that there was another, previous OMERO.table on that plate. I do not see any problems now,, after I have removed the other table, but I will leave the stacktrace report here (see above), just in case.

will-moore commented 5 years ago

This missing feature was also reported at https://forum.image.sc/t/setting-up-omero-in-a-new-lab-suggestions-stories-and-advice-welcome/25626/19 "I tried using tables, but it turns out that the Parade tool for searching annotations can’t handle a mix of numbers and strings (numbers only, again future versions may include this function) so I switched to key-value pairs"

will-moore commented 5 years ago

Also reported again in https://www.openmicroscopy.org/qa2/qa/feedback/27699/ by @dominikl

dominikl commented 5 years ago

Thanks. Sorry, didn't know there was already a PR open for that issue.

pwalczysko commented 5 years ago

That works for me now perfectly on merge-ci

  1. strings in columns -> adds the columns anyway, does not crash, the columns are viewable in the "table list view"
  2. numbers in columns -> no regression here, all works

Ready to merge FMPOV

cc @joshmoore

joshmoore commented 5 years ago

Merging for 0.1.3