nimh数据存档python客户端

nda-tools的Python项目详细描述


保密协议工具

为了将数据提交给国家心理健康数据档案研究所(NDA),用户必须 验证他们的数据以确保其符合所需的格式。这是用保密协议完成的 验证工具。此外,用户还可以从保密协议中打包和下载数据。如果下载了相关数据 从s3开始,需要临时的联合aws令牌。已经开发了一个python包和命令行客户机来 允许用户以编程方式验证、打包、提交和/或下载数据。包和客户机与 验证, 提交包,以及 数据提交Web服务。

开始

安装python

您将需要一个python发行版来使用客户机。在终端/命令提示符下运行以下命令以确定是否安装了python:

python --version

如果安装了python,您将看到指示所安装python版本的输出。

如果python不可用,则需要从python.org下载并安装它。另请参阅文档:python2python3

注意:

  • 您可能需要管理权限、根权限或sudo权限才能安装python发行版。
  • python可能已安装,但在系统路径上不可用,请参阅python安装和使用文档

安装PIP

由于Python2.7.9pip是随Python一起发布的,您可以这样检查版本:

pip --version

如果安装了pip,您应该看到版本信息,如果没有,您应该安装pip。首先从https://bootstrap.py p a.io/get-pip.py" rel="nofollow">https://bootstrap.pypa.io/get-pip.py下载,然后运行以下命令为用户安装。

python get-pip.py --user

注意:

  • pip可能已安装,但在系统路径上不可用,请参阅python安装和使用文档

安装客户端

这些说明将帮助您设置运行客户端。

只需在终端或命令提示符中输入以下命令即可安装NDA工具:

pip安装保密协议工具

thi将自动安装nda工具包,包括命令行脚本和所需的包。

凭证

虽然不需要仅用于验证,但如果要创建包并将数据提交到保密协议,则必须 在我们这儿有一个活跃的帐户。这可以从保密协议网站请求。 您可以在这里阅读更多有关将数据贡献到保密协议中所需的信息。

您现在可以运行客户机了。

请注意,如果在运行客户端时遇到ssl错误,可能需要重新运行请求的pip安装,使用 pip install requests[安全]将安装更多支持ssl连接的附加软件包。

使用客户端

要查看验证工具python客户端可用的选项,请输入以下命令:

vtcmd-h

或要查看下载python客户端可用的选项,请输入:

下载命令-h

配置客户端

客户端提供的settings.cfg文件包含端点、文件和用户信息的可配置选项。

通常不需要更改"端点"部分中的条目,但是您可能希望修改"文件"和"用户"部分,其中包含验证结果、用户登录和AWS凭据信息的首选位置。

验证文件

知道要验证的csv文件的完整路径很重要。此外,如果您的数据 还包括清单和/或相关文件(如基因组学文件、成像文件),您还必须知道这些文件的完整路径, 它应该作为可选的命令行参数输入。否则,客户端将提示您输入 任何关联文件所在的目录。您还可以列出bucket、可选前缀和aws 如果相关文件位于AWS中,则提供凭据。

请注意:在列出关联文件的目录时,请包括到但不包括的文件夹 CSV文件中列出的文件名。

示例:

如果关联的文件名是users/[youruser]/documents/multipledataypes/data/1g_file.fastq,并且在CSV文件中列为:

< Buff行情>

data/1g_file.fastq

然后您将输入的目录是:

< Buff行情>

用户/[youruser]/documents/multipledataypes

您不应该将"data/"文件夹作为目录名的一部分。

要开始验证,必须输入文件列表(如果不在当前目录中,则为文件路径),并用空格分隔:

vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv 

如果您的数据包含清单文件,则必须输入找到清单文件的目录,并用空格隔开:

vtcmd submission_data/sample_imagingcollection01.csv  -m submission_data/Manifests

如果有关联的文件,请输入找到它们的目录,用空格隔开:

vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -l MultipleDataTypes testdata/with_associated_files 

