OMERO.web的Python插件
项目描述
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_filters和get_script。
get_filters方法用于编译由URL /omero_parade/filters/返回的过滤器列表。
get_filters的一些示例
# Return a list of filter names. def get_filters(request, conn): return ["Rating", "Comment", "Tag"]
请求可能包括plate或dataset 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_dataproviders和get_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]
指定major、minor或patch,具体取决于开发分支将是一个主要、次要还是补丁发布。这也会添加.dev0后缀。
请记住,使用git push推送所有提交和标签。
许可证
与许多Open Microscopy Environment (OME)项目类似,此项目根据GNU通用公共许可证(GPL)v2或更高版本许可。
版权
2019-2023,Open Microscopy Environment
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。