Galaxy 上传工具
项目描述
galaxy-upload - Galaxy 命令行上传工具
一个用于从命令行上传文件到Galaxy服务器的工具。galaxy-upload 支持 22.01+ 的 Galaxy 服务器,包括对使用 tus 协议的断点续传上传的支持。
安装
使用pip
需要Python 3.7或更高版本。
要安装
$ pip install galaxy-upload
此安装将安装两个命令:用于将文件上传到Galaxy服务器的 galaxy-upload,以及用于查找传递给 galaxy-upload 命令的Galaxy历史的辅助工具 galaxy-history-search。
为了使您的生活更加轻松,建议您将其安装到Python虚拟环境中。最简单的方法是使用Python内置的 venv 模块。
$ python3 -m venv ~/galaxy-upload $ . ~/galaxy-upload/bin/activate $ pip install galaxy-upload
使用Conda
或者,可以使用Conda 包管理器安装 galaxy-upload。可以在 bioconda 频道中找到 galaxy-upload Conda 包,并按照以下方式安装。
$ conda create -n galaxy-upload -c conda-forge -c bioconda galaxy-upload $ conda activate galaxy-upload
使用容器
还可以在Docker 或 Singularity/Apptainer 容器中运行 galaxy-upload。由 BioContainers 项目自动构建和维护的 galaxy-upload BioContainer。
使用Docker容器
$ docker run -it --rm -v "$(pwd):$(pwd)" -w "$(pwd)" -u "$(id -u):$(id -g)" \ quay.io/biocontainers/galaxy-upload:1.0.0--pyhdfd78af_0 /bin/bash
或者作为不进入交互式shell的单个命令
$ docker run --rm -v "$(pwd):$(pwd)" -w "$(pwd)" -u "$(id -u):$(id -g)" \ quay.io/biocontainers/galaxy-upload:1.0.0--pyhdfd78af_0 galaxy-upload
根据您想要上传的数据所在位置调整 -v 和 -w 的值。在上面的示例中,假设它们在当前工作目录中。
使用Singularity容器
$ singularity run https://depot.galaxyproject.org/singularity/galaxy-upload:1.0.0--pyhdfd78af_0
或者作为不进入交互式shell的单个命令
$ singularity run https://depot.galaxyproject.org/singularity/galaxy-upload:1.0.0--pyhdfd78af_0 galaxy-upload
可能还有其他(较新)版本的容器可用。BioContainers 不使用 latest 标签,但您可以在 galaxy-upload quay.io 页面 找到所有标签(这些标签对于托管在 depot.galaxyproject.org 的 Singularity 图像以及 Docker 图像都是有效的)。
用法
上传一对fastq.gz文件
$ galaxy-upload --url https://usegalaxy.org \ --api-key 70ffeec0ffeea11e1eaccede1337loaf --history-name 'Run 2' \ RUN2_F_001.fastq.gz RUN2_R_001.fastq.gz RUN2_F_001.fastq.gz ━━━━━━━━━━━━━━━━━━━━━━━━━━ 100/100 mB ? eta 0:00:00 RUN2_R_001.fastq.gz ━━━━━━━━━━━━━━━━━━━━━━━━━━ 100/100 mB ? eta 0:00:00
必需的参数是Galaxy服务器URL、API密钥以及历史ID或名称。您可以在登录后通过导航到 用户 ⮕ 偏好设置 ⮕ 管理API密钥 在Galaxy UI中找到API密钥。
您可以将URL和API密钥选项作为环境变量设置,以避免重新输入,并防止密钥在 ps(1) 输出中对其他用户可见。
$ export GALAXY_URL=https://usegalaxy.org $ export GALAXY_API_KEY=70ffeec0ffeea11e1eaccede1337loaf $ galaxy-upload --history-name stuff reads.bam
在选择按名称选择历史记录时,使用正则表达式进行匹配。如果名称匹配多个历史记录,galaxy-upload 将退出并输出有关匹配的历史记录的详细信息,然后退出并显示错误。然后您可以使用 --history-id 选项选择正确的历史记录ID。
$ galaxy-upload --history-name stuff reads.bam Active Histories ┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ID ┃ Name ┃ Last Modified ┃ ┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ 70ffeec0ffeead07 │ Newer stuff │ Mon Jul 11 15:54:05 2022 │ │ a11e1eaccedeble8 │ Older stuff │ Wed May 25 18:03:46 2022 │ └──────────────────┴─────────────┴──────────────────────────┘ ERROR: Multiple histories matching stuff found! Use --history-id to select one. $ galaxy-upload --history-id 70ffeec0ffeead07 reads.bam reads.bam ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 gB ? eta 0:00:00
如果您想在不上传的情况下查找正确的历史记录,请使用 galaxy-history-search 命令。可以使用 --ignore-case 选项进行不区分大小写的搜索。
$ galaxy-history-search --ignore-case trinity Active Histories ┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ID ┃ Name ┃ Last Modified ┃ ┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ 084649feb42d4295 │ : test trinity inputs │ Wed Dec 9 10:02:35 2020 │ │ f697f94ca47080cf │ automate_trinity │ Mon Dec 21 17:40:24 2015 │ │ c79278c7a37e619e │ TrinityRun │ Fri Mar 10 14:21:56 2017 │ │ ee31286b26ff3352 │ trinity │ Wed Sep 30 09:04:03 2020 │ └──────────────────┴───────────────────────┴──────────────────────────┘
支持正则表达式,例如,仅查找以 trinity 结尾的历史记录。
$ galaxy-history-search --ignore-case 'trinity$' Active Histories ┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ ID ┃ Name ┃ Last Modified ┃ ┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ f697f94ca47080cf │ automate_trinity │ Mon Dec 21 17:40:24 2015 │ │ ee31286b26ff3352 │ trinity │ Wed Sep 30 09:04:03 2020 │ └──────────────────┴──────────────────┴──────────────────────────┘
多个选项与Galaxy UI的上传对话框中的选项相同,包括 --file-type、--dbkey 和 --space-to-tab。可以使用 --file-name 选项在上传单个文件时控制历史记录中的文件名(默认情况下,它将与本地文件系统上的名称相同)。
要支持中断上传的恢复,请使用 --storage 选项指向状态文件(如果不存在,将创建它)。
$ galaxy-upload --file-type bam --file-name Reads --storage /data/upload.txt /data/reads.bam
如果上传中断,只需重复相同的命令即可从中断点恢复上传。
请注意,如果您尝试重新上传(而不是继续)之前已经上传过的文件,您需要从存储文件中删除它或使用不同的存储文件。
历史记录
1.0.1
由 @natefoo 在 https://github.com/galaxyproject/galaxy-upload/pull/7 中使用 conda 和容器安装/使用文档
由 @natefoo 在 https://github.com/galaxyproject/galaxy-upload/pull/9 中使用 click 强制要求文件参数存在
由于 upload_chunk() 问题,将 tuspy 固定在 !=1.0.1。由 @natefoo 在 https://github.com/galaxyproject/galaxy-upload/pull/10 中
1.0.0
初始版本
0.0.1
初始预发布版本,供评论和测试使用
项目详情
galaxy-upload-1.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f0944e01ee377f53c02f15f66fb42a8516fed3be239d4406c72713905c36c359 |
|
MD5 | cecd2e2fa0d77b6ac5bdde0ba2e27dca |
|
BLAKE2b-256 | 0ff5ae8f161e7e76d9800985685f1daf004edf097904a0d238b312ec98c5c904 |
galaxy_upload-1.0.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cd0e97403ffccf9a489d1e83061199685651b67fb9250e7c336ebbc24c565242 |
|
MD5 | 86eab373e0d241a7c072239b289abbf6 |
|
BLAKE2b-256 | a251c4a6cec08bf2ccc3b3bcfe956580670d64d567c001c87b10da377f36d45e |