一个codex api客户端和python库

onecodex的Python项目详细描述


一个codex api-python客户端库和cli

圆形cicodecov黑码风格

命令行界面(cli)和python客户端库,用于与one codex v1 api交互(api docs)。

维护人员:@polyatail@bovee@boydgreenfield

安装

这个包提供了三个主要的功能:(1)核心python客户机库;(2)一个简单的cli,用于与使用该核心库的one codex平台交互;(3)客户机库的可选扩展,它提供了许多针对高级用户的功能,并提供了在交互式笔记本电脑环境(如iPython笔记本电脑)中使用的功能。

基本安装

cli(和核心python库)可以简单地使用pip安装。要下载最少的安装(\35;1和\35;2),只需运行:

啊!

带可选扩展的安装

还要下载客户端库的可选扩展及其所有依赖项,请安装onecodex[all]。警告:由于扩展中使用的其他包依赖于安装过程中存在的numpy,因此必须先单独安装numpy。因此,如果您没有安装numpy,并且要安装onecodex[all]请执行以下操作:

啊!

使用cli

登录

cli支持使用一个codex api密钥或一个codex用户名和密码进行身份验证。 使用您的用户名和密码登录:

啊!

此命令将在~/.onecodex处保存凭据文件,然后在下次使用cli或python客户端库(仅限os x/linux)时自动使用该文件进行身份验证。您可以通过onecodex注销从计算机中清除此文件并删除api密钥

在共享环境中,我们建议直接使用一个codex api密钥,而不是登录并将其存储在凭据文件中。要使用api密钥身份验证,只需将密钥作为参数传递给onecodex命令:

啊!

您的api密钥可以在一个codex设置页面上找到,应该是32个字符串。您还可以在Web应用程序的"设置"页上生成新的API密钥。注意:由于api密钥提供对帐户中所有示例和元数据的访问,您应该如果您的密钥被意外泄露或保存(例如,签入github存储库),请立即在网站上重置密钥。

上载文件

cli支持通过upload命令上载fasta或fastq文件(可选gzip压缩文件)。

onecodex upload bacterial_reads_file.fq.gz

一个命令也可以上载多个文件:

onecodex upload file1.fq.gz file2.fq.gz ...

您还可以使用python客户端库上载文件:

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,}}

可以使用python线程(或多个进程)并行进行上载,例如:

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))

资源

cli支持检索一个codex示例和分析。可以查询以下资源:

只需调用onecodex命令,将上述资源名称之一用作子命令(全部小写)。例如:

pip install onecodex
0

使用python客户端库

初始化

要加载API,请使用以下导入:

pip install onecodex
1

通过传递api密钥或自动从~/.onecodex获取凭据来实例化api客户机(如果您以前调用过onecodex login

pip install onecodex
2

资源

资源在api对象上作为属性公开。可以直接通过资源的id获取资源,也可以使用查询接口获取资源。目前,您可以使用get()where()访问资源。如果您需要帮助查找示例的ID,则其标识符是我们网页上URL的一部分:例如,对于在https://app.onecodex.com/analysis/public/1D9491C5C31345B6上进行的分析,其ID为1D9491C5C31345B6。ID都是短的唯一标识符,由16个十六进制字符组成(0-9a-f)。

pip install onecodex
3

除了给定资源的单个实例上的方法(例如asample或aanalysis)之外,库还提供了聚合样本集或分析集的方法:

pip install onecodex
4

开发

在开发之前,需要gitpython(version>;=2.7和/或>;=3.4)。我们建议在python版本管理中使用pyenv。

从github下载客户端库:

pip install onecodex
5

要设置项目,请先创建虚拟环境,然后安装依赖项:

pip install onecodex
6

测试通过makefile运行,并调用tox。注意,由于安装依赖项,这可能需要一段时间:

pip install onecodex
7

在开发过程中,我们使用预提交自动过梁,使用blackflake8和各种空白和换行格式设置程序。

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

推荐PyPI第三方库


热门话题
打开OrientDB数据库时发生java错误   java Hibernate合并函数偶尔会导致主键冲突   java如何在SourceTransferndexit将msg放入MQ   JavaEclipse不正确地导入项目   Java中的数据结构,带有删除节点后所有节点的操作   java创建zip存档时,什么构成重复条目   java如何计算所有值并比较每个对象?   java Threadflipbegin在Google Pixel 3上被阻止55秒   java Eclipse Hibernate:未找到适合jdbc的驱动程序:mysql://localhost:3306/hibernatedb   java Quartz计划程序未运行   java如何从junit扩展向@Test返回值?   java忽略搜索字段中的大小写   java如何从图库中选取图像,裁剪并保存在数据分区中   java CST/CDT时区更改问题   url从Java读取Twitter页面   java是否要在每个列表项中打开WebView单击?   比较输入值的Java布尔逻辑初学者   如何在服务器端使用java从客户端的HTTP POST请求接收和解析JSON对象   javascript在一个get请求中,如何启动程序,然后使用另一个get请求停止它?