{ "info": { "author": "The Open Microscopy Team", "author_email": "ome-devel@lists.openmicroscopy.org.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: End Users/Desktop", "Intended Audience :: Science/Research", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: JavaScript", "Programming Language :: Python :: 2", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Scientific/Engineering :: Visualization", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Text Processing :: Markup :: HTML" ], "description": ".. image:: https://travis-ci.org/ome/omero-parade.svg?branch=master\n :target: https://travis-ci.org/ome/omero-parade\n\n.. image:: https://badge.fury.io/py/omero-parade.svg\n :target: https://badge.fury.io/py/omero-parade\n\nOMERO.parade\n============\n\nAn OMERO.web app for filtering Data in OMERO.web centre panel.\n\nFor full details see `SUPPORT.md `_.\n\nRequirements\n============\n\n* OMERO 5.4.0 or newer.\n\nNote that OMERO.parade is compatible with OMERO 5.4.0 but it works\nbest with OMERO 5.4.6 or newer.\n\nInstalling from PyPI\n====================\n\nThis section assumes that an OMERO.web is already installed.\n\nInstall the app using `pip `_:\n\n::\n\n $ pip install -U omero-parade\n\nAdd parade custom app to your installed web apps:\n\n::\n\n $ bin/omero config append omero.web.apps '\"omero_parade\"'\n\nDisplay parade in the centre of the webclient:\n\n::\n\n $ bin/omero config append omero.web.ui.center_plugins \\\n '[\"Parade\", \"omero_parade/init.js.html\", \"omero_parade\"]'\n\n\nNow restart OMERO.web as normal.\n\n\nBuild\n=====\n\nIn order to build you need:\n\n* npm version equal or greater to 3.0! npm version equal or greater than\n 5.2 is recommended!\n\n::\n\n $ npm install\n\nTo build an uncompressed version and automatically rebuild when source\nfiles change, run:\n\n::\n\n $ npm run watch\n\nTo build an uncompressed version, run:\n\n::\n\n $ npm run build-dev\n\nTo build a compressed, minified version for production, run:\n\n::\n\n $ npm run build\n\n\nCustom Filtering\n================\n\nUsers can customize the filtering options available by adding their own\npython modules to the setting:\n\n::\n\n omero.web.parade.filters\n\nThe current default setting lists the ``omero_parade`` app itself and two\nother modules that are in the same directory and are therefore expected to\nbe on the PYTHONPATH when the app is installed.\n\n::\n\n '[\"omero_parade\", \"omero_parade.annotation_filters\", \"omero_parade.table_filters\"]'\n\nEach of these modules contains an ``omero_filters.py`` which is expected to\nimplement 2 methods: ``get_filters`` and ``get_script``.\n\nThe ``get_filters`` method is used to compile the list of filters returned\nby the URL ``/omero_parade/filters/``.\n\nSome examples of ``get_filters``\n\n::\n\n # Return a list of filter names.\n def get_filters(request, conn):\n return [\"Rating\", \"Comment\", \"Tag\"]\n\nThe request may include ``plate`` or ``dataset`` ID if we only want to\nsupport the filter for certain data types. In this example we could even\ncheck whether an OMERO.table exists on the plate.\n\n::\n\n def get_filters(request, conn):\n if request.GET.get('plate', None) is not None:\n return [\"Table\"]\n return []\n\nThe ``get_script`` function for a named filter should return a ``JsonResponse``\nthat includes a list of parameters for the user input to the filter\nand a JavaScript filter function.\n\nThe JavaScript function will be called for each image to filter and will\nalso be passed in a params object with the user input.\n\n::\n\n # Return a JS function to filter images by various params.\n def get_script(request, script_name, conn):\n\n dataset_id = request.GET.get('dataset')\n // OR...\n plate_id = request.GET.get('plate')\n\n if script_name == \"Rating\":\n # Load rating data for images in Dataset or Wells in Plate...\n # ...\n # var ratings = {imageId: rating} for all images\n var js_object_attr = 'id'; # or 'wellId' if filtering Wells\n\n # Return a JS function that will be passed an object\n # e.g. {id: 1} for Image or {id: 1, wellId:2} for Image in Well.\n # and should return true or false\n f = \"\"\"(function filter(data, params) {\n var ratings = %s;\n var match = ratings[data.%s] == params.rating;\n return (params.rating === '-' || match);\n })\n \"\"\" % (json.dumps(ratings), js_object_attr)\n\n filter_params = [{'name': 'rating',\n 'type': 'text',\n 'values': ['-', '1', '2', '3', '4', '5'],\n 'default': '-',\n }]\n return JsonResponse(\n {\n 'f': f,\n 'params': filter_params,\n })\n\n\nCustom Data Providers\n=====================\n\nCustom data providers return numerical data for Images that can\nbe shown in a table for sorting, or plotted in a graph.\nNB: Even if data applies to Wells, you need to map this to Image ID, since\nthat is the common denominator that is used to identify images in the\nvarious list, grid or plot layouts.\n\nUsing the same setup as for filtering above, each module listed in the\n``omero.web.parade.filters`` setting can also contain a ``data_providers.py``\nfile that implements two methods ``get_dataproviders`` and ``get_data``.\n\nExamples for ``omero_parade/data_providers.py``\n\n::\n\n def get_dataproviders(request, conn):\n return [\"ROI_count\"]\n\n\n def get_data(request, data_name, conn):\n \"\"\"Return data for images in a Dataset or Plate.\"\"\"\n dataset_id = request.GET.get('dataset')\n plate_id = request.GET.get('plate')\n field_id = request.GET.get('field')\n\n # ... get img_ids for container, then...\n\n if data_name == \"ROI_count\":\n # Want to get ROI count for images\n params = ParametersI()\n params.addIds(img_ids)\n query = \"select roi.image.id, count(roi.id) from Roi roi \"\\\n \"where roi.image.id in (:ids) group by roi.image\"\n p = query_service.projection(query, params, conn.SERVICE_OPTS)\n roi_counts = {}\n for i in p:\n roi_counts[i[0].val] = i[1].val\n return roi_counts", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/ome/omero-parade/archive/v0.1.3.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ome/omero-parade", "keywords": "OMERO.web,parade", "license": "AGPL-3.0", "maintainer": "", "maintainer_email": "", "name": "omero-parade", "package_url": "https://pypi.org/project/omero-parade/", "platform": "", "project_url": "https://pypi.org/project/omero-parade/", "project_urls": { "Download": "https://github.com/ome/omero-parade/archive/v0.1.3.tar.gz", "Homepage": "https://github.com/ome/omero-parade" }, "release_url": "https://pypi.org/project/omero-parade/0.1.3/", "requires_dist": null, "requires_python": "", "summary": "A Python plugin for OMERO.web", "version": "0.1.3" }, "last_serial": 5545357, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "03a199e0ccb177e86d958e96af336a6b", "sha256": "d4bbb050f9c3bbe99e8a7d85c3ac339190d05e4e2c94c874e5b5d5c7eef099d1" }, "downloads": -1, "filename": "omero-parade-0.1.0.tar.gz", "has_sig": false, "md5_digest": "03a199e0ccb177e86d958e96af336a6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 416466, "upload_time": "2018-05-21T08:40:31", "url": "https://files.pythonhosted.org/packages/f9/04/96501a149a8cab02388c30b0380a170c73f38f9f45353439ed5ed9be92a6/omero-parade-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "56ee4a415940c7972ac1c0c594dae232", "sha256": "8887068780e56423bd0a8179739ba1f86711b4cfeb0c8f70542364ee368e1243" }, "downloads": -1, "filename": "omero-parade-0.1.1.tar.gz", "has_sig": false, "md5_digest": "56ee4a415940c7972ac1c0c594dae232", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 418333, "upload_time": "2018-06-20T12:22:26", "url": "https://files.pythonhosted.org/packages/3b/59/bc771afddef0bac7542c52b2dd5d513d46dab6b741be2140aadf311bbba5/omero-parade-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "17acb6cb9eb02cc0bb4c1c78f7e4e8fb", "sha256": "57f90d9a7f78abea8a63fd51a22b00a0f2ee76c78c472c386f2e6d7544271ecc" }, "downloads": -1, "filename": "omero-parade-0.1.2.tar.gz", "has_sig": false, "md5_digest": "17acb6cb9eb02cc0bb4c1c78f7e4e8fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 413499, "upload_time": "2018-09-11T11:47:41", "url": "https://files.pythonhosted.org/packages/10/a1/a5dd9da2a384faedb367ac1047c30f5ffc3974bdb4d22c81a4728ecc1303/omero-parade-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "7336c9454ff52dc3c317e959abc0aeb9", "sha256": "93db0dbc642d6094468082fa2d2e03196a23ce1e1f181f319b2b8af2ea51b99e" }, "downloads": -1, "filename": "omero-parade-0.1.3.tar.gz", "has_sig": false, "md5_digest": "7336c9454ff52dc3c317e959abc0aeb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 423298, "upload_time": "2019-07-17T11:23:51", "url": "https://files.pythonhosted.org/packages/52/87/47259f776c47f23b8d7c517ba691552ceb0b1b5d71cd2f9b17b131e34c00/omero-parade-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7336c9454ff52dc3c317e959abc0aeb9", "sha256": "93db0dbc642d6094468082fa2d2e03196a23ce1e1f181f319b2b8af2ea51b99e" }, "downloads": -1, "filename": "omero-parade-0.1.3.tar.gz", "has_sig": false, "md5_digest": "7336c9454ff52dc3c317e959abc0aeb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 423298, "upload_time": "2019-07-17T11:23:51", "url": "https://files.pythonhosted.org/packages/52/87/47259f776c47f23b8d7c517ba691552ceb0b1b5d71cd2f9b17b131e34c00/omero-parade-0.1.3.tar.gz" } ] }