sevenbridges
是一个R / Bioconductor包提供了一个接口七桥的公共API。包括支持的平台七桥平台,癌症基因组学云(公司治理文化),Cavatica。
从我们的文档了解更多七桥平台和癌症基因组学云(公司治理文化)。
的sevenbridges
包只支持v2 +版本的API,因为v2之前版本不兼容的通用工作流语言(CWL)。这个包提供了一个简单的接口来访问和尝试各种方法。
有两种方式构建API调用。例如,您可以使用低级的API调用,使用参数路径
,查询
,身体
。这些都是记录在API参考图书馆七桥平台和公司治理文化。一个低级的例子要求“所有项目列表”如下所示。在这个要求,你也可以通过查询
和身体
作为一个列表。
库(sevenbridges) < -身份验证(令牌=“your_token”,平台=“aws-us”)美元api(=“项目”,路径方法=“获得”)
(高级用户选项)构建一个API请求的第二种方式是直接使用httr
包让你的API调用,如下所示。
美元的项目()
在我们开始之前,请记住以下几点:
抵消
和限制
每个API调用接受两个参数抵消
和限制
。
默认情况下,抵消
被设置为0
和限制
被设置为One hundred.
。因此,你的API请求返回第一个100件当你列表项或寻找物品的名字。搜索和所有项目列表,使用完成= TRUE
在你的API请求。
搜索通过ID
通过ID搜索时,你的请求将返回你的资源,因为它是独一无二的。因此,你不需要设置抵消
和限制
手动。这是一个很好的实践,找到你的资源的ID和这个ID作为输入传递给你的任务。你可以找到一个资源的ID在URL的最后一部分在可视化界面或通过API请求列出资源或资源的详细信息。
按名称搜索
按名称搜索返回所有部分匹配,除非你指定确切= TRUE
。
的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
为了避免小插曲。
更多细节关于如何使用API客户端在R,请查阅七桥API参考小节为一个完整的指南。
身份验证
对象通过API之前,您可以访问您的帐户,您必须提供凭据。你可以获得凭证的形式“身份验证令牌”从开发人员选项卡下帐户设置在可视化界面。一旦你得到了这个,创建一个身份验证
对象,所以记得你的身份验证令牌和API的路径。所有后续请求将利用这些两条信息。
让我们先加载包:
库(“sevenbridges”)
你有三个不同的方式来提供你的令牌。选择一个方法如下:
身份验证()
。SB_API_ENDPOINT
和SB_AUTH_TOKEN
。$ HOME / .sevenbridges /凭证
,提供了一个有组织的方式收集和管理你所有的七桥平台API认证信息。这是最常见的构造方法身份验证
对象。例如:
(< -身份验证(平台=“公司治理文化”,令牌=“your_token”))
使用平台:公司治理文化= = Auth = = url: https://cgc-api.sbgenomics.com/v2/标记:< your_token >
在您的系统设置这两个环境变量,您可以使用该函数sbg_set_env ()
。例如:
sbg_set_env (“https://cgc-api.sbgenomics.com/v2”、“your_token”)
注意,这种变化可能只是暂时的,请使用标准方法来设置持久根据您的操作系统环境变量。
创建一个身份验证
对象:
< -身份验证(从=“env”)
假设我们已经创建的配置文件命名凭证
目录下$ 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参考部分更多的使用和技术细节的三个身份验证方法。
这个调用返回你的帐户信息。
$ user ()
= = = =用户href: https://cgc-api.sbgenomics.com/v2/users/RFranklin用户名:RFranklin电子邮件:rosalind.franklin@sbgenomics.com first_name:罗莎琳德last_name:富兰克林联系:七桥基因组学:美国
获取关于用户的信息
这个调用返回指定的用户的信息。请注意,目前只能查看自己的用户信息,这叫相当于调用获取您的帐户信息。
美元的用户(用户名= " RFranklin”)
每个项目必须有一个计费组相关联的。这群账单支付项目的存储和计算。
例如,您的第一个项目(s)创建与自由基金从试点基金计费组分配给每个用户注册。账单信息:
#检查你的账单信息计费()美元美元发票()
有关更多信息,使用崩溃= TRUE
。
美元的账单(id = " your_billing_id ",分解= TRUE)
项目的核心构件平台。每个项目对应一个不同的科学研究,作为一个容器的数据分析工具,结果,和合作者。
创建一个新项目与计费集团称为“api测试”id
上面了。
#获取计费组id报价< -计费()美元id #创建新项目(p < - $ project_new (name = " api测试”,报价,描述=“测试”))
= = = =项目id: RFranklin / api-testing名称:api描述:测试只是测试billing_group_id: < your_bid >类型:v2——许可
#列表第一个100美元的项目()#列出所有美元项目(完成= TRUE) #返回所有命名比赛“演示”美元的项目(name =“演示”,完成= TRUE) #得到你想要的项目通过id p <——美元项目(id =“RFranklin / api教程”)
七个桥梁维护工作流程和工具的用户在公共应用程序存储库。
找到更多关于公共应用程序,您可以执行以下操作:
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”项目,名称=“明星”的副本)
你还可以上传自己的通用工作流语言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”
它是由以下元素:
RFranklin / api
runif
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。
一旦你有复制公共应用程序管理/ sbg-public-data / rna-seq-alignment-star / 5
到你的项目中,用户名/ api-testing
,应用程序id
在你当前的项目用户名/ api-testing / newcopyofstar
。相反,您可以使用另一个应用程序在您的项目中你已经快速入门。
起草一个新的任务,你需要指定以下:
id
您正在执行的工作流你可以随时检查应用程序的视觉界面的细节任务输入要求。找到所需的输入与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_matrix
和output_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)
在响应主体定位所需输入的名字。注意,输入任务需要匹配预期的数据类型和名称。在上面的例子中,我们看到两个必需的字段:
我们也想提供一个基因特性文件:
你可以找到一个可能的输入类型列表如下:
文件
),其他输入一个文件(文件
数组,FilesList
,或“文件…
”)。这个输入要求你通过文件
为一个文件对象(输入)FilesList
对象(输入接受多个文件)或仅仅是在“文件”对象列表。你可以搜索文件id
或通过的名字
精确匹配(确切= TRUE
),如以下示例所示。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 )
#添加新任务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。
现在让我们做一批8文件4组,由元数据批处理sample_id
和library_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
输入。这是一种更安全的方法。
现在,我们已经准备好运行任务。
#你的任务啧啧$跑()
在你运行你的任务,你可以调整你的草稿任务最后如果你有任何的修改。或者,您可以删除任务草案如果您不再希望运行它。
# #没有运行#啧啧$删除()
你运行一个任务之后,可以中止它。
#中止你的任务啧啧abort()美元
如果你想更新你的任务,然后重新运行它,按照下面的例子。
啧啧getInputs美元()#失踪数字输入,只有更新数量啧啧美元更新列表(输入= (sjdbGTFfile =“一些新文件”))#双止啧啧getInputs美元()
运行的任务现货实例有可能减少大量的计算成本。这个选项可以控制在项目级别或任务在七桥平台上水平。我们的方案遵循相同的逻辑作为我们的平台的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 = FALSE
在task_add ()
明确。
在工作流开发和基准测试,有时我们需要查看并使调整任务所需的计算资源更高效地运行。同样,如果任务失败由于资源缺乏,我们经常想定义一个较大的实例没有编辑的任务重新运行应用程序本身。这是特别重要的在这种情况下,没有足够的磁盘空间。
七桥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
,请检查创建一个新的任务草案。
监控你的任务运行,你可以请求一个任务更新
让你的任务报告其状态。或者,您可以监视一个钩子函数运行的任务,它触发状态的函数,当“完成”。请检查细节部分在下面。
啧啧美元更新()
默认情况下,你的任务时通过电子邮件提醒你已经完成。
#监控你的任务(跳过这一部分)#啧啧监控()美元
使用下面的下载所有文件从一个任务完成。
啧啧美元下载(~ /下载)
而不是默认的任务监视行动,您可以使用setTaskHook
连接一个函数调用任务的状态。当您运行啧啧美元监控(时间= 30)
它会检查你的任务每30秒,看看当前的任务状态匹配一个以下状态:“排队”、“草案”,“运行”,“完成”、“流产”,“失败”。当找到匹配的任务状态,getTaskHook
返回的函数调用特定的状态。
getTaskHook(完成)
# #函数(…)# #{# #猫(“\ r”、“完成”)# #返回(真正的)# #}# # <环境:0 x55cff4408570 >
如果你想自定义监控功能,你可以调整以下要求。你的函数必须返回真正的
或假
最后。当它真正的
(或non-logical值)这意味着监控将被终止后,发现一个状态匹配和函数执行时,例如当任务完成。当它假
,这意味着监控将继续为下一次迭代的检查,例如,“运行”时,你要保持跟踪。
按照下面的例子来设置一个新的函数监控状态“完成”。然后,当任务完成时,它将所有任务输出文件下载到本地文件夹中。
setTaskHook(“完成”,函数(){啧啧$(" ~ /下载")返回下载(TRUE)})啧啧监控()美元
的sevenbridges
包提供了一个用户友好的界面,所以你不需要几个结合起来api ()
电话和不断参考API文档发布API请求。
在与API交互之前,您需要构建一个身份验证
对象存储以下信息:
一般的验证逻辑身份验证()
如下:
从
没有指定显式地指定为从= "直接"
。从“env”=
或用户配置文件从= "文件"
。使用直接验证,用户需要指定一个平台
或url
,与相应的令牌
。直接验证的例子:
< -身份验证(令牌=“your_token”,平台=“aws-us”)
上述七桥平台将使用AWS(美国)。
< -身份验证(令牌=“your_token url = " https://gcp-api.sbgenomics.com/v2 ")
上述指定将使用url
为基础API调用的URL。在这个例子中,url
点到七桥平台在谷歌云平台(GCP)。
< -身份验证(令牌=“your_token”)
以上将使用癌症基因组学云环境因为没有平台
也不url
被显式地指定(不推荐)。
注意:平台
和url
不应该同时指定。
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”)
你可以创建一个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_endpoint
和auth_token
在每个概要文件。
加载默认概要文件(命名(默认)
)从默认用户配置文件($ HOME / .sevenbridges /凭证
),请使用:
< -身份验证(从=“文件”)
加载用户配置文件aws-us-rfranklin
从这个配置文件,改变profile_name
:
< -身份验证(= "文件",profile_name =“aws-us-rfranklin”)
使用用户配置文件从其他位置(不推荐),请使用参数指定文件路径config_file
。例如:
< -身份验证(= "文件",config_file = " ~ / sevenbridges。cfg”, profile_name = " aws-us-rfranklin”)
注意:如果你编辑凭证
文件,请使用身份验证()
认证。
如果你不传递任何参数api ()
从身份验证
,它将列出所有API调用。您提供任何参数将传递到api ()
功能,但是你不需要通过输入令牌以来再次和路径身份验证
对象已经有这些信息。以下的电话身份验证
对象将检查响应。
美元的api ()
抵消
和限制
每个API调用接受两个参数抵消
和限制
。
抵消
定义检索项目开始的地方。限制
定义项目你想要的数量。默认情况下,抵消
被设置为0
和限制
被设置为50
。因此,你的API请求返回第一个100件当你列表项或寻找物品的名字。搜索和所有项目列表,使用完成= TRUE
在你的API请求。
getOption (sevenbridges)抵消美元getOption (sevenbridges)限制
通过ID搜索时,你的请求将返回你的资源,因为它是独一无二的。因此,你不需要设置抵消
和限制
手动。这是一个很好的实践,找到你的资源的ID和这个ID作为输入传递给你的任务。你可以找到一个资源的ID在URL的最后一部分在可视化界面或通过API请求列出资源或资源的详细信息。
按名称搜索返回所有部分匹配,除非你指定确切= 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)
类似于抵消
和限制
,每个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()
“字段”
请阅读文档细节。
所有API调用可选的查询参数字段。该参数允许您指定您想要的字段返回当清单资源(例如,所有项目)或获得一个特定的资源的详细信息(例如,一个给定的项目)。
字段的参数可用于以下方面:
没有字段
参数指定:调用返回默认字段。为调用返回单个资源的完整细节,这是他们所有的属性;对于某种类型的资源列表的调用,这是一些默认的属性。
的字段
参数可以设置为一个字段列表:例如,返回的字段id、名称和大小的文件在一个项目,你可以调用问题(字段= p $文件id、名称、大小)
字段的参数可以用来排除特定的文件:如果你想省略某些字段从响应,使用前缀的参数字段!
。例如,要获取一个文件的细节清单其元数据,没有问题的电话p $文件(字段= !元数据)
整个元数据字段将被删除从响应。
字段的参数可用于包括嵌套或省略某些字段,以同样的方式如上2和3中列出:例如,你可以使用metadata.sample_id
或origin.task
为文件。
看到各个领域的资源,指定字段= " _all "
。这对每个资源返回返回所有字段。注意,如果您正在一个特定资源的细节,使用字段= " _all "
不会返回任何属性比没有这个参数会被证明——用例清单的细节,相反,当你许多资源。请小心使用你的资源尤其是大油田;例如,应用程序资源的原始字段包含完整的CWL规范的应用程序会导致庞大的许多应用程序响应如果清单。
否定和嵌套可以自由组合,因此,例如,你可以问题p $文件(字段= " id、名称、状态、metadata.library, !起源”)
或(字段= p $任务!输入、输出)
。
请尝试下面的例子。
# #默认字段id、名称、项目p $() # #返回文件(s)和id、名称、p $文件siae信息(字段= id、名称、大小)# #返回所有可用信息文件(s)与p $文件(细节= TRUE) # #同上p $文件(字段=“_all”)
这个调用返回一个列表的资源,如项目、计费组和组织,都可以访问你。目前,这个调用将只返回一个成功的响应如果{username}替换为您自己的用户名。以同样的方式一定要利用你的用户名当你注册一个账户。
如果你没有提供一个用户名,它将显示您的用户信息。
#返回您的信息用户()#返回用户RFranklin美元的信息用户美元(“RFranklin”)
如果没有计费组id
提供,这个调用返回一个列表的路径通过API用于访问计费信息。如果提供了用户名,这叫列出所有你的付款组,包括组即将或已被禁用。如果您指定崩溃= TRUE
,下面的调用返回一个崩溃的支出项目的计费组由billing_group指定。信息也显示每个项目的一个特定的计费组相关联,包括任务执行,他们启动用户,开始和结束时间,他们的成本。
#返回一个BillingList对象(b < - $美元账单())计费(id = b $ id,分解= TRUE)
如果没有计费组id
提供,这个调用返回一个发票列表,每个信息,包括发票是否等待和计费期它覆盖。这个调用返回所有可用你的发票信息,除非你使用查询参数bg_id指定一个特定的计费组的ID,在这种情况下,它将返回发票金额计费组。如果一个发票id
提供,这叫检索指定的发票信息,包括成本分析、存储和发票。
美元的发票()美元发票(id =“your_id”)
注意:目前,发票不是一个对象。相反,它只返回一个常规R列表。
项目是组织的基本单位不同的实体:文件、任务、应用程序,等等。这样,源于很多动作项目
对象。
下面的调用返回一个列表的所有项目成员。每个项目的project_id
将返回和路径。
美元的项目()
如果你想列出项目所有访问特定用户,指定老板
参数如下。每个项目的ID和路径将被归还。
美元的项目(所有者=“RFranklin”)美元项目(所有者=“Rosalind.Franklin”)
项目(s)的详细信息,使用细节= TRUE
,如下所示。
美元的项目(详细= TRUE)
项目创建日期、修改日期和创造者信息有助于快速定位你所需要的项目,特别是当你想跟着大量的项目的生命周期,从旧的区分最近的项目。促进这样的需求,字段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”))
创建一个新项目,用户需要指定以下:
的名字
(必需)billing_group_id
(必需)描述
(可选)标签
(可选):这是一个列表()。如果您使用的是公司治理文化环境上的API,您可以创建一个项目通过指定TCGA控制数据,TCGA
在标签
。类型
(可选):默认情况下,我们创建一个V2, CWL兼容的项目。project_new美元(“api_testing_tcga”, b $ id,描述=“API测试”)
按照上面的指示,但通过,tcga
作为一个值标签
。
project_new美元(“controlled_project”, b $ id,描述= API的“测试”,标签=列表(“tcga”))
你可以删除一个单项目通过请求删除()美元
。注意,返回的对象美元的项目()
有时返回列表如果使用部分匹配的名字。的删除()美元
请求不能操作列表。如果你想操作一个对象列表,阅读更多关于批处理功能下面的相关部分。
#删除它,而不是运行一个项目(“api_testing”)删除美元()#检查#将删除所有项目匹配的名字删除(美元的项目(“api_testing_donnot_delete_me”))
你可以更新一个现有项目信息如下:
的名字
描述
billing_group_id
美元的项目(id =“RFranklin / helloworld”)美元项目(id =“RFranklin / helloworld”)美元更新(name = " Hello World更新”,描述=“更新描述”)
这个调用将新用户添加到指定的项目。它只能由一个用户在项目管理权限。
请求添加一个项目成员必须包括的关键权限
。然而,如果你不包含一个值,将被设置为成员的权限假
默认情况下。
设置权限通过以下值:复制
,写
,执行
,管理
,或读
。
注意:读
隐式和默认设置。你不能没有一个项目成员读
权限。
m < - $项目(id =“RFranklin /演示项目”)美元member_add(用户名=“Rosalind.Franklin”)
这叫编辑用户的权限指定的项目。它只能由一个用户在项目管理权限。
m < - $项目(id =“RFranklin /演示项目”)成员(用户名=“Rosalind.Franklin”)美元美元更新(复制= TRUE)
= = = =用户名成员:罗莎琳德。富兰克林——允许读:真写:假copy_permission:真正的执行:假管理:假
文件夹API允许你组织你的文件在项目中使用的文件夹。从文件系统的角度来看,文件夹是一种特殊类型的文件。因此,在这个包中,文件夹对象仍表示使用相同的类文件对象,只有具体的操作方法。
创建新文件夹和管理文件使用文件夹在一个项目中,我们首先需要得到的信息项目的根文件夹。例如
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类型:文件夹
在项目根目录下创建一个new_folder文件夹,使用
folder1 < - root_folder create_folder美元(“folder1”)
创建一个新的文件夹下folder1
,使用
folder2 < - folder1 create_folder美元(“folder2”)
让我们公开引用文件复制到项目根目录:
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”)
列出所有文件和文件夹到一个文件夹中(例如,根文件夹),使用
(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)
得到一个文件或文件夹对象的类型:
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 ()
如果一个文件夹还有文件,不能删除:
file2 < - file2 move_to_folder美元(folder2 $ id) folder2美元删除()
错误:400年HTTP状态:不支持删除非空文件夹。
我们需要删除一个文件夹内的所有文件和子文件夹之前删除文件夹本身:
file2删除()folder2删除()美元美元folder1删除()
所有七个桥梁环境支持通用工作流语言(CWL)本机以允许可再生的和便携式的工作流和工具。在本节中,我们将使用应用程序,包括工具和工作流程,通过API使用sevenbridges
R包。
这叫列出所有可用的应用程序。
应用()#美元或显示细节应用美元= 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)
这个调用指定的应用程序复制到一个指定的项目。应用应该一分之一项目,您可以访问一个应用程序已上传的项目成员或一个公开可用的应用程序复制到项目。
这个调用需要以下两个参数:
项目
:包括项目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”项目,名称=“明星”的副本)
这个调用返回原始CWL特定的应用,包括其原始CWL。调用不同的电话应用程序的细节,它返回一个JSON对象CWL。
应用应该一分之一项目,您可以访问一个应用程序已上传的项目成员或一个公开可用的应用程序复制到项目。
得到一个具体的修订,通过修订
论点。
美联社< - $应用(能见度=“公共”)[[1]]一个项目(“演示”)美元应用(“指数”)#得到特定修订项目(“演示”)应用美元(“指数”,修订= 0)
即将到来:将应用程序转换为CWL对象
添加CWL对象作为一个应用程序使用app_add
函数调用的项目
对象。以下两个参数要求:
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
这将添加一个新的修改。
在七桥平台上,当你创建或更新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)
这个调用返回一个任务列表,您可以访问。您可以过滤任务的状态。
#所有任务任务()#过滤器美元任务(状态=“完成”)美元的任务(状态=“运行”)
列出所有的任务在一个项目中,使用以下。
#一个更好的方法一个项目(“演示”)美元任务()#或者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”,地位=“草案”)
创建一个草案的任务,您需要调用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)) #确认项目(“演示”)美元任务(状态=“草案”)
调用更新
函数从一个任务对象更新如下:
的名字
描述
输入
列表。请注意,您只能更新你提供的物品。#得到你想要的单个任务更新啧啧< -一个项目(“演示”)美元任务(“runif草案3”)啧啧啧啧美元更新(name = "草案runif更新”,描述=“2”草案,输入=列表(max = 100)) #替代方法来检查所有输入啧啧getInputs美元()
这个调用运行(“执行”)指定的任务。只有任务“草稿”状态可能会运行。
啧啧$()#跑没有信息返回最新信息更新啧啧美元更新()
监控正在运行的任务,调用监控
从一个任务对象。
啧啧监控()美元
获取和设置默认任务状态的钩子函数。目前,将监控失败的任务。
注意:钩子函数必须返回真正的
(打破监控)假
(继续)。
getTaskHook(“完成”)getTaskHook(草案)setTaskHook(“草案”,函数(){消息(“永远不会发生”)返回(TRUE)}) getTaskHook(草案)
请注意,您只能删除任务,草案未运行的任务。
tsklst < - $任务(状态=“草案”)#删除一个任务tsklst[[1]]删除()#确认任务美元(状态=“草案”)#删除任务的列表删除(tsklst)
以批处理方式运行任务,(检查批吗?
为更多的细节。下面的代码是一个模型的例子。
#批物品(啧啧< - 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 ) ))
云存储提供商有自己的接口,功能,和术语。在一定程度上,他们都认为资源数据对象组织在存储库中。身份验证和一般操作上定义这些对象和存储库,虽然每个云提供商可能会调用这些不同的名称和应用不同的参数对他们来说,他们的基本行为是相同的。
七桥环境协调访问这些存储库使用卷。体积与一个特定的云存储库,使七桥读取(可选,写信给)。目前,卷可以使用创建两种类型的云存储库:亚马逊网络服务(AWS) S3 bucket和谷歌云存储(GCS)桶。
体积可以把云存储库与外部存储器。您可以导入的文件从卷到你7个桥梁环境使用它们作为计算的输入。类似地,您可以编写文件从7个桥梁环境你的云存储“出口”到你的体积。
< -身份验证(用户=“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”)
#列出所有卷卷()美元#美元通过id获取独特的卷卷(id =“RFranklin / RFranklin_demo”) #局部搜索的名字美元体积(name =“演示”)
这个调用删除卷创建引用存储在Amazon Web服务或谷歌云存储。
注意,任何文件你进口卷到7个桥梁环境,称为一个别名,将不再可用。如果创建一个新卷的volume_id删除卷,别名将指向新创建的卷上的文件(如果存在)。
美元的体积(id =“RFranklin / RFranklin_demo”)美元删除()
这叫进口文件从卷到您的项目。
体积v < - $ (id =“RFranklin / tutorial_volume”) res < - v $(位置= " A-RNA-File.bam进口。白”,项目= " RFranklin / s3tutorial " name = " new.bam。白”,覆盖= TRUE) #得到工作状态更新#状态为“完成”,当它完成的时候,否则等待v $ get_import_job v (res $ id)
重要的:
测试时,请更新你的文件在一个项目。
res < - v $出口(文件=“579 fb1c9e4b08370afe7903a”,卷=“RFranklin / tutorial_volume”,位置= " #当”“用旧的名字sse_algorithm =“AES256”) #得到工作状态更新#国家将“完成”,当它完成的其他明智的“等待”v $ get_export_job v (res $ id)
七桥举办公开文件和应用程序的环境。的sevenbridges
从身份验证对象包提供了两个简单的函数调用搜索并复制文件和应用程序项目。
# 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
,或者可以使用文件
请求得到你所需要的文件。
公共应用程序,有类似的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)
操作API允许你在批项目之间复制文件或发送反馈到七桥。
这叫项目之间允许你复制文件。不像美元的拷贝文件()
或文件(…)美元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将在目标项目是不同的。然而,文件名不改变通过复制,复制除外将产生非唯一目标项目的文件名。
使用这个调用发送反馈到七桥通过API。有三种反馈类型:“想法”
,“思想”
,或“问题”
。你可以发送一个反馈项目每分钟。
美元send_feedback(“这是一个测试通过API发送反馈。请忽略此消息。”,type = "思想”)
企业API允许您管理您的企业在七桥平台上通过专用的API调用。
注意企业的身份验证令牌的API是一个单独的令牌生成的环境下你的部门,这是不同于你的non-division(个人)身份验证令牌。您可能会看到下面的错误当使用non-division令牌给企业API:
错误:HTTP状态400:权限访问这个资源不足。不是一个部门用户。
如果你看到这个错误,首先切换到正确的部门上下文(使用下拉菜单在左上角),然后单击“开发人员”选项卡,单击“身份验证令牌”,生成令牌,这令牌用于API认证。
列出所有部门你有访问,使用
< -身份验证(…)部门()美元
[[1]]= = = = id:分工部门名称:部门[[2]]= =部门= = id:另一个部门名称:另一个部门
让我们创建两个新的团队在这个部门:
team1 < - d $ create_team (name = "新团队1 ")team2 < - d $ create_team (name = "新团队2 ")
检查细节(ID和名称)的第一个团队我们刚刚创建,使用
d $团队(team1 $ id)
= = = =团队id: 39 f6cb44 - 9 - e3c - 40 - e7 - 8639 - 3 - c0f3c1e4892名称:新团队1
我们可以将部门成员添加到团队创建。例如,让我们添加自己(部门用户名该部门/ your_username
(部门)和另一个部门成员用户名该部门/ another_username
第一个团队。同时,让我们自己添加到第二个团队:
team1 add_member美元(“该部门/ your_username”) team1 add_member美元(“该部门/ another_username”) team2 add_member美元(“该部门/ your_username”)
列出所有团队成员和他们的角色:
(m1 < - team1成员()美元)(m2 < - team2 $ ())
[[1]]= = = =用户名:团队成员分工/ another_username角色:管理员[[2]]= = = =用户名:团队成员分工/ your_username角色:管理员
[[1]]= = = =用户名:团队成员分工/ your_username角色:管理员
重命名一个团队,使用:
team1美元重命名(“另一个团队名称”)
= = = =团队id: 39 f6cb44 - 9 - e3c - 40 - e7 - 8639 - 3 - c0f3c1e4892名称:另一个团队的名字
重命名后,球队仍然有相同的ID,仅仅用一个不同的名称。
标记API允许您添加,修改和删除遗传标记对BAM文件。这些遗传标记可以检查的七桥基因组浏览器。
截至2018年11月,标记API仍然是一个预先访问特性。使用这个API,设置advance_access
选项真正的
:
选择<——getOption (“sevenbridges”)选择美元advance_access < -真正的选项(sevenbridges =选择)
让我们创建一个新的标记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)
创建标记包括可能的参数
的名字
)开始
和结束
)染色体
)私人
)。标记的名称及其位置是必需的参数,和其他人都是可选的。
列出所有标记一个文件,使用:
f标志()美元
[[1]]= = = =标记id: 5 bf478e5d38f185f0c23bc44名称:第一个标记[[2]]= = = =标记id: 5 bf478e6d38f185f0c23bc45名称:第二个标记
我们还可以检查特定的标记的细节:
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私人:真的
我们还可以修改现有标记的信息:
(m1 < - m1修改美元(name =“新标记的名字”,结束= 21631233,私人= FALSE))
= = = =标记id: 5 bf478e5d38f185f0c23bc44名称:新标记名称文件:5 bf46c1be4b39b8f5232282e位置:开始:21631232:21631233 created_time: 2018 - 11 - 20 t21:13:00z created_by: RFranklin私人:假的
所有上面提到的五个标记参数可以修改。
删除我们刚刚添加的标记,使用
m1删除()平方米删除()美元
快速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 = ...)