Galaxy工具YAML数据库的管理工具
项目描述
Galaxy工具数据库
管理Galaxy工具运行时环境元数据的YAML数据库的小型包。
此Python项目可以通过PyPI使用pip进行安装。
$ python3 -m venv .venv $ . .venv/bin/activate $ pip install gx-tool-db
这将安装可执行文件gx-tool-db。
$ gx-tool-db --help
此库和相关脚本在MIT许可下授权。
开发
从仓库的克隆版本运行gx-tool-db,并使用pip install -e应用本地更改。
$ python3 -m venv .venv $ . .venv/bin/activate $ pip install -e .
示例项目
此项目允许自动化导入有关工具的各种元数据,并导出包括报告在内的各种工件。要查看围绕数据库的示例项目设置以及如何使用gx-tool-db将数据导入此类数据库并导出报告 - 请查看https://github.com/jmchilton/gx-tool-db-project。
特别是,查看bootstrap_db.sh和export.sh以获取使用真实数据的示例调用。将数据库存储为结构化的YAML文件允许结果数据以非常自然的方式存储在Github项目中 - 查看该项目的最新生成数据库中的tools_metadata.yml。
入门指南
首先从几个服务器上启动数据
$ mkdir my_tool_db $ cd my_tool_db $ gx-tool-db import-server --server org $ gx-tool-db import-server --server eu $ gx-tool-db import-server --server test
接下来,我们可以使用启动数据来导出所有服务器或单个服务器上所有工具的最新版本信息。这些数据可以导出为标准的CSV文件或更典型的Galaxy风格表格("tsv")数据。
$ gx-tool-db export-tabular --all-coverage --output coverage_public_servers.tsv $ gx-tool-db export-tabular --coverage org --coverage test --output coverage_public_servers.csv
接下来,让我们开始应用工具标签。使用 import-label 命令从文件或URL读取一个已废弃工具ID的列表。
$ gx-tool-db import-label https://gist.githubusercontent.com/jmchilton/651dad1289cb897cfaa92a86a39a184e/raw/65da6b11353732b550f9b1e0f9dc218a6bcef916/gistfile1.txt deprecated
还可以使用 label-workflow-tools 命令将标签应用于工作流或工作流目录中的所有工具ID。
$ git clone https://github.com/galaxyproject/iwc.git $ gx-tool-db label-workflow-tools iwc/ iwc_required
现在可以使用废弃和iwc_required标签来构建工具箱相关工件。以下命令将从main(usegalaxy.org)的工具集中创建两个Ephemeris/ansible-galaxy-tools安装YAML文件。第一个将仅包含IWC工作流所需的工具,第二个将包含main的整个工具箱,但排除废弃的工具。
$ gx-tool-db export-install-yaml main --require-label iwc_required $ gx-tool-db export-install-yaml main --exclude-label deprecated
工具面板视图(https://docs.google.com/presentation/d/1qKhWhJYe3LmDd0sKaY247s4DxjjZdi807YV_4TqYfGA)也可以从这些工具标签构建。
以下命令将生成一个文件(best_practices.yml),它将是包含仅带有 iwc_required 标签的工具的usegalaxy.org工具面板的冻结版本。
$ gx-tool-db export-panel-view best_practices main --require-label iwc_required
以下命令将生成一个文件(best_practices.yml),它将是包含仅带有 iwc_required 标签的工具的usegalaxy.org工具面板的冻结版本。
由于Galaxy不了解这些外部标签,面板被冻结,因此需要重新运行上述命令以添加新标签的工具。或者,当使用 --exclude-label 时,可以将工具添加到main的部分,并且它们将被假定为非废弃工具,并出现在工具面板中。
$ gx-tool-db export-panel-view best_practices main --exclude-label deprecated
此应用程序提供了一些自动应用这些工具标签的实用程序,但在分组工具时,手动整理仍然很重要。这可以直接在YAML文件中完成,或使用电子表格软件。
使用上述 export-tabular 命令中的 --label 来包括指定标签的列(这些标签甚至不需要事先存在)。然后可以使用 import-tabular 重新导入相同的电子表格,并使用相同的标签将数据读回到结构化的gx-tool-db数据库文件中。
$ gx-tool-db export-tabular --all-coverage --label really_cool --label meh --output to_curate.tsv $ gx-tool-db import-tabular to_curate.tsv --label really_cool --label meh
对于这些电子表格命令,目标电子表格也可以是一个Google Sheets ID,用于协作编辑。
$ gx-tool-db export-tabular --all-coverage --label really_cool --label meh --output 'sheet:1N84CziEyW0Z109slrL33cuFt3Wpuu037zogkBMhk-C0' $ gx-tool-db import-tabular 'sheet:1N84CziEyW0Z109slrL33cuFt3Wpuu037zogkBMhk-C0' --label really_cool --label meh
最后,为了帮助手动整理数据库,可以将工具运行时结果存储在数据库中。
$ gx-tool-db import-tests https://raw.githubusercontent.com/almahmoud/anvil-misc/master/reports/anvil-production/tool-tests/gxy-auto-06-27-16-32-39-1/results.json anvil
然后将测试数据摘要包括在 export-tabular` 中,以帮助整理工具标签 - 要么包括所有测试数据标签,要么指定某些标签。
$ gx-tool-db export-tabular --all-tests --label really_cool --label meh --output to_curate_all_the_tests.tsv $ gx-tool-db export-tabular --tests anvil --label really_cool --label meh --output to_curate_only_anvil_tests.tsv
还可以加载有关在 Galaxy Training Network 教程中如何使用工具的元数据。
$ git clone https://github.com/galaxyproject/training-material.git $ gx-tool-db import-trainings training-material
可以使用 export-tabular 命令的 --training-topcis 和 --training-tutorials 标志分别包括这些教程和引用工具的主题的列。
历史记录
0.4.0 (2022-02-16)
修复更多参数以使用连字符代替下划线。
添加新命令以添加来自服务器的所有工具的标签(用于启动风味)。
修复和改进readme。
0.3.0 (2021-09-15)
导入并允许从初始服务器请求中导出更多数据。
0.2.0 (2021-09-15)
各种增强 - 版本数据库、递归导入元数据、添加训练元数据到模型等。
0.1.0 (2021-09-13)
初始版本。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码发行版
构建发行版
gx-tool-db-0.4.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 411b24b22d82d35a73476b341c9128487ded47e9a76d93eea452173f873f86d9 |
|
MD5 | 0541678ebe9c144befb4727ece76ece8 |
|
BLAKE2b-256 | 2af432dd3fc50609d61bf03eb02f1f49df73f3d74856b499578b25b298ec7b65 |
gx_tool_db-0.4.0-py3.8.egg的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d45183c39ce71631cd1430d92f2633d70aa9e6d784b9361989b323f5ea8fd64d |
|
MD5 | aaaea723b5e89845724ae0a25e69e5ea |
|
BLAKE2b-256 | ecbebc6e0d9ce74e084fdd4946a55451223581da799cb6dcc36b3cea46ddbd09 |
gx_tool_db-0.4.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 10f8d7681d1ad4a447da1a63c9a57fafe2c764ee35b611f364310f09d7135dcc |
|
MD5 | a36fee1e93868569144ec8967f6bc815 |
|
BLAKE2b-256 | 30b0f557ab9d884c5627c510cf877ee6f09bdc7e9facfab3874ac3ea3d328da4 |