GithubHelp home page GithubHelp logo

german-bioimaging / omero-tagsearch Goto Github PK

View Code? Open in Web Editor NEW
0.0 4.0 1.0 253 KB

Extensions to OMERO.web to enhance image/dataset/project filtering from tags.

License: GNU Affero General Public License v3.0

Python 42.30% CSS 5.53% HTML 52.17%
omero-web

omero-tagsearch's Introduction

OMERO.tagsearch

OMERO.tagsearch is a plugin for OMERO.web that enables searching of data using tags, with the search continuously refined as available search terms are entered and further term suggestions based on the entered terms are offered. This can be used in a way that is similar to navigating a file system hierarchy.

This was formerly part of OMERO.webtagging, the umbrella name for tools developed to enhance use of text annotations (tags) in OMERO.

Requirements

As Python 2 has now reached end-of-life, OMERO 5.6 now requires Python 3. With release 3.1.0 of tagsearch, the following are now required. To use tagsearch on older OMERO systems (running Python 2), please use versions older than 3.1.0.

  • Python 3.8 or later
  • omero-web 5.6 or later
  • django 4.2 or later

User Documentation

http://help.openmicroscopy.org/web-tagging.html

Installation

The recommended way to install tagsearch is using pip, but it is also possible to install it manually as described here.

# In the python environment of OMERO.web (virtualenv or global)
pip install omero-tagsearch

# Add tagsearch to webclient
omero config append omero.web.apps '"omero_tagsearch"'

# Add a top-link to tagsearch designer
omero config append omero.web.ui.top_links '["Tag Search", "tagsearch"]'

Upgrade from omero-webtagging-tagsearch to omero-tagsearch

Since 3.2.2, the package was renamed to omero-tagsearch. This is a breaking change for OMERO.web, as the old package must be removed from the OMERO.web config and replaced by the new package.

You can perform the upgrade as follow:

# stop omero web
# Install the new package and uninstall the old one
pip uninstall omero-webtagging-tagsearch
pip install omero-tagsearch

# Then open the OMERO.web configuration editor
omero config edit
# Update the configuration called 'omero.web.apps'
# In 'omero.web.apps': 'omero_webtagging_tagsearch' -> 'omero_tagsearch'
# start omero web

Note that installing the latest omero-webtagging-autotag is not functional but has a dependency on omero-autotag. Thus, if you wish to use the old version omero-webtagging-tagsearch, make sure to specify the latest working version:

# ONLY IF YOU WANT TO USE AN OLDER VERSION OF THE PLUGIN
# stop omero web
pip install omero-webtagging-tagsearch==3.2.0
# And set the configuration accordingly
# start omero web

Documentation

Available on the OMERO website.

Development

Pure javascript so does not require a node build step.

To install using pip in development mode (in appropriate virtualenv)

::
# In the top-level tagsearch directory containing setup.py pip install -e . cd $OMERO_PREFIX

OMERO development server can then be started in the usual way. Remember to configure the tagsearch settings the same as above.

Project Maintenance

I (Douglas) am no longer actively developing OMERO.webtagging. I am thrilled to hand over maintainence and development to German Bioimaging.

Acknowledgements

OMERO.webtagging was created by Douglas P. W. Russell ([email protected]) while at Oxford University and Harvard Medical School, then later extended by DPWR Consulting Ltd.

These plugins were developed originally with the support of Micron Advanced Bioimaging Unit funded by the Wellcome Trust Strategic Award 091911, and Open Microscopy.

Continued development was supported by The Laboratory of Systems Pharmacology, Harvard Medical School and Research Computing, Harvard Medical School.

Continued development was sponsored by Micron Advanced Bioimaging Unit funded by the Wellcome Trust Strategic Award 107457.

omero-tagsearch's People

Contributors

atarkowska avatar dpwrussell avatar jburel avatar tom-tbt avatar will-moore avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

jburel

omero-tagsearch's Issues

Renaming the PyPI repo

I found this: https://github.com/simonw/pypi-rename

My understanding is that it would publish a "new" old-name version of the package (omero-webtagging-tagsearch 3.2.1) with basically nothing inside but a dependency to the newly created package (omero-tagsearch, we could start it at version 3.2.2)

  1. We publish a new release of "omero-tagsearch" version 3.2.2 (no change in the code). We could even do that with a .github/workflows/ from the template of Jean-Marie. with the tag 3.2.2
  2. I install cookiecutter locally pip install cookiecutter and twine pip install twine
  3. I run the cookiecutter on the pypi-rename repo:
    • cookiecutter gh:simonw/pypi-rename
      • new_package_name []: omero-tagsearch
      • old_package_name []: omero-webtagging-tagsearch
      • old_package_new_version []: 3.2.1
    • cd omero-webtagging-tagsearch
    • python setup.py sdist
    • twine upload dist/datasette-insert-api-0.5.tar.gz

Searching Values from Key-Value-Pairs with Tag Search possible?

I am woundering if it would be possible to add (optionally) the function to also search for values using omero.tagsearch.

We try to make our users to use key-value pairs more and more. A lot of information (values) is then duplicated and exists as value and a tag. The only reason to still use many of these tags and duplicate informations is tagsearch. If you can also search values (or, optionally, even keys) with tagsearch as usual, that would avoid duplicate tagging and would be a great enhancement.

test-pypi install fails due to python_requires="~=3.5"?

Hi @Tom-TBT:

We're seeing issues with install of omero-tagsearch from test-pypi on our merge-ci.

ERROR: Could not find a version that satisfies the requirement Django<4.3,>=4.2.3 (from omero-web) (from versions: 3.1.10.17)