如果文件位于当前工作目录以外的其他位置,则必须输入完整的 文件路径:

vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -l Users/[youruser]/Downloads/SubmissionData testdata/with_associated_files

如果关联的文件位于s3中,则必须包含bucket名称、访问密钥和密钥。 访问和密钥也可以存储在settings.cfg文件中。

vtcmd MultipleDataTypes/genomics_sample03.csv testdata/with_associated_files/genomics_sample03.csv -s3 my_bucket -ak XXXXXXXXXXXXXX -sk XXXXXXXXXXXXXX

注意:您也可以上传本地和s3中保存的相关文件。只需确保包含 保存本地文件(-l path/to/local/associated/files)

要创建包,请在命令行参数的末尾输入"-b"。你也可以输入你的用户名,密码, AWS凭据、集合ID或备用终结点标题,以及提交的标题和描述,或者您可以输入 稍后在客户机提示时提供信息。直到所有文件都被验证并且所有关联的文件 位于本地驱动器或S3中,客户端将不会开始生成提交包。

包提交和上载完成后,您将在收件箱中收到来自保密协议的电子邮件,确认 提交成功。

如果你的文件上传被中断,你可以重新开始你的提交,如果你有提交ID,从中断的地方开始, 在首次创建提交时提供给您的。要使用客户端重新启动提交,请输入 以下命令:

python --version
0

此时,您还可以选择包括用户名、密码、aws凭据和目录列表,或者在提示时输入 由客户提供。

下载数据

要下载数据,应该使用downloadcmd命令。这提供了几个选项来下载您的nda打包数据 或数据的子集。所有文件都会自动下载到~/aws\u downloads文件夹,但您可以通过 在命令行中指定一个新目录以保存文件。

请注意,数据一次传输的最大限制是5TB。

所有包数据

通过传递包id:

下载命令<;包id>;-dp

注意:除非您用关联文件创建了NDA包,否则它不会下载关联文件。下载关联的步骤 文件如下。

下载.txt文件

downloadcmd命令有两个选项用于下载.txt文件中的数据。如果你下载了你的保密协议包,你会发现 txt文件,其中许多表示数据度量。基因组学、成像和其他相关数据将列在这些.txt文件中 作为S3链接。如果您想下载.txt文件中的所有s3链接,可以通过传递-ds标志来指示。

下载命令路径/to/data/structure/file/image03.txt-ds

另一个选择是创建您自己的.txt文件,列出您想从NDA下载的所有S3链接。这个罐头 成为所需数据的子集,或所有内容的列表。

下载命令路径/to/all/s3/txt/file/alls3.txt-t

重新启动下载

通常情况下,您的下载可能会被中断。若要重新启动下载过程,请输入与原来相同的命令 运行,但包括-r标志和下载所有文件的目录:

downloadcmd path/to/all/s3/txt/file/alls3.txt-t-r/users/<;您的用户>;/aws&u下载

进一步帮助

如果您对此验证工具python客户端有任何问题,或者希望提供反馈/评论, 请发送电子邮件至ndahelp@mail.nih.gov

保密协议工具

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
AmazonS3查找从S3forJava下载的压缩文件的MIME类型   java如何使用Selenium在<span>中查找具有特定文本的元素   python如何使用OpenIEDemo生成自定义三元组。由stanfordnlp提供的java   java遇到“方法不适用”编译错误   java如何使用Mockito在Looper中运行的验证代码。getMainLooper?   类Java目录错误   java在已知其他泛型信息时使用原始类型   java connect()和disconnect()在哪里实现?   java使用PDF Box库拆分PDF,生成的PDF几乎与源PDF文件大小相同   java PowerMockito返回错误的对象   java如何找到TIBCO集合消息的字节编码?   java Basic音乐播放器下一步和上一步按钮   添加模块描述符时,java没有名为“entityManagerFactory”的bean可用   java为什么我的代码不是线程安全的?   eclipse java。引用项目中的类的lang.NoClassDefFoundError