为欧麦的Python Plugin

omero-parade的Python项目详细描述


https://travis-ci.org/ome/omero-parade.svg?branch=masterhttps://badge.fury.io/py/omero-parade.svg

Omero.游行

用于在omero.web中心面板中筛选数据的omero.web应用程序。

有关详细信息,请参见SUPPORT.md

要求

  • Omero 5.4.0或更新版本。

请注意,omero.parade与omero 5.4.0兼容,但它可以工作 最适合搭配Omero 5.4.6或更新版本。

从pypi安装

本节假设已经安装了omero.web。

使用pip

安装应用程序
$ pip install -U omero-parade

将Parade自定义应用程序添加到已安装的Web应用程序:

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

在网络客户端中心显示游行:

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

现在像往常一样重新启动omero.web。

构建

为了建造您需要:

  • NPM版本等于或大于3.0!NPM版本等于或大于 建议使用5.2!
$ npm install

生成未压缩版本并在源时自动重新生成 文件更改,运行:

$ npm run watch

要生成未压缩版本,请运行:

$ npm run build-dev

要为生产构建压缩的小型版本,请运行:

$ npm run build

自定义筛选

用户可以通过添加自己的筛选选项来自定义可用的筛选选项 python模块设置:

omero.web.parade.filters

当前的默认设置列出了omero_paradeapp本身和两个 在同一目录中的其他模块,因此预计 安装应用程序时,请在pythonpath上。

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

每个模块都包含一个omero_filters.py,它应该 实现2个方法: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"]

如果我们只想,请求可以包含platedatasetid 支持特定数据类型的筛选器。在这个例子中,我们甚至可以 检查盘子上是否有一张桌子。

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

命名筛选器的get_script函数应返回JsonResponse 其中包括用户输入到筛选器的参数列表 以及一个javascript过滤函数。

将为每个要筛选的图像调用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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有多个视图的java Recyclerview,删除addTextChangedListener()无效   java结果集问题   java Limit findAll()结果   用php连接java   Android中的java搜索按钮功能   java创建投币类   java如何在多个安全配置中使用Spring管理的独立自定义过滤器?   java使用带/不带“this”的未初始化最终字段合格者   java Android应用程序崩溃列表查看CSV文件   java在运行时动态生成一个函数(没有子函数),表示一个二进制表达式树,并使用Byte Buddy   java ArrayList无法打印一项   java数据。未加载带有spring boot JPA Postresql的sql   打开后摆动内部框架无法获得焦点。。。(爪哇)   在ApplicationContext销毁之前立即触发的java Spring关机事件?   servlet中的java会话与javascript中的会话存储相同