跳转到主要内容

一组用于从XNAT存储库下载/上传和列出数据的脚本。

项目描述

Xnat-utils是一个基于XnatPy包的脚本集合,方便地在XNAT上/下载数据和列出数据。

可选依赖

以下转换器是用于自动转换下载的图像(使用“–convert_to”和“–converter”选项)所必需的

安装

安装Python (>=3.4)

虽然许多系统(特别是在研究环境中)已经预装了Python 3(注意Python 2是不够的),但如果您的工作站还没有Python 3,这里有一些基本说明,介绍如何安装它。

macOS

macOS自带了一个略微修改过的Python版本,它在一些应用程序/服务中使用。对于一般使用来说,这通常是好的,但在某些情况下,例如在使用时,这些修改可能会导致问题。为了避免这些问题,我建议您使用Homebrew(https://brew.sh.cn)安装一个未经修改的Python版本,用于您的科学程序。为此,首先安装Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后使用以下命令安装Python

brew install python3

如果一切顺利,当你输入

which python3

它应该返回以下内容

/usr/local/bin/python3

如果不行或者遇到任何问题,请按照运行时收到的说明操作

brew doctor

请注意,这些说明仅作为建议,您不必全部遵循,只需与您的问题可能相关的那些即可。

Windows

使用最适合Python的安装程序(>=3.4)下载Windows版本的Python,请访问https://pythonlang.cn/downloads/windows/

Linux/Unix

Python3可能已经安装,如果没有安装,最好使用您的包管理器安装。

安装pip

Pip可能已经默认与Python包一起安装,因此首先检查是否已安装。

pip3 --version

请注意,如果您在macOS上使用Homebrew,它应该在/usr/local/bin中。

如果pip尚未安装,您可以通过下载以下脚本进行安装,https://bootstrap.pypa.io/get-pip.py,然后

python3 <path-to-downloaded-file>

安装XnatUtils包

可以从https://github.com/MonashBI/xnatutils.git下载XnatUtils的源代码(或使用git克隆)。要安装它,请cd到已下载的目录并运行

pip3 install xnatutils

如果您遇到权限拒绝错误,您可能需要使用sudo,或者如果您没有管理员访问权限,则可以使用带有--user标志的用户目录进行安装。

pip3 install --user xnatutils

我在安装progressbar2时遇到了一些困难,因为它与progressbar包存在冲突(它们都生成名为progressbar的包)。在这种情况下,将xnat-utils安装在一个虚拟环境中可能是一个好主意(https://virtualenv.readthedocs.io/en/latest/)。

认证

第一次使用这些实用工具时,您将需要输入要连接的服务器地址、用户名和密码。默认情况下,这些凭证的别名令牌将被存储在~/.netrc文件中,格式如下(文件权限设置为600)

machine <your-server-url>
user <your-alias-token>
password <your-alias-secret>

如果您不想存储这些凭证,请传递‘–no_netrc’(或‘-n’)选项。

如果您已经将凭证保存在~/.netrc文件中,后续调用将不需要您提供服务器地址或用户名/密码,直到令牌过期(如果您不想处理过期的令牌,您可以直接在~/.netrc文件中保存用户名/密码,但请小心处理重要密码)。要重置已保存的凭证,请再次提供包含协议(例如,‘https://’)的完整服务器地址的--server选项,或者直接编辑~/.netrc文件。

要连接到另一个XNAT服务器,请通过--server选项提供新的服务器地址。此服务器的凭证将与之前保存的服务器凭证一起保存。如果没有提供--server选项,则将使用文件中的第一个服务器。要使用备用服务器的保存凭证,您只需将备用服务器的地址提供为--server即可,以区分其他保存的服务器。例如,给定以下在~/.netrc文件中的保存凭证

machine xnat.myuni.edu
user myusername
password mypassword
machine xnat-dev.myuni.edu
user mydevusername
password mydevpassword

那么

$ xnat-ls -s dev MYPROJECT

就足够从保存的凭证列表中选择开发服务器。

用法

将安装六个命令

  • xnat-get - 下载扫描和资源

  • xnat-put - 上传扫描和资源(需要项目写权限)

  • xnat-ls - 列出项目/受试者/会话/扫描

  • xnat-rename - 重命名XNAT会话

  • xnat-varget - 获取元数据字段(包括“自定义变量”)

  • 使用xnat-varput设置元数据字段(包括“自定义变量”)

请通过传递‘-h’或‘–help’选项来查看每个工具的帮助信息。

正则表达式帮助

xnat-getxnat-ls使用的正则表达式语法在这里完全定义,https://docs.pythonlang.cn/2/library/re.html。然而,对于大多数基本用例,你可能只需要使用‘.’和‘*’操作符。

‘.’匹配任何字符,所以模式

MRH060_00._MR01

将匹配

MRH060_001_MR01
MRH060_002_MR01
MRH060_003_MR01
MRH060_004_MR01
MRH060_005_MR01
MRH060_006_MR01
MRH060_007_MR01
MRH060_008_MR01
MRH060_009_MR01

‘*’匹配前一个字符的0次或多次重复,这在与‘.’字符结合使用时最有用,以匹配通配符字符的字符串,例如

MRH060.*

将匹配MRH060项目中所有受试者/会话。

注意,当在命令行中使用使用‘*’的正则表达式时,你需要将它们用单引号括起来,以避免默认的通配符文件搜索,例如

$ xnat-ls 'MRH099.*'

可能还有另一种语法将证明是有用的,那就是‘(option1|option2|…)’。例如

MRH060_00(1|2|3)_MR01

将匹配

MRH060_001_MR01
MRH060_002_MR01
MRH060_003_MR01

有关更高级的语法,请参阅网络上众多的正则表达式教程。

项目详情


下载文件

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

源代码分发

xnatutils-0.9.1.tar.gz (28.8 kB 查看哈希值)

上传时间 源代码

构建分发

xnatutils-0.9.1-py3-none-any.whl (40.4 kB 查看哈希值)

上传时间 Python 3

支持者

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