跳转到主要内容

OMERO.web的Python插件

项目描述

https://github.com/ome/omero-parade/workflows/OMERO/badge.svg https://badge.fury.io/py/omero-parade.svg

OMERO.parade

OMERO.web中心面板中过滤数据的OMERO.web应用。

要获取完整详情,请参阅SUPPORT.md

需求

  • OMERO.web 5.6.1或更高版本。

从PyPI安装

本节假设OMERO.web已经安装。

使用pip安装应用

$ pip install -U omero-parade

将parade自定义应用添加到已安装的Web应用中

$ bin/omero config append omero.web.apps '"omero_parade"'

在Web客户端中心显示parade

$ bin/omero config append omero.web.ui.center_plugins \
    '["Parade", "omero_parade/init.js.html", "omero_parade"]'

现在正常重启OMERO.web。

构建

为了构建,您需要

  • npm版本等于或高于npm 8.19.4

$ npm install

要构建并在源文件更改时自动重建,请运行

$ npm run watch

要构建用于生产的压缩、精简版本,请运行

$ npm run build

自定义过滤

用户可以通过添加自己的Python模块到设置中来自定义可用的过滤选项

omero.web.parade.filters

当前默认设置列出的是omero_parade应用本身和两个位于同一目录的其他模块,因此预期在应用安装时它们会位于PYTHONPATH上。

'["omero_parade", "omero_parade.annotation_filters", "omero_parade.table_filters"]'

这些模块中的每个都包含一个omero_filters.py,它预期实现两个方法:get_filtersget_script

get_filters方法用于编译由URL /omero_parade/filters/返回的过滤器列表。

get_filters的一些示例

# Return a list of filter names.
def get_filters(request, conn):
    return ["Rating", "Comment", "Tag"]

请求可能包括platedataset ID,如果我们只想支持某些数据类型的过滤器。在这个例子中,我们甚至可以检查是否存在OMERO.table。

def get_filters(request, conn):
    if request.GET.get('plate', None) is not None:
        return ["Table"]
    return []

命名过滤器的get_script函数应返回一个包含用户输入过滤器的参数列表和JavaScript过滤函数的JsonResponse

JavaScript函数将为每个要过滤的图像调用,并且还会传入包含用户输入的params对象。

# Return a JS function to filter images by various params.
def get_script(request, script_name, conn):

    dataset_id = request.GET.get('dataset')
    // OR...
    plate_id = request.GET.get('plate')

    if script_name == "Rating":
        # Load rating data for images in Dataset or Wells in Plate...
        # ...
        # var ratings = {imageId: rating} for all images
        var js_object_attr = 'id';  # or 'wellId' if filtering Wells

        # Return a JS function that will be passed an object
        # e.g. {id: 1} for Image or {id: 1, wellId:2} for Image in Well.
        # and should return true or false
        f = """(function filter(data, params) {
            var ratings = %s;
            var match = ratings[data.%s] == params.rating;
            return (params.rating === '-' || match);
        })
        """ % (json.dumps(ratings), js_object_attr)

        filter_params = [{'name': 'rating',
                        'type': 'text',
                        'values': ['-', '1', '2', '3', '4', '5'],
                        'default': '-',
                        }]
        return JsonResponse(
            {
                'f': f,
                'params': filter_params,
            })

自定义数据提供者

自定义数据提供者返回图像的数值数据,可以在表格中显示以进行排序,或绘制在图表中。注意:即使数据适用于井,也需要将其映射到图像ID,因为这是在各种列表、网格或图表布局中识别图像的共同分母。

使用与上述过滤相同的设置,omero.web.parade.filters设置中列出的每个模块也可以包含一个data_providers.py文件,该文件实现两个方法get_dataprovidersget_data

omero_parade/data_providers.py的示例

def get_dataproviders(request, conn):
    return ["ROI_count"]


def get_data(request, data_name, conn):
    """Return data for images in a Dataset or Plate."""
    dataset_id = request.GET.get('dataset')
    plate_id = request.GET.get('plate')
    field_id = request.GET.get('field')

    # ... get img_ids for container, then...

    if data_name == "ROI_count":
        # Want to get ROI count for images
        params = ParametersI()
        params.addIds(img_ids)
        query = "select roi.image.id, count(roi.id) from Roi roi "\
                "where roi.image.id in (:ids) group by roi.image"
        p = query_service.projection(query, params, conn.SERVICE_OPTS)
        roi_counts = {}
        for i in p:
            roi_counts[i[0].val] = i[1].val
        return roi_counts

发布流程

此存储库使用bump2version来管理版本号。要标记发布,请运行

$ bumpversion release

这将从当前版本中删除.dev0后缀,提交并标记发布。

要切换回开发版本,请运行

$ bumpversion --no-tag [major|minor|patch]

指定majorminorpatch,具体取决于开发分支将是一个主要、次要还是补丁发布。这也会添加.dev0后缀。

请记住,使用git push推送所有提交和标签。

许可证

与许多Open Microscopy Environment (OME)项目类似,此项目根据GNU通用公共许可证(GPL)v2或更高版本许可。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分布

omero-parade-0.2.4.tar.gz (280.2 kB 查看散列)

上传时间 源代码

构建分布

omero_parade-0.2.4-py3-none-any.whl (293.8 kB 查看散列)

上传时间 Python 3

支持