一个codex api客户端和python库
onecodex的Python项目详细描述
一个codex api-python客户端库和cli
命令行界面(cli)和python客户端库,用于与one codex v1 api交互(api docs)。 维护人员:@polyatail,@bovee,@boydgreenfield 这个包提供了三个主要的功能:(1)核心python客户机库;(2)一个简单的cli,用于与使用该核心库的one codex平台交互;(3)客户机库的可选扩展,它提供了许多针对高级用户的功能,并提供了在交互式笔记本电脑环境(如iPython笔记本电脑)中使用的功能。 cli(和核心python库)可以简单地使用 还要下载客户端库的可选扩展及其所有依赖项,请安装onecodex[all]。警告:由于扩展中使用的其他包依赖于安装过程中存在的 cli支持使用一个codex api密钥或一个codex用户名和密码进行身份验证。
使用您的用户名和密码登录: 此命令将在 在共享环境中,我们建议直接使用一个codex api密钥,而不是登录并将其存储在凭据文件中。要使用api密钥身份验证,只需将密钥作为参数传递给 您的api密钥可以在一个codex设置页面上找到,应该是32个字符串。您还可以在Web应用程序的"设置"页上生成新的API密钥。注意:由于api密钥提供对帐户中所有示例和元数据的访问,您应该如果您的密钥被意外泄露或保存(例如,签入github存储库),请立即在网站上重置密钥。 cli支持通过 一个命令也可以上载多个文件: 您还可以使用python客户端库上载文件: 它返回一个 可以使用python线程(或多个进程)并行进行上载,例如: cli支持检索一个codex示例和分析。可以查询以下资源: 您的示例( 元数据示例( 只需调用 要加载API,请使用以下导入: 通过传递api密钥或自动从 资源在api对象上作为属性公开。可以直接通过资源的id获取资源,也可以使用查询接口获取资源。目前,您可以使用 除了给定资源的单个实例上的方法(例如a 在开发之前,需要 从github下载客户端库: 要设置项目,请先创建虚拟环境,然后安装依赖项: 测试通过makefile运行,并调用tox。注意,由于安装依赖项,这可能需要一段时间: 在开发过程中,我们使用安装
基本安装
pip
安装。要下载最少的安装(\35;1和\35;2),只需运行:带可选扩展的安装
numpy
,因此必须先单独安装numpy
。因此,如果您没有安装numpy
,并且要安装onecodex[all]
请执行以下操作:使用cli
登录
~/.onecodex
处保存凭据文件,然后在下次使用cli或python客户端库(仅限os x/linux)时自动使用该文件进行身份验证。您可以通过onecodex注销从计算机中清除此文件并删除api密钥
onecodex
命令:上载文件
upload
命令上载fasta或fastq文件(可选gzip压缩文件)。onecodex upload bacterial_reads_file.fq.gz
onecodex upload file1.fq.gz file2.fq.gz ...
uploaded_sample1=ocx.Samples.upload("/path/to/file.fastq")# Or upload a tuple of paired end filesuploaded_sample2=ocx.Samples.upload(("/path/to/R1.fastq","/path/to/R2.fastq"))
samples
资源(从0.5.0
开始)。示例可以在上载时使用这些相应的关键字参数与标记、元数据和项目相关联:# Note format must match the schema defined for our API, with arbitrary# metadata allowed as a single-level dictionary in the `custom` field.# See https://docs.onecodex.com/reference#the-metadata-resource for details.metadata={"platform":"Illumina NovaSeq 6000","date_collected":"2019-04-14T00:51:54.832048+00:00","external_sample_id":"my-lims-ID-or-similar","custom":{"my-string-field":"A most interesting sample...","my-boolean-field":True,"my-number-field-1":1,"my-number-field-2":2.0,}}
importconcurrent.futuresuploaded_samples=[]withconcurrent.futures.ThreadPoolExecutor(max_workers=4)asexecutor:futures={executor.submit(ocx.Samples.upload,file)forfileinLIST_OF_FILES}forfutureinconcurrent.futures.as_completed(futures):try:uploaded_samples.append(future.result())exceptExceptionase:print("An execption occurred during your upload: {}".format(e))
资源
示例
)元数据
)分析
,包括具有附加功能和字段的多个子类型:分类
,这是样本的基本亚基因组分类结果面板,在矽胶面板中是针对特定基因或其他功能性标记的面板(在一个代码上的示例)
作业
,它提供有关针对给定分析执行的分析的名称、版本和类型的信息onecodex
命令,将上述资源名称之一用作子命令(全部小写)。例如:pip install onecodex
0
使用python客户端库
初始化
pip install onecodex
1
~/.onecodex获取凭据来实例化api客户机(如果您以前调用过
onecodex login
pip install onecodex
2
资源
get()
或where()
访问资源。如果您需要帮助查找示例的ID,则其标识符是我们网页上URL的一部分:例如,对于在https://app.onecodex.com/analysis/public/1D9491C5C31345B6
上进行的分析,其ID为1D9491C5C31345B6
。ID都是短的唯一标识符,由16个十六进制字符组成(0-9a-f
)。pip install onecodex
3
sample
或aanalysis
)之外,库还提供了聚合样本集或分析集的方法:pip install onecodex
4
开发
git
和python
(version>;=2.7和/或>;=3.4)。我们建议在python版本管理中使用pyenv。pip install onecodex
5
pip install onecodex
6
pip install onecodex
7
预提交
自动过梁,使用black
,flake8
和各种空白和换行格式设置程序。推荐PyPI第三方库