1介绍

sevenbridges是一个R / Bioconductor包提供了一个接口七桥的公共API。包括支持的平台七桥平台,癌症基因组学云(公司治理文化),Cavatica

从我们的文档了解更多七桥平台癌症基因组学云(公司治理文化)

1.1R客户七桥API

sevenbridges包只支持v2 +版本的API,因为v2之前版本不兼容的通用工作流语言(CWL)。这个包提供了一个简单的接口来访问和尝试各种方法。

有两种方式构建API调用。例如,您可以使用低级的API调用,使用参数路径,查询,身体。这些都是记录在API参考图书馆七桥平台公司治理文化。一个低级的例子要求“所有项目列表”如下所示。在这个要求,你也可以通过查询身体作为一个列表。

库(sevenbridges) < -身份验证(令牌=“your_token”,平台=“aws-us”)美元api(=“项目”,路径方法=“获得”)

(高级用户选项)构建一个API请求的第二种方式是直接使用httr包让你的API调用,如下所示。

美元的项目()

1.2API的一般信息

在我们开始之前,请记住以下几点:

抵消限制

每个API调用接受两个参数抵消限制

  • 抵消定义检索项目开始的地方。
  • 限制定义项目你想要的数量。

默认情况下,抵消被设置为0限制被设置为One hundred.。因此,你的API请求返回第一个100件当你列表项或寻找物品的名字。搜索和所有项目列表,使用完成= TRUE在你的API请求。

搜索通过ID

通过ID搜索时,你的请求将返回你的资源,因为它是独一无二的。因此,你不需要设置抵消限制手动。这是一个很好的实践,找到你的资源的ID和这个ID作为输入传递给你的任务。你可以找到一个资源的ID在URL的最后一部分在可视化界面或通过API请求列出资源或资源的详细信息。

按名称搜索

按名称搜索返回所有部分匹配,除非你指定确切= TRUE

1.3安装

sevenbridges包是可用的释放重击从Bioconductor分支。

安装的释放分支,使用:

install.packages (“BiocManager”) BiocManager::安装(“sevenbridges”)

安装的重击分支,使用:

install.packages (“BiocManager”) BiocManager::安装(“sevenbridges version =“重击”)

因为我们不断改善我们的API和客户端库,还请访问我们GitHub库最近的新闻和最新版本的包。

如果你没有devtools

这个安装要求的devtools包中。如果你没有这个包,你可以从凹口安装它。

install.packages (“devtools”)

你可能会得到一个错误缺失系统依赖关系等旋度openssl。例如,在Ubuntu中,您可能需要先做下面的安装devtools你需要和建造小插曲pandoc

apt-get更新apt-get安装libcurl4-gnutls-dev libssl-dev pandoc pandoc-citeproc

如果devtools已经安装

安装最新版本sevenbridges从GitHub以下:

install.packages install.packages (“BiocManager”) (“readr”) devtools:: install_github(“小企业/ sevenbridges-r回购= BiocManager::存储库(),build_vignettes = TRUE,依赖关系= TRUE)

如果你有麻烦pandoc并不想安装它,集build_vignettes = FALSE为了避免小插曲。

2快速入门

更多细节关于如何使用API客户端在R,请查阅七桥API参考小节为一个完整的指南。

2.1创建身份验证对象

通过API之前,您可以访问您的帐户,您必须提供凭据。你可以获得凭证的形式“身份验证令牌”开发人员选项卡帐户设置在可视化界面。一旦你得到了这个,创建一个身份验证对象,所以记得你的身份验证令牌和API的路径。所有后续请求将利用这些两条信息。

让我们先加载包:

库(“sevenbridges”)

你有三个不同的方式来提供你的令牌。选择一个方法如下:

  1. 直接验证。这明确,暂时设置你的令牌和平台类型(或者,API基础URL)函数调用的参数身份验证()
  2. 身份验证通过系统环境变量。这将读凭据信息来自两个系统环境变量:SB_API_ENDPOINTSB_AUTH_TOKEN
  3. 身份验证通过用户配置文件。这个文件,默认情况下$ HOME / .sevenbridges /凭证,提供了一个有组织的方式收集和管理你所有的七桥平台API认证信息。

方法1:直接验证

这是最常见的构造方法身份验证对象。例如:

(< -身份验证(平台=“公司治理文化”,令牌=“your_token”))
使用平台:公司治理文化= = Auth = = url: https://cgc-api.sbgenomics.com/v2/标记:< your_token >

方法2:环境变量

在您的系统设置这两个环境变量,您可以使用该函数sbg_set_env ()。例如:

sbg_set_env (“https://cgc-api.sbgenomics.com/v2”、“your_token”)

注意,这种变化可能只是暂时的,请使用标准方法来设置持久根据您的操作系统环境变量。

创建一个身份验证对象:

< -身份验证(从=“env”)

方法3:用户配置文件

假设我们已经创建的配置文件命名凭证目录下$ HOME / .sevenbridges /:

[aws-us-rfranklin] api_endpoint = https://api.sbgenomics.com/v2 auth_token = token_for_this_user #这是一个评论:#另一个用户在同一平台[aws-us-rosalind-franklin] api_endpoint = https://api.sbgenomics.com/v2 auth_token = token_for_this_user(默认)api_endpoint = https://cgc-api.sbgenomics.com/v2 auth_token = token_for_this_user (gcp) api_endpoint = https://gcp-api.sbgenomics.com/v2 auth_token = token_for_this_user

加载用户配置文件aws-us-rfranklin从这个配置文件,只需使用:

< -身份验证(= "文件",profile_name =“aws-us-rfranklin”)

如果profile_name没有指定,我们将尝试加载配置文件命名(默认):

< -身份验证(从=“文件”)

注意:API路径(基础url)每个7个桥梁环境而有所不同。一定要提供正确的路径环境使用。API路径的环境:

平台名称 API的基URL 短名称
七桥平台(美国) https://api.sbgenomics.com/v2 “aws-us”
七桥平台(欧盟) https://eu-api.sbgenomics.com/v2 “aws-eu”
七桥平台(中国) https://api.sevenbridges.cn/v2 “ali-cn”
癌症基因组学云(公司治理文化) https://cgc-api.sbgenomics.com/v2 “公司治理文化”
Cavatica https://cavatica-api.sbgenomics.com/v2 “cavatica”
个人经历催化剂由七个桥梁 https://api.sb.biodatacatalyst.nhlbi.nih.gov/v2 “f4c”

请参考API参考部分更多的使用和技术细节的三个身份验证方法。

2.2获取用户信息

把你自己的信息

这个调用返回你的帐户信息。

$ user ()
= = = =用户href: https://cgc-api.sbgenomics.com/v2/users/RFranklin用户名:RFranklin电子邮件:rosalind.franklin@sbgenomics.com first_name:罗莎琳德last_name:富兰克林联系:七桥基因组学:美国

获取关于用户的信息

这个调用返回指定的用户的信息。请注意,目前只能查看自己的用户信息,这叫相当于调用获取您的帐户信息

美元的用户(用户名= " RFranklin”)

2.3速率限制

这个调用返回当前的速率限制的信息。这是API调用的数量你可以在一个小时。

美元rate_limit ()
= =速率限制= =限制:1000剩余:993重置:1457980957

2.4显示计费信息

每个项目必须有一个计费组相关联的。这群账单支付项目的存储和计算。

例如,您的第一个项目(s)创建与自由基金从试点基金计费组分配给每个用户注册。账单信息:

#检查你的账单信息计费()美元美元发票()

有关更多信息,使用崩溃= TRUE

美元的账单(id = " your_billing_id ",分解= TRUE)

2.5创建项目

项目的核心构件平台。每个项目对应一个不同的科学研究,作为一个容器的数据分析工具,结果,和合作者。

创建一个新项目与计费集团称为“api测试”id上面了。

#获取计费组id报价< -计费()美元id #创建新项目(p < - $ project_new (name = " api测试”,报价,描述=“测试”))
= = = =项目id: RFranklin / api-testing名称:api描述:测试只是测试billing_group_id: < your_bid >类型:v2——许可

2.6现有项目的详细信息

#列表第一个100美元的项目()#列出所有美元项目(完成= TRUE) #返回所有命名比赛“演示”美元的项目(name =“演示”,完成= TRUE) #得到你想要的项目通过id p <——美元项目(id =“RFranklin / api教程”)

2.7公共应用程序复制到您的项目

七个桥梁维护工作流程和工具的用户在公共应用程序存储库。

找到更多关于公共应用程序,您可以执行以下操作:

  • 在线浏览。检查教程“找到应用程序”一节。
  • 您可以使用sevenbridges包来找到它,如下所示。
#搜索的名字匹配,完成= TRUE搜索所有应用,#不限于抵消或限制。public_app美元(name =“明星”,完成= TRUE) #搜索通过id是准确public_app美元(id = admin / sbg-public-data / rna-seq-alignment-star / 5) #你还可以把一切public_app美元(完成= TRUE) #默认限制= 100,抵消= 0意味着第一个100美元public_app ()

现在,从你身份验证对象,您复制一个应用程序id到你的项目id与一个新的的名字之后,这个逻辑。

#复制copy_app美元(id = " admin / sbg-public-data / rna-seq-alignment-star / 5”,项目=“RFranklin / api-testing”,名字=“明星”的新副本)#检查如果是复制p < -美元项目(id =“RFranklin / api-testing”) #列表应用程序在您的项目中得到了p $应用()

短名称更改为newcopyofstar

= =应用= = id: RFranklin / api-testing / newcopyofstar / 0名称:RNA-seq对齐——明星项目:RFranklin / api-testing-2修订:0

或者,您可以复制的应用程序对象。

应用< - $ public_app (id = " admin / sbg-public-data / rna-seq-alignment-star”)应用copy_to美元(=“RFranklin / api-testing”项目,名称=“明星”的副本)

2.8进口CWL应用程序并运行一个任务

你还可以上传自己的通用工作流语言JSON文件,描述你的应用程序到您的项目。

注意:或者,您可以直接描述你的CWL工具与这个包R。请阅读上的装饰图案“描述CWL工具/ R和执行工作流”。

#一个CWL文件添加到您的项目。星< -系统。文件("extdata/app", "flow_star.json", package = "sevenbridges") app <- p$app_add("starlocal", fl.runif) (aid <- app$id)

你会得到一个应用程序id,就像下图:

“RFranklin / api-testing / starlocal / 0”

它是由以下元素:

  1. 项目id:RFranklin / api
  2. 应用短名称:runif
  3. 修订:0

或者,您可以直接在R描述工具,如下所示:

fl < -系统。文件("docker", "sevenbridges/rabix/generator.R", package = "sevenbridges" ) cat(readLines(fl), sep = "\n")
图书馆(“sevenbridges”)。lst < -列表(输入(id =“数量”,描述=“观察”的数量,类型=“整数”标签= number,前缀=”——n”,默认= 1 = TRUE, cmdInclude = TRUE),输入(id =“分钟”,描述=“分配”的下限,类型=“浮动”,标签=“分钟”,前缀=“- min”,默认= 0),输入(id =“max”,描述=“分布上限”,类型=“浮动”,标签=“max”前缀=”——马克思“默认= 1),输入(id =“种子”,描述= set.seed“种子”,类型=“浮动”,标签=“种子”,前缀=”——种子”,默认= 1))#输出相同的方法。lst < -列表(输出(id =“随机”,类型=“文件”=“输出”标签,描述=“随机数文件”,水珠= " *。txt”),输出(id =“报告”,类型=“文件”标签=“报告”,水珠= " *。html”)) rbx < -工具(id =“runif”标签=“随机数字生成器”,暗示=需求(码头工人(拉=“腾飞/ runif”), cpu (1), mem (2000)), baseCommand = " runif。R”,输入=。lst #或ins。df =输出。lst) < -“本月/码头工人/ sevenbridges / rabix / runif。json“写(rbx toJSON美元(漂亮= TRUE), fl)

然后,您可以将其添加如下:

# rbx返回的对象由“工具”功能应用< - p app_add美元援助(“runif”, rbx) (< - app id)美元

请参考另一个教程装饰图案(“应用程序”、“sevenbridges”)如何描述工具和流在R。

2.9执行一个新任务

2.9.1找到你的应用程序的输入

一旦你有复制公共应用程序管理/ sbg-public-data / rna-seq-alignment-star / 5到你的项目中,用户名/ api-testing,应用程序id在你当前的项目用户名/ api-testing / newcopyofstar。相反,您可以使用另一个应用程序在您的项目中你已经快速入门。

起草一个新的任务,你需要指定以下:

  • 任务的名称
  • 一个可选的描述
  • 这个应用程序id您正在执行的工作流
  • 输入您的工作流。在这种情况下,CWL应用接受四个参数:号码,min,马克斯,种子。

你可以随时检查应用程序的视觉界面的细节任务输入要求。找到所需的输入与R,你需要得到一个应用程序第一个对象。

应用< - $应用(id = " RFranklin / api-testing-2 / newcopyofstar”) #得到输入矩阵应用input_matrix美元()应用input_matrix美元(c (“id”、“标签”、“类型”))#得到所需节点只应用input_matrix美元(c (“id”、“标签”、“类型”),要求= TRUE)

相反,您可以加载应用程序从一个CWL JSON并将它转换成一个R对象,如下所示。

f1 < -系统。文件("extdata/app", "flow_star.json", package = "sevenbridges") app <- convert_app(f1) # get input matrix app$input_matrix()
所需# # 1 # # # id标签sjdbGTFfile sjdbGTFfile文件…错误# # 2 # fastq fastq文件…真正的# # 3 # genomeFastaFiles genomeFastaFiles文件真正的# # 4 # sjdbGTFtagExonParentTranscript外显子的父母名字字符串假基因名称字符串# # 5 # sjdbGTFtagExonParentGene假# # 6 # winAnchorMultimapNmax马克斯位点锚int假# # 7 # winAnchorDistNbins马克斯垃圾箱之间锚int假零# # # # 1 # #文件2空# # 3空零# # # # 4 5空零# # # # 6 7 null
应用input_matrix美元(c (“id”、“标签”,“类型”))
输入# # 1 # # # id标签sjdbGTFfile sjdbGTFfile文件…# # 2 # fastq fastq文件…# # 3 # genomeFastaFiles genomeFastaFiles文件# # 4 # sjdbGTFtagExonParentTranscript外显子的父母名称字符串# # 5 # sjdbGTFtagExonParentGene基因名称字符串# # 6 # winAnchorMultimapNmax马克斯位点锚int # # 7 # winAnchorDistNbins马克斯锚int之间的垃圾箱
应用input_matrix美元(c (“id”、“标签”,“类型”),要求= TRUE)
# # # # 2 # fastq id标签类型fastq文件…# # 3 # genomeFastaFiles genomeFastaFiles文件

请注意,input_matrixoutput_matrix是有用的访问器工具,,你可以直接调用这两个函数在一个JSON文件。

工具。在<- system.file("extdata/app", "tool_unpack_fastq.json", package = "sevenbridges") flow.in <- system.file("extdata/app", "flow_star.json", package = "sevenbridges") input_matrix(tool.in) input_matrix(tool.in, required = TRUE) input_matrix(flow.in) input_matrix(flow.in, c("id", "type")) input_matrix(flow.in, required = TRUE) output_matrix(tool.in) output_matrix(flow.in)

在响应主体定位所需输入的名字。注意,输入任务需要匹配预期的数据类型和名称。在上面的例子中,我们看到两个必需的字段:

  • fastq:这个输入文件数组的“文件…”
  • genomeFastaFiles:这是一个文件的“文件”。

我们也想提供一个基因特性文件:

  • sjdbGTFfile:单个文件的“文件”。

你可以找到一个可能的输入类型列表如下:

  • 数字、字符或整数:你可以直接通过这些输入参数。
  • 枚举类型:将该值传递给输入参数。
  • 文件:这个输入是一个文件。然而,尽管一些输入只接受单一文件(文件),其他输入一个文件(文件数组,FilesList,或“文件…”)。这个输入要求你通过文件为一个文件对象(输入)FilesList对象(输入接受多个文件)或仅仅是在“文件”对象列表。你可以搜索文件id或通过的名字精确匹配(确切= TRUE),如以下示例所示。

2.9.2准备你的输入文件

fastqs < - c (“SRR1039508_1。fastq”、“SRR1039508_2。fastq") # get all 2 exact files fastq_in <- p$file(name = fastqs, exact = TRUE) # get a single file fasta_in <- p$file( name = "Homo_sapiens.GRCh38.dna.primary_assembly.fa", exact = TRUE ) # get all single file gtf_in <- p$file( name = "Homo_sapiens.GRCh38.84.gtf", exact = TRUE )

2.9.3创建一个新的任务草案

#添加新任务taskName < - paste0 (“RFranklin-star-alignment”,日期())啧啧< - p task_add美元(名称= taskName描述=“星测试”,应用=“RFranklin / api-testing-2 / newcopyofstar / 0”,输入=列表(sjdbGTFfile = gtf_in fastq = fastq_in genomeFastaFiles = fasta_in))

还记得fastq输入预计一个文件列表。你也可以做一些如下:

f1 < - p $文件(name = " SRR1039508_1。fastq", exact = TRUE) f2 <- p$file(name = "SRR1039508_2.fastq", exact = TRUE) # get all 2 exact files fastq_in <- list(f1, f2) # or if you know you only have 2 files whose names match SRR924146*.fastq fastq_in <- p$file(name = "SRR1039508*.fastq", complete = TRUE)

使用完成= TRUE当物品的数量超过100。

2.9.4草案一批任务

现在让我们做一批8文件4组,由元数据批处理sample_idlibrary_id。我们将假定每个文件都有这两种元数据字段输入。因为这些文件可以均匀地分成4,我们将有一个单亲批处理任务4子任务。

fastqs < - c (“SRR1039508_1。fastq”、“SRR1039508_2。fastq”、“SRR1039509_1。fastq”、“SRR1039509_2。fastq”、“SRR1039512_1。fastq”、“SRR1039512_2。fastq”、“SRR1039513_1。fastq”、“SRR1039513_2。fastq" ) # get all 8 files fastq_in <- p$file(name = fastqs, exact = TRUE) # can also try to returned all SRR*.fastq files # fastq_in <- p$file(name= "SRR*.fastq", complete = TRUE) tsk <- p$task_add( name = taskName, description = "Batch Star Test", app = "RFranklin/api-testing-2/newcopyofstar/0", batch = batch( input = "fastq", criteria = c("metadata.sample_id", "metadata.noexist_id") ), inputs = list( sjdbGTFfile = gtf_in, fastq = fastqs_in, genomeFastaFiles = fasta_in ) )

现在你有一个起草批处理任务。请检查它在视觉界面。你的反应应该通知你任何错误或警告。

注:你也可以直接通过id或文件名称作为输入字符列表,包将首先猜测如果传递的字符串文件id(24位十六进制)或名称,然后将它转换成文件或FilesList对象。然而,作为一个良好的实践,我们建议你构建你的文件对象(如。p $文件(id =…、名称=…))首先,检查值,然后将其传递给task_add输入。这是一种更安全的方法。

2.10运行一个任务

现在,我们已经准备好运行任务。

#你的任务啧啧$跑()

在你运行你的任务,你可以调整你的草稿任务最后如果你有任何的修改。或者,您可以删除任务草案如果您不再希望运行它。

# #没有运行#啧啧$删除()

你运行一个任务之后,可以中止它。

#中止你的任务啧啧abort()美元

如果你想更新你的任务,然后重新运行它,按照下面的例子。

啧啧getInputs美元()#失踪数字输入,只有更新数量啧啧美元更新列表(输入= (sjdbGTFfile =“一些新文件”))#双止啧啧getInputs美元()

2.11使用现场运行任务实例

运行的任务现货实例有可能减少大量的计算成本。这个选项可以控制在项目级别或任务在七桥平台上水平。我们的方案遵循相同的逻辑作为我们的平台的web界面(当前实例的默认设置)。

例如,当我们创建一个项目project_new (),我们可以设置use_interruptible = FALSE按需使用实例(不可中断但更贵),而不是现货实例(可中断但便宜):

p < - $ project_new (name = " spot-disabled-project ",描述=“现货残疾项目”,use_interruptible = FALSE)

然后所有的新任务创建在这个项目将使用随需应变的实例运行默认情况下,除非一个论点use_interruptible_instances是专门设置为真正的起草新任务时使用task_add ()

例如,如果p上面的点残疾项目,起草一个任务将使用现货实例运行:

啧啧p < - $ task_add (name = paste0(“现货启用任务在一个点禁用项目”),描述=“现货启用任务”,应用=…输入=(…)列表,use_interruptible_instances = TRUE)

相反,您可以启用现货实例项目,但草案和使用按需运行特定任务实例,通过设置use_interruptible_instances = FALSEtask_add ()明确。

2.12执行每个任务运行提示

在工作流开发和基准测试,有时我们需要查看并使调整任务所需的计算资源更高效地运行。同样,如果任务失败由于资源缺乏,我们经常想定义一个较大的实例没有编辑的任务重新运行应用程序本身。这是特别重要的在这种情况下,没有足够的磁盘空间。

七桥API允许设置特定任务执行参数使用execution_settings。它包括实例类型(instance_type)和并行实例的最大数量(max_parallel_instances):

啧啧< - p task_add美元(…,execution_settings= list( instance_type = "c4.2xlarge;ebs-gp2;2000", max_parallel_instances = 2 ) )

对象的细节execution_settings,请检查创建一个新的任务草案

2.13任务监控

监控你的任务运行,你可以请求一个任务更新让你的任务报告其状态。或者,您可以监视一个钩子函数运行的任务,它触发状态的函数,当“完成”。请检查细节部分在下面。

啧啧美元更新()

默认情况下,你的任务时通过电子邮件提醒你已经完成。

#监控你的任务(跳过这一部分)#啧啧监控()美元

使用下面的下载所有文件从一个任务完成。

啧啧美元下载(~ /下载)

而不是默认的任务监视行动,您可以使用setTaskHook连接一个函数调用任务的状态。当您运行啧啧美元监控(时间= 30)它会检查你的任务每30秒,看看当前的任务状态匹配一个以下状态:“排队”、“草案”,“运行”,“完成”、“流产”,“失败”。当找到匹配的任务状态,getTaskHook返回的函数调用特定的状态。

getTaskHook(完成)
# #函数(…)# #{# #猫(“\ r”、“完成”)# #返回(真正的)# #}# # <环境:0 x55cff4408570 >

如果你想自定义监控功能,你可以调整以下要求。你的函数必须返回真正的最后。当它真正的(或non-logical值)这意味着监控将被终止后,发现一个状态匹配和函数执行时,例如当任务完成。当它,这意味着监控将继续为下一次迭代的检查,例如,“运行”时,你要保持跟踪。

按照下面的例子来设置一个新的函数监控状态“完成”。然后,当任务完成时,它将所有任务输出文件下载到本地文件夹中。

setTaskHook(“完成”,函数(){啧啧$(" ~ /下载")返回下载(TRUE)})啧啧监控()美元

3七桥API参考

sevenbridges包提供了一个用户友好的界面,所以你不需要几个结合起来api ()电话和不断参考API文档发布API请求。

3.1身份验证

在与API交互之前,您需要构建一个身份验证对象存储以下信息:

  • 你的身份验证令牌。这是用于验证您的凭据的API。了解更多关于获取你的身份验证令牌七桥平台癌症基因组学云。获得身份验证令牌的方法也适用于其他七桥平台。
  • API(基URL)的路径。
  • 您正在使用该平台的名字。这是一个可选的字段,因为API的基URL最终决定API调用将被发送到的地方。这个字段只会直接提供空白的URL时,和平台名称不能推断出从URL。

一般的验证逻辑身份验证()如下:

  1. 如果包将使用直接身份验证方法没有指定显式地指定为从= "直接"
  2. 计划将负载从环境变量时的身份验证信息从“env”=或用户配置文件从= "文件"

3.1.1直接验证

使用直接验证,用户需要指定一个平台url,与相应的令牌。直接验证的例子:

< -身份验证(令牌=“your_token”,平台=“aws-us”)

上述七桥平台将使用AWS(美国)。

< -身份验证(令牌=“your_token url = " https://gcp-api.sbgenomics.com/v2 ")

上述指定将使用url为基础API调用的URL。在这个例子中,url点到七桥平台在谷歌云平台(GCP)。

< -身份验证(令牌=“your_token”)

以上将使用癌症基因组学云环境因为没有平台也不url被显式地指定(不推荐)。

注意:平台url不应该同时指定。

3.1.2身份验证通过系统环境变量

R API客户机支持阅读身份验证信息存储在系统环境变量。

在您的系统设置这两个环境变量,您可以使用该函数sbg_set_env ()。例如:

sbg_set_env (url = " https://cgc-api.sbgenomics.com/v2 ",令牌=“your_token”)

是否正确设置环境变量:

sbg_get_env (SB_API_ENDPOINT) # #“https://cgc-api.sbgenomics.com/v2”sbg_get_env (SB_AUTH_TOKEN) # #“your_token”

创建一个身份验证对象:

< -身份验证(从=“env”)

设置这两个环境变量:

Sys.unsetenv (“SB_API_ENDPOINT”) Sys.unsetenv (“SB_AUTH_TOKEN”)

3.1.3身份验证通过用户配置文件

你可以创建一个ini-like文件命名凭证文件夹下$ HOME / .sevenbridges /为多个帐户和维护您的凭据七桥跨各种环境。一个例子:

[aws-us-rfranklin] api_endpoint = https://api.sbgenomics.com/v2 auth_token = token_for_this_user #这是一个评论:#另一个用户在同一平台[aws-us-rosalind-franklin] api_endpoint = https://api.sbgenomics.com/v2 auth_token = token_for_this_user(默认)api_endpoint = https://cgc-api.sbgenomics.com/v2 auth_token = token_for_this_user (gcp) api_endpoint = https://gcp-api.sbgenomics.com/v2 auth_token = token_for_this_user

请确认两个字段完全命名为api_endpointauth_token在每个概要文件。

加载默认概要文件(命名(默认))从默认用户配置文件($ HOME / .sevenbridges /凭证),请使用:

< -身份验证(从=“文件”)

加载用户配置文件aws-us-rfranklin从这个配置文件,改变profile_name:

< -身份验证(= "文件",profile_name =“aws-us-rfranklin”)

使用用户配置文件从其他位置(不推荐),请使用参数指定文件路径config_file。例如:

< -身份验证(= "文件",config_file = " ~ / sevenbridges。cfg”, profile_name = " aws-us-rfranklin”)

注意:如果你编辑凭证文件,请使用身份验证()认证。

3.2列出所有API调用

如果你不传递任何参数api ()身份验证,它将列出所有API调用。您提供任何参数将传递到api ()功能,但是你不需要通过输入令牌以来再次和路径身份验证对象已经有这些信息。以下的电话身份验证对象将检查响应。

美元的api ()

3.3抵消,限制、搜索和预先访问特性

3.3.1抵消限制

每个API调用接受两个参数抵消限制

  • 抵消定义检索项目开始的地方。
  • 限制定义项目你想要的数量。

默认情况下,抵消被设置为0限制被设置为50。因此,你的API请求返回第一个100件当你列表项或寻找物品的名字。搜索和所有项目列表,使用完成= TRUE在你的API请求。

getOption (sevenbridges)抵消美元getOption (sevenbridges)限制

3.3.2搜索通过ID

通过ID搜索时,你的请求将返回你的资源,因为它是独一无二的。因此,你不需要设置抵消限制手动。这是一个很好的实践,找到你的资源的ID和这个ID作为输入传递给你的任务。你可以找到一个资源的ID在URL的最后一部分在可视化界面或通过API请求列出资源或资源的详细信息。

3.3.3按名称搜索

按名称搜索返回所有部分匹配,除非你指定确切= TRUE。这种类型的搜索只会在当前内容,所以使用完成= TRUE如果你想搜索所有的事情。

例如,列出所有公共应用程序使用可见性论点,但确保你通过完成= TRUE,展示了一切。这个参数通常适用于像“应用程序”,“项目”、“任务”、“文件”,等等。

#第一,快速搜索通过id x < - $应用(能见度=“公开”,id =“admin / sbg-public-data / sbg-ucsc-b37-bed-converter / 1”) #显示物品从公共x < - 100应用程序(能见度=“公共”)长度(x) # 100 x < - $应用(能见度=“公开”,完成= TRUE)长度(x) # 2016年11月272 #这回报什么,因为它不是在第一个名字返回100应用程序(能见度=“公开”,名称=“床转换器”)#这个返回应用程序,因为它把美元* *应用程序名称和所做的搜索应用程序(能见度=“公开”,name =“床转换器”,完成= TRUE)

3.3.4实验之前访问特性

类似于抵消限制,每个API调用接受一个参数命名advance_access。这个论点是2017年8月首次引入并控制如果HTTP请求报头中的特殊字段将被发送,可以使访问七桥的“访问”功能的API。注意,提前在API访问特性没有正式发布,因此API用法受到改变,所以请谨慎使用。

除了修改每个API调用,使用预先访问特性,选择也可以在全球范围内设置在您的API脚本的开始。这为用户提供了一键开关想尝试推进访问特性。默认的选项是禁用:

库(sevenbridges) getOption advance_access美元(“sevenbridges”)
# #[1]假

例如,标记API是提前2018年11月访问。如果我们试图使用标记API BAM文件可用标记列表advance_access选择禁用,它将返回一个错误消息:

要求< - api(令牌=“your_token”,路径= "基因组/标记吗?文件= {bam_file_id}”、方法= " ")httr:内容(要求)$"message"
# #[1]“预先访问功能需要X-SBG-Advance-Access:推进头。”

使预先访问特性,可以使用

选择<——getOption (“sevenbridges”)选择美元advance_access < -真正的选项(sevenbridges =选择)

一开始他们的脚本。让我们检查是否已启用的选项:

getOption advance_access美元(“sevenbridges”)
# # [1]

再次发送API调用:

要求< - api(令牌=“your_token”,路径= "基因组/标记吗?文件= {bam_file_id}”、方法= " ")

BAM的信息可用的标记文件将返回:

httr:内容(要求)
href美元[1]“https://api.sbgenomics.com/v2/genome/markers?文件={bam_file_id}&offset=0&limit=2" $items $items[[1]] $items[[1]]$href [1] "https://api.sbgenomics.com/v2/genome/markers/{bam_file_id}" $items[[1]]$id [1] "{bam_file_id}" $items[[1]]$name [1] "Marker Title" $items[[2]] $items[[2]]$href [1] "https://api.sbgenomics.com/v2/genome/markers/{bam_file_id}" $items[[2]]$id [1] "{bam_file_id}" $items[[2]]$name [1] "Marker Title" $links list()

3.4查询参数“字段”

请阅读文档细节

所有API调用可选的查询参数字段。该参数允许您指定您想要的字段返回当清单资源(例如,所有项目)或获得一个特定的资源的详细信息(例如,一个给定的项目)。

字段的参数可用于以下方面:

  1. 没有字段参数指定:调用返回默认字段。为调用返回单个资源的完整细节,这是他们所有的属性;对于某种类型的资源列表的调用,这是一些默认的属性。

  2. 字段参数可以设置为一个字段列表:例如,返回的字段id、名称和大小的文件在一个项目,你可以调用问题(字段= p $文件id、名称、大小)

  3. 字段的参数可以用来排除特定的文件:如果你想省略某些字段从响应,使用前缀的参数字段!。例如,要获取一个文件的细节清单其元数据,没有问题的电话p $文件(字段= !元数据)整个元数据字段将被删除从响应。

  4. 字段的参数可用于包括嵌套或省略某些字段,以同样的方式如上2和3中列出:例如,你可以使用metadata.sample_idorigin.task为文件。

  5. 看到各个领域的资源,指定字段= " _all "。这对每个资源返回返回所有字段。注意,如果您正在一个特定资源的细节,使用字段= " _all "不会返回任何属性比没有这个参数会被证明——用例清单的细节,相反,当你许多资源。请小心使用你的资源尤其是大油田;例如,应用程序资源的原始字段包含完整的CWL规范的应用程序会导致庞大的许多应用程序响应如果清单。

  6. 否定和嵌套可以自由组合,因此,例如,你可以问题p $文件(字段= " id、名称、状态、metadata.library, !起源”)(字段= p $任务!输入、输出)

请尝试下面的例子。

# #默认字段id、名称、项目p $() # #返回文件(s)和id、名称、p $文件siae信息(字段= id、名称、大小)# #返回所有可用信息文件(s)与p $文件(细节= TRUE) # #同上p $文件(字段=“_all”)

3.5速度限制

这个调用返回当前的速率限制的信息。这是API调用的数量你可以在一个小时。

美元rate_limit ()

3.6用户

这个调用返回一个列表的资源,如项目、计费组和组织,都可以访问你。目前,这个调用将只返回一个成功的响应如果{username}替换为您自己的用户名。以同样的方式一定要利用你的用户名当你注册一个账户。

如果你没有提供一个用户名,它将显示您的用户信息。

#返回您的信息用户()#返回用户RFranklin美元的信息用户美元(“RFranklin”)

3.7计费组和发票

3.7.1对帐单

如果没有计费组id提供,这个调用返回一个列表的路径通过API用于访问计费信息。如果提供了用户名,这叫列出所有你的付款组,包括组即将或已被禁用。如果您指定崩溃= TRUE,下面的调用返回一个崩溃的支出项目的计费组由billing_group指定。信息也显示每个项目的一个特定的计费组相关联,包括任务执行,他们启动用户,开始和结束时间,他们的成本。

#返回一个BillingList对象(b < - $美元账单())计费(id = b $ id,分解= TRUE)

3.7.2章的发票

如果没有计费组id提供,这个调用返回一个发票列表,每个信息,包括发票是否等待和计费期它覆盖。这个调用返回所有可用你的发票信息,除非你使用查询参数bg_id指定一个特定的计费组的ID,在这种情况下,它将返回发票金额计费组。如果一个发票id提供,这叫检索指定的发票信息,包括成本分析、存储和发票。

美元的发票()美元发票(id =“your_id”)

注意:目前,发票不是一个对象。相反,它只返回一个常规R列表。

3.8项目

项目是组织的基本单位不同的实体:文件、任务、应用程序,等等。这样,源于很多动作项目对象。

3.8.1列出所有的项目

下面的调用返回一个列表的所有项目成员。每个项目的project_id将返回和路径。

美元的项目()

如果你想列出项目所有访问特定用户,指定老板参数如下。每个项目的ID和路径将被归还。

美元的项目(所有者=“RFranklin”)美元项目(所有者=“Rosalind.Franklin”)

项目(s)的详细信息,使用细节= TRUE,如下所示。

美元的项目(详细= TRUE)

3.8.2部分匹配项目名称

更友好的界面、方便搜索sevenbridges包支持部分名称匹配。第一个参数为下面的请求的名字

#想返回一个项目叫做美元项目(“hello”)

3.8.3过滤器由项目创建日期、修改日期,和创造者

项目创建日期、修改日期和创造者信息有助于快速定位你所需要的项目,特别是当你想跟着大量的项目的生命周期,从旧的区分最近的项目。促进这样的需求,字段created_by,created_on,modified_on返回的项目查询电话:

#返回所有匹配项目名称“wgs”p < - $项目(“wgs”,完成= TRUE) #过滤器项目创建者创造者< -酸式焦磷酸钠(p,“[[”、“created_by”),(创造者= =“RFranklin”) #过滤器项目创建日期create_date < -。日期(酸式焦磷酸钠(p,“[[”、“created_on”)), (as.Date (create_date) < as.Date(“2019-01-01”)) #过滤器项目修改日期modify_date < -。日期(酸式焦磷酸钠(p,“[[”、“modified_on”)), (as.Date (modify_date) < as.Date (“2019-01-01”))

3.8.4创建一个新项目

创建一个新项目,用户需要指定以下:

  • 的名字(必需)
  • billing_group_id(必需)
  • 描述(可选)
  • 标签(可选):这是一个列表()。如果您使用的是公司治理文化环境上的API,您可以创建一个项目通过指定TCGA控制数据,TCGA标签
  • 类型(可选):默认情况下,我们创建一个V2, CWL兼容的项目。
project_new美元(“api_testing_tcga”, b $ id,描述=“API测试”)

3.8.5创建一个新项目,TCGA控制数据公司治理文化

按照上面的指示,但通过,tcga作为一个值标签

project_new美元(“controlled_project”, b $ id,描述= API的“测试”,标签=列表(“tcga”))

3.8.6删除一个项目

你可以删除一个项目通过请求删除()美元。注意,返回的对象美元的项目()有时返回列表如果使用部分匹配的名字。的删除()美元请求不能操作列表。如果你想操作一个对象列表,阅读更多关于批处理功能下面的相关部分。

#删除它,而不是运行一个项目(“api_testing”)删除美元()#检查#将删除所有项目匹配的名字删除(美元的项目(“api_testing_donnot_delete_me”))

3.8.7更新/编辑项目

你可以更新一个现有项目信息如下:

  • 的名字
  • 描述
  • billing_group_id
美元的项目(id =“RFranklin / helloworld”)美元项目(id =“RFranklin / helloworld”)美元更新(name = " Hello World更新”,描述=“更新描述”)

3.8.8项目成员

3.8.8.1成员列表

这个调用返回一个指定项目的成员列表。对于每一个成员,响应列表:

  • 会员的用户名
  • 在指定的项目成员的权限
美元的项目(id =“RFranklin /演示项目”)成员()美元

3.8.8.2添加一个成员

这个调用将新用户添加到指定的项目。它只能由一个用户在项目管理权限。

请求添加一个项目成员必须包括的关键权限。然而,如果你不包含一个值,将被设置为成员的权限默认情况下。

设置权限通过以下值:复制,,执行,管理,或

注意:隐式和默认设置。你不能没有一个项目成员权限。

m < - $项目(id =“RFranklin /演示项目”)美元member_add(用户名=“Rosalind.Franklin”)

3.8.8.3更新一个成员

这叫编辑用户的权限指定的项目。它只能由一个用户在项目管理权限。

m < - $项目(id =“RFranklin /演示项目”)成员(用户名=“Rosalind.Franklin”)美元美元更新(复制= TRUE)
= = = =用户名成员:罗莎琳德。富兰克林——允许读:真写:假copy_permission:真正的执行:假管理:假

3.8.8.4删除一个成员

删除现有的成员调用delete ()行动上的成员对象。

delete() #确认项目美元美元(id =“RFranklin /演示项目”)成员()

3.8.9列出所有文件

列出所有属于一个项目文件,使用以下要求:

p <——美元项目(id =“RFranklin /演示项目”)p $文件()

3.9文件、元数据和标签

3.9.1列出所有文件

一种更好的方式列出一个项目使用以下文件:

# 100文件,默认抵消= 0,限制= 100 p $文件()#所有文件列表文件(完成= TRUE)美元

或者,你可以得到文件身份验证对象。

文件(项目= p id)美元美元美元的文件(name =“全方位”,项目= p $ id、细节= TRUE)

3.9.2搜索和筛选文件(年代)

3.9.2.1经验法则

您可以轻松地搜索部分的名字,确切的名字,或id等多项项目,应用程序,文件。幸运的是,我们有更强大的过滤器文件。用户可以通过元数据搜索、标签和原来的任务ID。

  1. 第一规则:理解范围:我们知道我们违约限制= 100抵消= 0前100个项目,除非你使用的参数完成= TRUE。事情时是不同的文件。当你搜索与确切的名称(按名称搜索确切= TRUE)、元数据或标签,它通过所有文件搜索。你不需要指定完成= TRUE。仅仅提供项目id或打电话从项目对象,如下所示。

  2. 第二条原则:理解操作:当过滤任何资源,包括同一领域多次与不同的过滤条件的结果在一个隐式或操作领域和不同的标准。当过滤字段,指定不同的隐式和执行这些标准。”那么不同的领域,有哪些元数据,来源。任务,标签,这些不同的领域。请注意不同的元数据字段被视为不同的领域,所以这将是一个操作不同的元数据字段。

作为一个快速的例子,下面的代码给了我们在项目的所有文件RFranklin /演示与元数据sample_id“Sample1”“Sample2”,库id必须是“例子”,标记有“你好”“世界”。

p <——美元项目(id =“RFranklin /演示”)p $文件(元数据=列表(sample_id =“Sample1 sample_id =“Sample2 library_id =“示例”),标签= c(“你好”、“世界”))

3.9.2.2搜索名称和id

有两种方法可以返回准确的你想要的文件。一个是由id,另一个是恰当的的名字

对于高级用户:当搜索的名字确切= TRUE,它直接使用我们的公共API调用匹配的名字和一个查询返回的对象。当你关掉确切的,它将grep所有文件或文件定义限制抵消第一,然后匹配的名字,这可能是缓慢的。

文件id,您可以检查web界面上的URL从文件详细信息页面。

#返回单一对象id是“some_file_id”p $文件(id =“some_file_id”) #返回一个对象命名。fastq p $文件(name = "。fastq", exact = TRUE) # public file search using Auth object a$public_file(name = "ucsc.hg19.fasta.fai", exact = TRUE) a$public_file(id = "578cf94a507c17681a3117e8")

让多个对象,参数id的名字都接受向量,所以你可以通过不止一个id的名字到它。

#得到两个文件p文件(name = c (“test1美元。fastq", "test2.fastq"), exact = TRUE) # get two files from public files using shorthand a$public_file( name = c("ucsc.hg19.fasta.fai", "ucsc.hg19.fasta"), exact = TRUE )

如果你没有使用确切= TRUEgrep, API将假定它是模式和使用部分匹配。

#先matchd模式搜索文件p 100文件(name = c(“广州”、“fastq”)) #得到所有匹配文件从项目p $文件(name = c(“广州”、“fastq”),完成= TRUE) #得到所有文件匹配ucsc public_file美元(name = " ucsc的。hg19”,完成= TRUE)

3.9.2.3搜索元数据

当你指定不同的元数据字段,使用一个值操作,当您指定相同的元数据字段,使用一个值操作。

列出所有项目文件RFranklin /演示,有一个sample_id“Sample1”“Sample2”另一个元数据字段library_id设置为“例子”,作出以下要求。

p <——美元项目(id =“RFranklin /演示”)p $文件列表(元数据= (sample_id =“Sample1 sample_id =“Sample2 library_id =“示例”))

3.9.2.4通过标签搜索

标签比元数据更灵活。你可以搜索与多个标签使用操作。

这个例子展示了如何返回所有文件标签“s1”“s2”。

p <——美元项目(id =“RFranklin /演示”)p $文件(标签= c (s1, s2))

3.9.2.5搜索原始任务id

您还可以从一个任务得到的所有文件。有两种方法可以做到这一点:

  1. 开始的任务对象;
  2. 使用过滤标准。
#列出所有输出文件从一个任务id美元(id =“53020538 - 6936 - 422 - f - 80 - de - 02 - fa65ae4b39”)文件()#或p < -美元项目(id =“RFranklin /演示”)p $文件(起源。任务= " 53020538 - 6936 - 422 - f - 80 - de - 02 - fa65ae4b39”)

3.9.3复制一个文件或一组文件

这个调用指定的文件复制到一个新项目。文件时保留其元数据复制,但可以转让目标项目的新名称。

注意控制数据文件不能复制到开放数据项目。这个请求,你应该在项目中复制许可复制。

让我们试着从公共文件复制一个文件存储库。文件的id是“561 e1b33e4b0aa6ec48167d7”。

你必须提供

  • id:文件id或ids /矢量文件列表
  • 项目:项目id。
  • 的名字(可选):如果省略,使用相同的名称作为原始文件名称
# 1000 g_omni2.5.b37。vcf fid < -“561”e1b33e4b0aa6ec48167d7 fid2 < -“561”e1b33e4b0aa6ec48167d3 pid < - $项目(“演示”)$ id美元拷贝文件(c(支撑材,fid2),项目= pid)项目(id = pid)美元文件()

注意:复制一组文件,你需要Auth $拷贝文件()接口。的id的文件在您的项目将会与他们的不同id在公共文件存储库。

或者,你复制一个单独的文件如下所示。

美元的项目(“hello”)文件(id = fid) copyTo美元(pid)

值得注意的是,如果你有许多文件之间复制项目,我们总是推荐使用Auth bulk_file_copy美元()下面的操作API部分中描述的方法,批量复制的文件在一个API调用并保存API调用的数量。

3.9.4删除文件(年代)

注意:删除一次行动只适用于一个文件。要确保你的文件调用返回一个文件,而不是一个文件列表。

美元的项目(“演示”)文件()[[1]]美元删除()# #确认删除一个项目(“演示”)美元文件()

您还可以删除或一组文件FilesList对象,就小心当使用这个函数。

# #返回5文件项目(“演示”)美元文件(“phase1”) # #删除全部删除(项目(“演示”)美元文件(“phase1”)项目(“演示”)美元文件(“phase1”)

3.9.5下载文件

下载信息,请使用下面的:

美元的项目(“演示”)文件()[[1]]美元download_url ()

从R,直接下载使用下载直接从一个调用文件对象。

fid < - $项目(“演示”)文件()[[1]]美元美元项目id(“演示”)文件(id = fid3)下载美元(~ /下载/)

我还创建了一个下载函数FilesList对象来节省你的时间,如下:

fls的< - $项目(“演示”)文件()美元下载(fls的,“~ /下载/”)

下载所有文件从一个项目中,使用以下:

项目(“演示”)美元下载(~ /下载)

3.9.6上传文件通过API

七桥平台提供一些不同的数据导入的方法:

  • 进口从FTP或HTTP的web界面
  • GUI上传
  • 文件上传的API,您可以直接电话sevenbridges
  • 命令行上传可以调用的sevenbridges

使用API客户端上传通过调用美元项目上传功能上传一个文件,文件列表,或者一个文件夹递归或通过一个清单文件。

3.9.6.1上传单个文件

< -身份验证(用户名=“RFranklin”,平台=“公司治理文化”)fl < -系统。文件(“extdata”、“sample1。fastq", package = "sevenbridges") (p <- a$project(id = "RFranklin/quickstart")) # by default load .meta for the file p$upload(fl, overwrite = TRUE) # pass metadata p$upload(fl, overwrite = TRUE, metadata = list(library_id = "testid2", platform = "Illumina x11")) # rename p$upload(fl, overwrite = TRUE, name = "sample_new_name.fastq", metadata = list(library_id = "new_id") )

3.9.6.2上传一个文件夹

dir。ext < -系统。文件("extdata", package = "sevenbridges") list.files(dir.ext) p$upload(dir.ext, overwrite = TRUE)

3.9.6.3上传一个文件列表

dir。ext < -系统。文件("extdata", package = "sevenbridges") # enable full name fls <- list.files(dir.ext, recursive = TRUE, full.names = TRUE) p$upload(fls, overwrite = TRUE) p$upload("~/Documents/Data/sbgtest/1000G_phase1.snps.high_confidence.b37.vcf")

3.9.6.4通过定义清单文件上传文件

一个清单文件是一个文件用于定义一组文件的元数据值。它可以用来当上传文件到平台设置他们的元数据。支持的文件格式为CSV manifest文件。一个CSV文件包含的行数和列以逗号分隔。一个清单文件中定义的格式documentaion

一些要求:

  • 第一行包含列名称解析为元数据字段(如。样本,图书馆)。当它不是自定义字段,我们为元领域做转换sample_id这需要一个字符串。
  • 第一列必须包含将上传的文件的名称。如果文件不在同一个目录清单文件,您还应该包括一个路径文件(如。. . / filename.fastq)。

我们允许用户

  • 选择上传的元数据
  • 选择使用子集上传仅元数据的一部分
  • 选择使用子集只上传文件过滤器的一部分

请检查下面的例子。

#上传所有事业和元数据p $上传(manifest_file = ~ / manifest.csv) #口头= TRUE,打印单p $上传文件级别进展(manifest_file = " ~ /清单。csv”,覆盖= TRUE,口头= TRUE) # manifest_metadata p = FALSE多恩不附加任何元数据上传(manifest_file = " ~ /美元清单。csv”manifest_metadata = FALSE,覆盖= TRUE) #过滤器文件首先,与分数p < 0.5美元只上传文件上传(manifest_file = " ~ /清单。csv”,覆盖= TRUE,子集=分数< 0.5)#附加元除了“bad_field”和p $上传(manifest_file =“sample_id ~ /清单。csv”,覆盖= TRUE,子集=分数< 0.5,选择= - c (bad_field sample_id))

3.9.7通过命令行上传上传文件

作为一个替代API文件上传,我们也提供一个接口sevenbridges包上传(可能大)通过基于java命令行文件上传。

第一步是下载命令行上传。与get_uploader (),用户可以很容易地下载上传本地目录指定七桥平台,例如,癌症基因组学云:

get_uploader(“公司治理文化”、“~ /下载/”)

列出可用的项目可以通过上传,从您的帐户使用cli_list_projects (),和你的身份验证令牌的平台,包含上传的目录:

cgc_token < -“your_cgc_token cgc_uploader < -“~ /下载/ cgc-uploader”cli_list_projects(令牌= cgc_token上传= cgc_uploader)

函数将返回一个特征向量包含可用的项目,你可以上传文件的形式用户名/项目名称

同样,列出所有通过上传项目文件标签,使用cli_list_tags ():

cli_list_tags(令牌= cgc_token上传= cgc_uploader项目=“用户名/项目名称”)

最后,使用cli_upload ()上传本地文件到一个项目:

cli_upload(令牌= cgc_token上传= cgc_uploader文件= " ~ /例子。fastq”,项目= "用户名/项目名称”)

3.9.8更新一个文件

你可以叫的update ()从文件对象的函数。用这个电话,可以更新如下:

  • 文件的的名字
  • 文件的元数据。元数据是一个列表的形式。注意,这个调用覆盖所有的元数据对于一个给定的文件,请提供一个完整的列表的所有元数据文件。相反,您可以使用set_meta ()函数修补而不是覆盖的元数据文件。

如果没有提供参数,这个调用将获得该文件的细节和更新对象本身。

(fl < - $项目(id =“RFranklin /演示项目”)美元文件(name = " sample.fastq "))
= = = =文件id: 56 c7916ae4b03b56a7d7名称:样本。fastq项目:RFranklin /演示项目

显示元数据

#显示元数据fl $元()

更新元

fl美元更新(name = "示例。fastq", metadata = list( new_item1 = "item1", new_item2 = "item2", file_extension = "fastq" ) ) # check it out fl$meta()

3.9.9元数据操作

了解有关环境:元数据字段及其值(七桥平台][公司治理文化]。

注意,一个文件的名称是不一样的ID。文件的ID是一个十六进制字符串自动分配给项目中的一个文件。文件的名字是一个人类可读的字符串。的信息,请参阅API的概述七桥平台公司治理文化

得到的元数据

一个文件的元数据,调用元()函数,如下所示。

#元拉最新的信息通过API fl元美元()#字段元数据保存以前保存的一个fl美元元数据

集元数据

文件从策划在7个桥梁环境定义的一组数据集元数据是可见的在每个环境的可视化界面。然而,您还可以为每个文件通过额外的元数据存储与你的那一份文件在您的项目。

设置元数据而不是覆盖所有先前存储的元数据,调用set_meta ()从文件对象的函数。不像update ()函数文件对象,set_meta ()函数不覆盖的元数据字段。覆盖的元数据字段,使用update ()函数或通过可选的参数覆盖= TRUEset_meta ()调用。

fl set_meta美元(new_item3 =“item3”) fl #哦,删除其他元fl set_meta美元(new_item4 =“item4”,覆盖= TRUE) fl

检查每个元数据字段的详细信息

您可以使用元数据()构造函数来检查每个元数据字段的详细信息。简单地调用函数(元数据)的名称来显示描述和枚举项。请注意suggested_values字段。

#检查模式有()元数据显示美元(全= TRUE) #检查每个细节,玩平台()paired_end () quality_scale ()

正如您可以看到的,一些元数据字段建议值。构建元数据,使用元数据()直接通过元数据字段及其值直接调用。调用将执行验证。

元数据(平台= " Affymetrix SNP数组6.0”,paired_end = 1, quality_scale =“桑格”,new_item =“新测试”)

3.9.10标记文件(s)

你可以用关键词或字符串标记你的文件,让它更容易识别和组织文件。标签是不同的元数据和更方便的和从文件列表中可见的视觉界面。

添加一个新的标签

添加一个新的标签,调用obj add_tag美元()方法用一个标签字符串或一个文件对象列表或向量的标签。

覆盖一个文件的标签

完全覆盖的标签文件,使用obj $ set_tag ()方法,它包含了默认参数覆盖= TRUE

让我们用一个文件sample.bam和玩它的标签。

p <——美元项目(id =“RFranklin / s3tutorial”) < - p $文件(“样本。bam”,确切= TRUE) #显示为单一文件标签fl标签()#添加新标签fl美元add_tag(“新标签”)#等价fl美元set_tag(“新标签2”,覆盖= FALSE) #标签设置为覆盖现有的x < -列表(“这”,“是”,1234)美元fl set_tag (x) #过滤器通过标签p $文件(标签= c(“1234”,“新”))p $文件列表(标签=(“1234”,“新”))p $文件(标签= " 1234 ")

下面,找到方便的方法FilesList。让我们添加标签“s1”一组文件匹配“Sample1”和添加标签“s2”相匹配的一组文件“s2”。然后,我们将根据这些标签过滤获得特定的文件。

# #工作在一组文件添加标签“s2”一组文件命名“Sample2”fl2 p < - $文件(“Sample2”) add_tag (fl2, s2) #添加标签“s2”一组文件命名“Sample1”fl1 p < - $文件(“Sample1”) add_tag (fl1, s1) #过滤器通过标签s1和s2 p $文件(标签= s1) p $文件(标签= s2) #文件标记为s2和p 1234文件列表(标签= (“s2”、“s1”))

3.10文件夹

文件夹API允许你组织你的文件在项目中使用的文件夹。从文件系统的角度来看,文件夹是一种特殊类型的文件。因此,在这个包中,文件夹对象仍表示使用相同的类文件对象,只有具体的操作方法。

3.10.1得到项目的根文件夹

创建新文件夹和管理文件使用文件夹在一个项目中,我们首先需要得到的信息项目的根文件夹。例如

p <——美元项目(id =“RFranklin / folders-api-testing”)

我们可以得到项目的根文件夹ID:

p $ get_root_folder_id ()
[1]“5 bd7c53ee4b04b8fb1a9f63c”

或者返回项目的根文件夹作为一个对象:

(root_folder < - p get_root_folder美元())
= = = =文件id: 5 bd7c53ee4b04b8fb1a9f63c名称:8 c02ceda - e46b - 49 - c0 - 362 f - 4318 fa8f3e4k项目:RFranklin / folders-api-testing created_on: 2018 - 10 - 29 t18:45:50z modified_on: 2018 - 10 - 29 t18:45:50z类型:文件夹

3.10.2创建一个文件夹

在项目根目录下创建一个new_folder文件夹,使用

folder1 < - root_folder create_folder美元(“folder1”)

创建一个新的文件夹下folder1,使用

folder2 < - folder1 create_folder美元(“folder2”)

3.10.3之间复制文件的文件夹

让我们公开引用文件复制到项目根目录:

file_public < - $ public_file (name = " Homo_sapiens_assembly38。fasta”,确切= TRUE) file1 < - file_public copy_to_folder美元(root_folder $ id)

我们还可以重命名文件,将它复制到一个文件夹:

file2 < - file_public copy_to_folder美元(root_folder $ id、“ref_grch38.fasta”)

3.10.4之间移动文件文件夹

将文件移动到另一个文件夹(例如,folder1我们刚刚创建的),使用

文件名file1 < - $ move_to_folder (folder1 $ id)

3.10.5文件夹列表内容

列出所有文件和文件夹到一个文件夹中(例如,根文件夹),使用

(contents_root < - root_folder list_folder_contents美元(完成= TRUE))
[[1]]= = = =文件id: 5 bede476e4b03b8ff38c28ba名称:folder1项目:RFranklin / folders-api-testing父:5 bd7c53ee4b04b8fb1a9f63c类型:文件夹文件[[2]]= = = = id: 5 bedc431e4b09b8ff3966e9c名字:ref_grch38。fasta项目:RFranklin / folders-api-testing父:5 bd7c53ee4b04b8fb1a9f63c类型:文件

如果完成= FALSE(默认),它将只返回的页面(第一个)API的基础上抵消限制

只列出文件或文件夹type = "文件"type = "文件夹":

root_folder list_folder_contents美元(type = "文件",完成= TRUE) root_folder list_folder_contents美元(type = "文件夹",完成= TRUE)

3.10.6文件和文件夹的细节

得到一个文件或文件夹对象的类型:

contents_root[[1]]美元typeof ()
[1]“文件夹”

或者,得到所有对象的类型(s)在文件夹:

酸式焦磷酸钠(contents_root函数(x) x美元typeof ())
[1]“文件夹”“文件”

有时,方便得到一个文件或文件夹的父文件夹标识:

contents_root[[1]]美元get_parent_folder_id ()
[1]“5 bd7c53ee4b04b8fb1a9f63c”

这实际上是根文件夹ID。另外,父文件夹为对象,使用

contents_root[[1]]美元get_parent_folder ()

3.10.7删除一个文件夹中的文件

我们可以删除一个文件在一个文件夹:

file1 $删除()

3.10.8删除一个文件夹

如果一个文件夹还有文件,不能删除:

file2 < - file2 move_to_folder美元(folder2 $ id) folder2美元删除()
错误:400年HTTP状态:不支持删除非空文件夹。

我们需要删除一个文件夹内的所有文件和子文件夹之前删除文件夹本身:

file2删除()folder2删除()美元美元folder1删除()

3.11应用程序

所有七个桥梁环境支持通用工作流语言(CWL)本机以允许可再生的和便携式的工作流和工具。在本节中,我们将使用应用程序,包括工具和工作流程,通过API使用sevenbridgesR包。

3.11.1列出所有应用程序

这叫列出所有可用的应用程序。

应用()#美元或显示细节应用美元= TRUE(细节)

搜索应用程序的名字

通过它的名称来搜索一个特定的应用程序,通过模式的名字参数或提供一个独特的id如下所示。

#美元模式匹配应用程序(name =“明星”)#惟一的id援助< - app()美元[[1]]id援助美元应用(id =援助)#美元获得应用程序特定的修改应用程序(id =援助,修订= 0)

列出所有项目中的应用

属于一个特定的项目,列出所有应用程序使用项目论点。

#我最喜欢的,总是一个项目(“演示”)应用美元()#或alternatviely pid < - $项目(“演示”)$ id应用(项目= pid)美元

列出所有公共应用程序

列出所有公共应用程序,使用可见性论点。

#显示物品从公共x < - 100应用程序(能见度=“公共”)长度(x) x < - $应用(能见度=“公开”,完成= TRUE)长度(x) x < - $应用(=“RFranklin / helloworld”项目,完成= TRUE)长度(x)美元的应用(能见度=“公开”,限制= 5,抵消= 150)

搜索所有公共应用程序的位置

寻找一个公共应用交叉位置,打以下电话。请注意,这可能需要一点时间。

美元的应用(“明星”,可见性=“公开”,完成= TRUE)

3.11.2复制一个应用程序

这个调用指定的应用程序复制到一个指定的项目。应用应该一分之一项目,您可以访问一个应用程序已上传的项目成员或一个公开可用的应用程序复制到项目。

这个调用需要以下两个参数:

  • 项目:包括项目id
  • 的名字(可选):使用这个字段选择re-name app
援助< - $ public_app () [[1]] $ id copy_app美元(援助项目= pid, name = " copy-rename-test ") #检查如果是复制app(项目= pid)美元

您还可以复制直接从应用程序对象,如下所示。

应用< - $ public_app (id = " admin / sbg-public-data / rna-seq-alignment-star”)应用copy_to美元(=“RFranklin / api-testing”项目,名称=“明星”的副本)

3.11.3得到一个应用程序的CWL描述

这个调用返回原始CWL特定的应用,包括其原始CWL。调用不同的电话应用程序的细节,它返回一个JSON对象CWL。

应用应该一分之一项目,您可以访问一个应用程序已上传的项目成员或一个公开可用的应用程序复制到项目。

得到一个具体的修订,通过修订论点。

美联社< - $应用(能见度=“公共”)[[1]]一个项目(“演示”)美元应用(“指数”)#得到特定修订项目(“演示”)应用美元(“指数”,修订= 0)

即将到来:将应用程序转换为CWL对象

3.11.4添加CWL作为应用程序

添加CWL对象作为一个应用程序使用app_add函数调用的项目对象。以下两个参数要求:

  • short_name名称:项目短名称是基于你给项目当您创建它。了解更多关于项目的短名称七桥平台或者是公司治理文化
  • 文件名:包含CWL JSON文件的名称。
cwl。fl < -系统。文件("extdata", "bam_index.json", package = "sevenbridges") a$project("demo")$app_add(short_name = "new_bam_index_app", filename = cwl.fl) a$project("demo")$app_add(short_name = "new_bam_index_app", revision = 2, filename = cwl.fl)

注意:如果您提供相同的short_name这将添加一个新的修改。

3.11.5直接描述CWL R

这是介绍另一个装饰图案(装饰图案(“应用程序”、“sevenbridges”))。

3.11.6创建测试或保持先前的测试工具

在七桥平台上,当你创建或更新GUI工具,有一个测试选项卡允许用户调整参数,看看它是什么样子在你命令行模拟终端。为此通过R当你推工具对象到你的项目中,您需要提供“小企业:工作”信息如下所示的例子

rbx < -工具(id =“runif”标签=“随机数字生成器”,暗示=需求(码头工人(拉=“RFranklin / runif”), cpu (1), mem (2000)), baseCommand = " runif。R”,输入=。lst,输出=。lst,“小企业:工作”=列表(allocatedResources =列表(mem = 9000, cpu = 1),输入=列表(min = 1, max = 150))) p app_add美元(“随机”,rbx)

或者如果您已经创建了测试平台或以前把一个信息,你想保持先前的测试设置。我们提供一个参数命名keep_test让你保持之前的版本的测试信息。

rbx < -工具(id =“runif”标签=“随机数字生成器”,暗示=需求(码头工人(拉=“RFranklin / runif”), cpu (1), mem (2000)), baseCommand = " runif。R”,输入=。lst,输出=。lst) p app_add美元(“随机”,rbx keep_test = TRUE)

3.12任务

3.12.1任务列表

这个调用返回一个任务列表,您可以访问。您可以过滤任务的状态。

#所有任务任务()#过滤器美元任务(状态=“完成”)美元的任务(状态=“运行”)

列出所有的任务在一个项目中,使用以下。

#一个更好的方法一个项目(“演示”)美元任务()#或者pid < -一个项目(“演示”)id美元美元任务(项目= pid)

列出所有的任务的细节,通过细节= TRUE

p $任务(id =“你的任务id”,细节= TRUE) p $任务(细节= TRUE)

列出一批任务使用参数,通过批处理父任务id。

p <——美元项目(id =“RFranklin /演示”)p $任务(id =“2 e1ebed1 - c53e - 4373 - 870 d - 4732 acacbbbb”) p $任务(父=“2 e1ebed1 - c53e - 4373 - 870 d - 4732 acacbbbb”) p $任务(父母=“2 e1ebed1 - c53e - 4373 - 870 d - 4732 acacbbbb”,地位=“完成”)p $任务(父母=“2 e1ebed1 - c53e - 4373 - 870 d - 4732 acacbbbb”,地位=“草案”)

3.12.2创建一个任务草案

创建一个草案的任务,您需要调用task_add函数从项目对象。你需要通过以下参数:

  • 的名字:这个任务的名称
  • 描述(可选):这个任务的描述
  • 应用程序:app id
  • 输入:输入该任务的列表
#推动应用程序第一个fl.runif < -系统。文件(“extdata”、“runif。json”,包= " sevenbridges”)一个项目(“演示”)app_add美元(“runif_draft”, fl.runif) runif_id < -“RFranklin /演示项目/ runif_draft”#创建一个草案任务项目(“演示”)task_add美元(名称=“runif草案3”,描述=“runif 3”描述,应用= runif_id输入=列表(min = 1, max = 10)) #确认项目(“演示”)美元任务(状态=“草案”)

3.12.3修改任务

调用更新函数从一个任务对象更新如下:

  • 的名字
  • 描述
  • 输入列表。请注意,您只能更新你提供的物品。
#得到你想要的单个任务更新啧啧< -一个项目(“演示”)美元任务(“runif草案3”)啧啧啧啧美元更新(name = "草案runif更新”,描述=“2”草案,输入=列表(max = 100)) #替代方法来检查所有输入啧啧getInputs美元()

3.12.4运行一个任务

这个调用运行(“执行”)指定的任务。只有任务“草稿”状态可能会运行。

啧啧$()#跑没有信息返回最新信息更新啧啧美元更新()

# # #监控运行的任务并设置钩子函数

监控正在运行的任务,调用监控从一个任务对象。

  • 第一个参数设置间隔时间检查状态
  • 其他参数可用于钩子函数
啧啧监控()美元

获取和设置默认任务状态的钩子函数。目前,将监控失败的任务。

注意:钩子函数必须返回真正的(打破监控)(继续)。

getTaskHook(“完成”)getTaskHook(草案)setTaskHook(“草案”,函数(){消息(“永远不会发生”)返回(TRUE)}) getTaskHook(草案)

3.12.5终止正在运行的任务

这叫中止指定的任务。只有任务的状态是“运行”可能会流产。

#中止啧啧啧啧abort() #检查美元更新()

3.12.6删除一个任务

请注意,您只能删除任务,草案未运行的任务。

tsklst < - $任务(状态=“草案”)#删除一个任务tsklst[[1]]删除()#确认任务美元(状态=“草案”)#删除任务的列表删除(tsklst)

3.12.7下载所有文件从一个完成的任务

啧啧美元下载(~ /下载)

3.12.8在批处理模式运行的任务

以批处理方式运行任务,(检查批吗?为更多的细节。下面的代码是一个模型的例子。

#批物品(啧啧< - p task_add美元(name = " RNA DE报告批2”,描述=“RNA DE分析报告”,应用= RNA。应用程序id,美元批量=批量(输入=“bamfiles”),输入= (bamfiles = bamfiles列表。设计=设计。,gtffile = gtf。)))# batch by metadata, input files has to have metadata fields specified (tsk <- p$task_add( name = "RNA DE report new batch 3", description = "RNA DE analysis report", app = rna.app$id, batch = batch( input = "fastq", c("metadata.sample_id", "metadata.library_id") ), inputs = list( bamfiles = bamfiles.in, design = design.in, gtffile = gtf.in ) ))

3.13

云存储提供商有自己的接口,功能,和术语。在一定程度上,他们都认为资源数据对象组织在存储库中。身份验证和一般操作上定义这些对象和存储库,虽然每个云提供商可能会调用这些不同的名称和应用不同的参数对他们来说,他们的基本行为是相同的。

七桥环境协调访问这些存储库使用卷。体积与一个特定的云存储库,使七桥读取(可选,写信给)。目前,卷可以使用创建两种类型的云存储库:亚马逊网络服务(AWS) S3 bucket和谷歌云存储(GCS)桶。

体积可以把云存储库与外部存储器。您可以导入的文件从卷到你7个桥梁环境使用它们作为计算的输入。类似地,您可以编写文件从7个桥梁环境你的云存储“出口”到你的体积。

了解更多关于卷上七桥平台公司治理文化

3.13.1创建卷

< -身份验证(用户=“RFranklin”,平台=“aws-us”)美元add_volume (name = " tutorial_volume " type =“s3 bucket =“RFranklin-demo”前缀= " access_key_id =“your_access_key_id secret_access_key =“your_secret_access_key sse_algorithm =“AES256”, access_mode =“RW”)

3.13.2列表和搜索所有卷

#列出所有卷卷()美元#美元通过id获取独特的卷卷(id =“RFranklin / RFranklin_demo”) #局部搜索的名字美元体积(name =“演示”)

3.13.3得到一个卷的细节

v < -体积()美元[[1]]美元细节()

3.13.4删除卷

这个调用删除卷创建引用存储在Amazon Web服务或谷歌云存储。

注意,任何文件你进口卷到7个桥梁环境,称为一个别名,将不再可用。如果创建一个新卷的volume_id删除卷,别名将指向新创建的卷上的文件(如果存在)。

美元的体积(id =“RFranklin / RFranklin_demo”)美元删除()

3.13.5导入文件从卷到项目

这叫进口文件从卷到您的项目。

体积v < - $ (id =“RFranklin / tutorial_volume”) res < - v $(位置= " A-RNA-File.bam进口。白”,项目= " RFranklin / s3tutorial " name = " new.bam。白”,覆盖= TRUE) #得到工作状态更新#状态为“完成”,当它完成的时候,否则等待v $ get_import_job v (res $ id)

3.13.6导出文件从项目体积

重要的:

  • 文件选择出口必须不是一个公共文件或别名。别名是对象存储在云存储桶已可用7个桥梁环境。你出口的体积必须配置进行读写访问。为此,设置access_mode参数RW在创建或修改一个卷。
  • 如果这个调用成功,原项目文件将成为新出口对象的一个别名的体积。源文件将被删除从七个桥梁环境,如果不存在更多的该文件的副本,它将不再计入你的7个桥梁环境上存储的总价格。

测试时,请更新你的文件在一个项目。

res < - v $出口(文件=“579 fb1c9e4b08370afe7903a”,卷=“RFranklin / tutorial_volume”,位置= " #当”“用旧的名字sse_algorithm =“AES256”) #得到工作状态更新#国家将“完成”,当它完成的其他明智的“等待”v $ get_export_job v (res $ id)

3.14公共文件和应用程序

七桥举办公开文件和应用程序的环境。的sevenbridges从身份验证对象包提供了两个简单的函数调用搜索并复制文件和应用程序项目。

3.14.1公共文件

# 100年第一个文件列表public_file美元()#列表所抵消,限制美元public_file(抵消= 100,限制= 100)#简单地列出一切!public_file美元(完成= TRUE) #得到确切的文件通过id public_file美元(id =“5772”b6f0507c175267448700) #得到确切的文件与确切的名字= TRUE (name = " G20479.HCC1143.2.converted.pe_1_1Mreads public_file美元。fastq”,确切= TRUE) #确切= FALSE默认按名称搜索模式public_file美元(name = " fastq)美元public_file (name = " G20479.HCC1143.2.converted.pe_1_1Mreads.fastq ")

公共文件驻留在这个项目管理/ sbg-public-data,或者可以使用文件请求得到你所需要的文件。

3.14.2公共应用程序

公共应用程序,有类似的API调用。

# 100应用程序列表public_app美元()#列表所抵消,限制美元public_app(抵消= 100,限制= 50)#搜索通过id public_app美元(id =“admin / sbg-public-data / control-freec-8-1/12”) #搜索的名字在所有应用public_app美元(name =“明星”,完成= TRUE) #与精确匹配搜索的名字public_app美元(name = " Control-FREEC "确切= TRUE,完成= TRUE)

3.15行动

操作API允许你在批项目之间复制文件或发送反馈到七桥。

3.15.1项目之间复制文件

这叫项目之间允许你复制文件。不像美元的拷贝文件()文件(…)美元copyTo (…)只复制一个文件每个API调用,这叫让你批量复制操作和复制文件的列表。

p <——美元项目(id =“RFranklin /源码项目”)f p < - $(完成= TRUE) #得到所有文件id file_ids < -酸式焦磷酸钠(f,“[[”、“id”) #批量复制文件到目标项目申请< - $ bulk_file_copy (file_ids“RFranklin /目标项目”)#打印响应列表(要求< - unname(点播))
[[1]][[1]]美元地位[1]“OK”[[1]]美元new_file_id [1]“5 bf31316e4b09b8ff39f9df7”[[1]]美元new_file_name merged-tumor.converted.pe_1 [1]”。fastq”…

我们可以使用酸式焦磷酸钠复制操作状态,新文件id,和(新)文件名复制文件:

酸式焦磷酸钠(要求,“[[”、“地位”)
[1]“OK”“好”“好”“好”
酸式焦磷酸钠(要求,“[[”、“new_file_id”)
[1]“5 bf31316e4b09b8ff39f9df7”“5 bf31316e4b09b8ff39f9dfa”“5 bf31316e4b09b8ff39f9df4”“5 bf31316e4b09b8ff39f9df1”
酸式焦磷酸钠(要求,“[[”、“new_file_name”)
merged-tumor.converted.pe_1 [1]”。fastq" "merged-tumor.converted.pe_2.fastq" "merged-normal.converted.pe_2.fastq" [4] "merged-normal.converted.pe_1.fastq"

注意文件的ID是依赖于项目中。所以,当你复制文件从一个项目到另一个地方,他们的id将在目标项目是不同的。然而,文件名不改变通过复制,复制除外将产生非唯一目标项目的文件名。

3.15.2发送反馈项

使用这个调用发送反馈到七桥通过API。有三种反馈类型:“想法”,“思想”,或“问题”。你可以发送一个反馈项目每分钟。

美元send_feedback(“这是一个测试通过API发送反馈。请忽略此消息。”,type = "思想”)

3.16企业

企业API允许您管理您的企业在七桥平台上通过专用的API调用。

3.16.1API为业务上下文令牌

注意企业的身份验证令牌的API是一个单独的令牌生成的环境下你的部门,这是不同于你的non-division(个人)身份验证令牌。您可能会看到下面的错误当使用non-division令牌给企业API:

错误:HTTP状态400:权限访问这个资源不足。不是一个部门用户。

如果你看到这个错误,首先切换到正确的部门上下文(使用下拉菜单在左上角),然后单击“开发人员”选项卡,单击“身份验证令牌”,生成令牌,这令牌用于API认证。

3.16.2列出所有部门

列出所有部门你有访问,使用

< -身份验证(…)部门()美元
[[1]]= = = = id:分工部门名称:部门[[2]]= =部门= = id:另一个部门名称:另一个部门

3.16.3得到一个部门的细节

的细节(ID和名称)的一个部门,例如,上面列出的第一次分裂,使用

(d < - $部门(“部门”))
= = = = id:分工部门名称:部门

3.16.4创建一个团队

让我们创建两个新的团队在这个部门:

team1 < - d $ create_team (name = "新团队1 ")team2 < - d $ create_team (name = "新团队2 ")

3.16.5让一个团队的细节

检查细节(ID和名称)的第一个团队我们刚刚创建,使用

d $团队(team1 $ id)
= = = =团队id: 39 f6cb44 - 9 - e3c - 40 - e7 - 8639 - 3 - c0f3c1e4892名称:新团队1

3.16.6添加一个团队成员

我们可以将部门成员添加到团队创建。例如,让我们添加自己(部门用户名该部门/ your_username(部门)和另一个部门成员用户名该部门/ another_username第一个团队。同时,让我们自己添加到第二个团队:

team1 add_member美元(“该部门/ your_username”) team1 add_member美元(“该部门/ another_username”) team2 add_member美元(“该部门/ your_username”)

3.16.7团队成员名单

列出所有团队成员和他们的角色:

(m1 < - team1成员()美元)(m2 < - team2 $ ())
[[1]]= = = =用户名:团队成员分工/ another_username角色:管理员[[2]]= = = =用户名:团队成员分工/ your_username角色:管理员
[[1]]= = = =用户名:团队成员分工/ your_username角色:管理员

3.16.8删除一个团队成员

让我们从第一个团队:删除一个用户

team1 remove_member美元(m1[[1]]美元的用户名)

3.16.9重命名一个团队

重命名一个团队,使用:

team1美元重命名(“另一个团队名称”)
= = = =团队id: 39 f6cb44 - 9 - e3c - 40 - e7 - 8639 - 3 - c0f3c1e4892名称:另一个团队的名字

重命名后,球队仍然有相同的ID,仅仅用一个不同的名称。

3.16.10列出你的团队的分裂

列出的团队的成员在一个部门使用

d $团队()

注意,这里可以延迟一分钟后端如果你只是自己添加到团队秒之前。

3.16.11删除一个团队

删除我们创建的团队,使用

team1删除()team2删除()美元

3.17标记

标记API允许您添加,修改和删除遗传标记对BAM文件。这些遗传标记可以检查的七桥基因组浏览器

截至2018年11月,标记API仍然是一个预先访问特性。使用这个API,设置advance_access选项真正的:

选择<——getOption (“sevenbridges”)选择美元advance_access < -真正的选项(sevenbridges =选择)

3.17.1创建一个标记

让我们创建一个新的标记BAM文件:

#项目定位p <——美元项目(id =“RFranklin / api-markers”) #搜索文件”。bam '在他们的名字f p < - $文件(name = "本")#使用第一个bam f p < - $文件(id = f [[1]] $ id) #创建两个标记m1 < - f create_marker美元(“第一笔”,开始= 21631232,结束= 21631232)m2 < - f create_marker美元(“第二个标记”,开始= 21631156,结束= 21631158,染色体=“chr7”,私人= FALSE)

创建标记包括可能的参数

  • 标记的名称(的名字)
  • 标记的位置(开始结束)
  • 染色体数目(染色体)
  • 标记是否私有或公共(私人)。

标记的名称及其位置是必需的参数,和其他人都是可选的。

3.17.2标记可以在一个文件列表

列出所有标记一个文件,使用:

f标志()美元
[[1]]= = = =标记id: 5 bf478e5d38f185f0c23bc44名称:第一个标记[[2]]= = = =标记id: 5 bf478e6d38f185f0c23bc45名称:第二个标记

3.17.3得到标记的详细信息

我们还可以检查特定的标记的细节:

marker_id < - m1 f id标记(id = marker_id)美元
= = = =标记id: 5 bf478e5d38f185f0c23bc44名称:第一个标记文件:5 bf46c1be4b39b8f5232282e位置:开始:21631232:21631232 created_time: 2018 - 11 - 20 t21:13:00z created_by: RFranklin私人:真的

3.17.4修改标记

我们还可以修改现有标记的信息:

(m1 < - m1修改美元(name =“新标记的名字”,结束= 21631233,私人= FALSE))
= = = =标记id: 5 bf478e5d38f185f0c23bc44名称:新标记名称文件:5 bf46c1be4b39b8f5232282e位置:开始:21631232:21631233 created_time: 2018 - 11 - 20 t21:13:00z created_by: RFranklin私人:假的

所有上面提到的五个标记参数可以修改。

3.17.5删除标记

删除我们刚刚添加的标记,使用

m1删除()平方米删除()美元

3.18从httr得到原始的反应

在简单的API,我们返回一个对象包含的原始反应httr作为一个领域。你可以打电话反应()对象或使用领域。

3.19批处理操作项目/文件/任务

目前,用户必须使用拉普兰人做这些操作。这是一个简单的实现。

在这个方案中,我们实现删除下载等一些对象的任务、项目或文件。

4API备忘单

快速API小抄(工作):

# 01 -验证- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - getToken() #身份验证方法< -身份验证(令牌=令牌)< -身份验证(令牌=令牌、平台=“公司治理文化”)< -身份验证(从=“env”) < -身份验证(从profile_name =“文件”=“aws-us-user”) #列出所有API调用API () # API速率限制美元美元rate_limit() # 02 -用户- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -一个用户()美元的用户(“RFranklin”) # 03 -账单- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -美元账单()美元账单(id =…,分解= TRUE)美元发票()美元发票(id =“your_id”) # 04 -项目- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #创建新项目project_new美元(name =…billing_group_id =…,描述= ...) # list all project owned by you a$project() a$project(owner = "Rosalind.Franklin") # partial match p <- a$project(name = ..., id = ..., exact = TRUE) # delete p$delete() # update p$update(name = ..., description = ...) # members p$member() p$member_add(username = ...) p$member(username = ...)$update(write = ..., copy = ..., execute = ...) p$memeber(usrname = ...)$delete() # 05 - File -------------------------------------------------------------------- # list all files in this project p$file() # list all public files a$file(visibility = "public") # copy a$copyFile(c(fid, fid2), project = pid) # delete p$file(id = fid)$delete() # download p$file()[[1]]$download_url() p$file(id = fid3)$download("~/Downloads/") # download all download(p$file()) # update a file fl$update(name = ..., metadata = list(a = ..., b = ..., ...)) # metadata fl$meta() fl$setMeta() fl$setMeta(..., overwrite = TRUE) # 06 - App --------------------------------------------------------------------- a$app() # apps in a project p$app() p$app(name, id, revision = ...) a$copy_app(aid, project = pid, name = ...) # add new app p$app_add(short_name = ..., filename = ...) # 07 - Task -------------------------------------------------------------------- a$task() a$task(id = ...) a$task(status = ...) p$task() p$task(id = ...) p$task(status = ...) tsk <- p$task(id = ...) tsk$update() tsk$abort() tsk$run() tsk$download() tsk$detele() tsk$getInputs() tsk$monitor() getTaskHook() setTaskHook(status = ..., fun = ...)