I'm not exactly sure of the cause of this issue, or why it has just started failing.
However, I noticed you have python_requires="~=3.5", at
https://github.com/German-BioImaging/omero-tagsearch/blob/master/setup.py#L63C5-L63C29
which might be an issue.
We currently support 3.6+ but are in the process of moving away from 3.6 support.

NB: I saw a slightly different error for omero-autotag ERROR: No matching distribution found for setuptools>=40.8.0 which might just be a different result from the same issue.

Full error from https://merge-ci.openmicroscopy.org/jenkins/job/OMERO-web/317/console

09:39:06 + pip install -i https://test.pypi.org/simple/ omero-tagsearch
09:39:06 Looking in indexes: https://test.pypi.org/simple/
09:39:06 Collecting omero-tagsearch
09:39:06   Obtaining dependency information for omero-tagsearch from https://test-files.pythonhosted.org/packages/7f/df/2b8af85c4d1d7dabddde103715c9b58c44e5f43ef07ddce2e38a2dcd9209/omero_tagsearch-4.1.0-py3-none-any.whl.metadata
09:39:06   Using cached https://test-files.pythonhosted.org/packages/7f/df/2b8af85c4d1d7dabddde103715c9b58c44e5f43ef07ddce2e38a2dcd9209/omero_tagsearch-4.1.0-py3-none-any.whl.metadata (5.9 kB)
09:39:06 Requirement already satisfied: omero-web>=5.6.0 in ./.venv3/lib/python3.8/site-packages (from omero-tagsearch) (5.22.2.dev0)
09:39:06 Requirement already satisfied: omero-py>=5.7.0 in ./.venv3/lib/python3.8/site-packages (from omero-web>=5.6.0->omero-tagsearch) (5.16.1.dev0)
09:39:06 Requirement already satisfied: concurrent-log-handler>=0.9.20 in ./.venv3/lib/python3.8/site-packages (from omero-web>=5.6.0->omero-tagsearch) (0.9.24)
09:39:07 INFO: pip is looking at multiple versions of omero-web to determine which version is compatible with other requirements. This could take a while.
09:39:07   Obtaining dependency information for omero-tagsearch from https://test-files.pythonhosted.org/packages/38/2c/80a6459b5c44380dd0167fe2ad30a56009016cdfb78afab72350da76df15/omero_tagsearch-4.0.2-py3-none-any.whl.metadata
09:39:07   Using cached https://test-files.pythonhosted.org/packages/38/2c/80a6459b5c44380dd0167fe2ad30a56009016cdfb78afab72350da76df15/omero_tagsearch-4.0.2-py3-none-any.whl.metadata (5.9 kB)
09:39:07   Obtaining dependency information for omero-tagsearch from https://test-files.pythonhosted.org/packages/f7/96/5aca676d48505e3bc6870f7cac4557aeebdca709cbcf8633c0b170ccebbb/omero_tagsearch-4.0.1-py3-none-any.whl.metadata
09:39:07   Using cached https://test-files.pythonhosted.org/packages/f7/96/5aca676d48505e3bc6870f7cac4557aeebdca709cbcf8633c0b170ccebbb/omero_tagsearch-4.0.1-py3-none-any.whl.metadata (5.9 kB)
09:39:07   Obtaining dependency information for omero-tagsearch from https://test-files.pythonhosted.org/packages/af/d6/995b2281fcec0cc4bd9adbe016aa0a10705851aeab6faf71f4a4b0a98fae/omero_tagsearch-4.0.0-py3-none-any.whl.metadata
09:39:08   Downloading https://test-files.pythonhosted.org/packages/af/d6/995b2281fcec0cc4bd9adbe016aa0a10705851aeab6faf71f4a4b0a98fae/omero_tagsearch-4.0.0-py3-none-any.whl.metadata (5.9 kB)
09:39:08 ERROR: Could not find a version that satisfies the requirement Django<4.3,>=4.2.3 (from omero-web) (from versions: 3.1.10.17)
09:39:08 ERROR: No matching distribution found for Django<4.3,>=4.2.3
09:39:08 Build step 'Execute shell' marked build as failure
09:39:09 Finished: FAILURE

Filtering by owner - improvement suggestion

Hi Tom,

I find very nice the new features introduced in the latest version !
However, I find not so convenient the fact that we need to switch to "all users" to get access to all available tags.

For example, in a read-annotate group, everyone has, by default, access to all the tags (in the autotag, when adding new tags manually...) but this is not anymore the case in the new version of the tag search. By default, you can only filter your tags if your are looking at your data.
I think it could be nice to match the permission level restrictions for the "by-default" behavior (i.e. always look at all the available tags) and to add a drop-drown menu with the list of available owners, in case the users want to restrict tags by owner.

Thanks,
Rémy.

views.tag_image_search returned None

Just saw this issue at https://www.openmicroscopy.org/qa2/qa/feedback/41689/

Traceback (most recent call last):

File "/opt/omero/web/venv3/lib64/python3.9/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)

File "/opt/omero/web/venv3/lib64/python3.9/site-packages/django/core/handlers/base.py", line 204, in _get_response
self.check_response(response, callback)

File "/opt/omero/web/venv3/lib64/python3.9/site-packages/django/core/handlers/base.py", line 332, in check_response
raise ValueError(

ValueError: The view omero_tagsearch.views.tag_image_search didn't return an HttpResponse object. It returned None instead.

Don't know how this error was produced (or what version of the app) but just looking at the code, it looks like the only way that you could get None returned is if the request.method == "GET" wasn't True at

if request.method == "GET":

I don't know if there's anything obvious in the JavaScript code that might suggest how this was called without GET? Maybe some kind of OPTIONS request?
I think it's probably save to remove the request.method == "GET" check, since it's not essential to enforce this (as it is with e.g POST).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.