跳转到主要内容

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

使用容器

还可以在DockerSingularity/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

1.0.0

  • 初始版本

0.0.1

  • 初始预发布版本,供评论和测试使用

项目详情


下载文件

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

源代码分发

galaxy-upload-1.0.1.tar.gz (8.7 kB 查看哈希值)

上传时间 源代码

构建分发

galaxy_upload-1.0.1-py3-none-any.whl (8.9 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面