内容

介绍

这个包是为了支持尽可能多的七桥支持的平台上,包括NCI癌症基因组云试点由七桥,只要你提供正确的API URL,它应该正常工作。

目前测试平台包括

它将有助于阅读文档的完整平台

API的一部分,如果你想了解细节和使用其全部力量:

API的URL

最常用的API url,选择正确的取决于您正在使用的平台

API V1

V1和V2的区别是,V2项目CWL(通用工作流语言)兼容,NCI癌症基因组学云,谷歌云,或任何更新的平台,你不应该有这样的一个问题。但七桥Platofrm,目前用户可以创建项目(V1)和新老developer项目(v2)。对于这群用户,请注意,sevenbridges包不支持老API在更高的层面上,alterntatively有两种方式,如果你仍然在使用旧的项目类型

对于高级用户,您仍然可以使用我们降低所有V1 API, API调用最常用参数“路径”、“查询”、“身体”,您还可以检查功能api

图书馆(sevenbridges) < - - - - - -身份验证(令牌=“8 c3329a4de664c35bb657499bb2f335c”,url =“https://api.sbgenomics.com/1.1/”)# #项目:美元/ 1.1 /项目api(路径=“项目”)# #更高层次不为v1 # #工作项目()美元不会起作用

原则:我将推荐所有用户切换到新的项目类型如果可能的话,它将有更多的功能和更好的支持包。

API V2和超越

当前公共v2 API

sevenbbridges包只支持V2和后来的API,它支持CWL兼容的项目。

安装

这个包现在在bioconductor猛击分支,安装包。

(“//www.andersvercelli.com/biocLite.R”)useDevel(猛击=真正的)biocLite(“sevenbridges”)

如果你不能安装它,因为你没有运行最新R,你可以从github安装包

# install.packages (“devtools”)如果devtools没有安装# #安装从github的开发版本(“//www.andersvercelli.com/biocLite.R”)# install.packages (“devtools”)如果devtools没有安装图书馆(devtools)install_github(“小企业/ sevenbridges-r”,build_vignettes =真正的,回购=BiocInstaller::biocinstallRepos(),依赖项=真正的)

这个包也可以在码头工人的形象腾飞/ sevenbridges,最新的bioconductor / devel_basedockerhub。

检查他Dockerfile

执行(“码头工人”,“sevenbridges / Dockerfile”,包=“sevenbridges”)

快速入门

更多细节关于如何使用API客户端在R,请为第二部分完整的指南。本节中,我将使用一个简单的例子快速启动。

创建身份验证对象

一切都从一个身份验证对象,我们设置身份验证对象,它记得你的身份验证令牌和url,每一个动作开始从这个对象。

你有三个不同的方法来设置令牌。

  1. 直接设置通过身份验证功能,明显地设置令牌和url。
  2. 配置文件在你家里.sbg.auth文件夹”。yml”,非常容易管理和隐式加载,每一次你开始一个新的会话。
  3. Tempoerary通过R中的选项设置会话
图书馆(sevenbridges) # #直接设置一个< -身份验证(令牌=“< fake_token >”,url =“https://cgc-api.sbgenomics.com/v2/”)# #或加载默认配置文件(自动装载选项)图书馆(sevenbridges) < - - - - - -身份验证(平台=“我们”,用户名=“腾飞”)
= = Auth = =标记:< fake_token >的url: https://cgc-api.sbgenomics.com/v2/

信息是一个用户

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

美元用户()
= = = =用户href: https://cgc-api.sbgenomics.com/v2/users/tengfei用户名:腾飞电子邮件:tengfei.yin@sbgenomics.com first_name:腾飞last_name:阴联系:七桥基因组学:美国

列出用户资源,这个调用返回指定的用户的信息。注意,目前只能查看自己的用户信息,所以这叫等于叫我的信息。

美元用户(用户名=“腾飞”)

速率限制

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

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

显示计费信息

计费信息,每一个项目与一个计费组

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

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

美元计费(id =“your_billing_id”,崩溃=真正的)

创建一个项目

创建一个新项目称为“api测试”,与计费组id。

# #得到计费组id < -美元计费# # ()$ id (p < -创建新项目美元project_new(name =“api测试”报价,描述=“只是一个测试”))
= = = =项目id:腾飞/ api-testing名称:api描述:测试只是测试billing_group_id: < fake_bid >类型:v2——许可

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

然后我们要运行一个任务,你想上传您的json文件,描述你的工具,在这里,我们使用一个随机数字生成器实例保存在这个包中。

注意:或者你可以直接描述你的CWL工具R与这个包,请阅读另一个小插曲”描述CWL工具/ R和执行工作流”

# #一个CWL文件添加到您的项目fl.runif < - - - - - -执行(“码头工人”,“sevenbridges / rabix / runif.json”,包=“sevenbridges”)

让我们看看这个json文件的内容

(readline(fl.runif),9月=\ n)
{“小企业:id”:“runif”,“id”:“# runif”、“输入”:[{“类型”:“int”,“标签”:“数量”,“描述”:“观察”,“streamable”:假的,“默认”:1、“id”:“#”、“inputBinding”:{“位置”:0,“前缀”:”——n”,“独立”:真的,“小企业:cmdInclude”:真正}},{“类型”:“空”、“浮动”,“标签”:“敏”,“描述”:“分配”的下限,“streamable”:假的,“默认”:0,“id”:“#分钟”、“inputBinding”:{“位置”:0,“前缀”:“——敏”,“独立”:真的,“小企业:cmdInclude”:真正}},{“类型”:“空”、“浮动”,“标签”:“max”、“描述”:“分配”的上限,“streamable”:假的,“默认”:1、“id”:“#马克斯”、“inputBinding”:{“位置”:0,“前缀”:“——马克斯”,“独立”:真的,“小企业:cmdInclude”:真正}},{“类型”:“空”、“浮动”,“标签”:“种子”、“描述”:与set.seed“种子”,“streamable”:假的,“默认”:1、“id”:“#种子”,“inputBinding”:{“位置”:0,“前缀”:“——种子”,“独立”:真的,“小企业:cmdInclude”:真正}}],“输出”:[{“类型”:“空”,“文件”,“标签”:“输出”、“描述”:“随机数文件”、“streamable”:假的,“默认”:“”,“id”:“#随机”、“outputBinding”:{“水珠”:“*。txt”}},{“类型”:“空”,“文件”,“标签”:“报告”、“描述”:“”,“streamable”:假的,“默认”:“”,“id”:“#报告”,“outputBinding”:{“水珠”:“*。html "}}],“需求”:[],“提示”:[{“类”:“DockerRequirement”,“dockerPull”:“腾飞/ runif”、“dockerLoad”:“”,“dockerFile”:“”,“dockerImageId”:“”,“dockerOutputDirectory”: "},{"类":“小企业:CPURequirement”,“价值”:1},{“类”:“小企业:MemRequirement”,“价值”:2000}],“标签”:“随机数字生成器”、“类”:“CommandLineTool”、“baseCommand”: [" runif。R”,“参数”:[],“上下文":" "}

现在,让我们将这个json文件添加到您的projct作为一个新的应用程序。

< - # #名app(援助p $app_add(“runif”fl.runif) $ id)

你得到这样一个id

“腾飞/ api-testing / runif / 0”

它是由

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

或者,您可以描述这样的工具

fl < -执行(“码头工人”,“sevenbridges / rabix / generator.R”,包=“sevenbridges”)(readline(fl),9月=\ 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液体输出= out.lst) < -“本月/码头工人/ sevenbridges / rabix / runif。json“写(rbx toJSON美元(漂亮= TRUE), fl)

这样和添加

# # rbx是返回的对象的工具函数(< -的援助p $app_add(“runif”rbx) $ id)

请阅读另一个教程如何描述工具和流在R。

Excute新任务

现在我们起草一个新的任务,你需要指定

我想生成1 1到10之间的随机数(默认)。

(啧啧< -p $task_add(name =“攻无不克的5号”,描述=“生成一些随机数字”,应用=援助,输入=列表(最小值=1,max =10,数量=1,种子=4)))# #确认,显示所有任务状态为草稿p $任务(状态=“草案”)# #还是美元啧啧的任务列表更新()

现在你有你的起草任务时,您可以删除你的任务或更新草案。

# #没有运行# #啧啧美元删除()

看起来就像只有一个数字,哦,我想要100个数字,让我更新我的起草任务

啧啧美元getInputs()# #失踪数字输入,只有美元更新号码啧啧更新(输入=列表(数量=500年,种子=1)# #双止啧啧美元getInputs()

或者我们只是想在云中运行它!

啧啧$ # #运行您的任务运行()

监控任务,你可以随时调用更新在task对象检查状态。

啧啧美元更新()

或更多的乐趣,您可以监视和钩子函数运行的任务,因此触发一个函数当状态是“完成”,“运行”等,请检查细节部分钩的任务。

默认情况下它只是显示消息当任务完成。

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

运行的任务只是所有

# #没有运行# #啧啧abort()美元

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

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

更有趣的任务挂钩,所以当它完整的下载文件

setTaskHook(“完成”、功能(){啧啧$下载(“~ /下载”美元)})啧啧监控()

用户友好的API

这是包试图帮助,并提供一个用户友好的界面,我们建议用户使用,所以你不必把几个api ()电话和参考API文档所有的时间来完成一个简单的任务。

认证

设置默认标记不同的平台

您可以创建一个名为“.sbg.auth的文件。在家里yml”文件夹,和维护多个占平台的列表,包括私人或公共的。

我们:url: https://api.sbgenomics.com/v2/用户:腾飞:令牌:fake_token yintengfei:令牌:fake_token公司治理文化:url: https://cgc-api.sbgenomics.com/用户:腾飞:令牌:fake_token gcp: url: https://gcp-api.sbgenomics.com/v2/用户:腾飞:令牌:fake_token

负载sevenbridges包时,它会首先尝试你的令牌配置文件解析成一个选项列表。

# # < -从配置文件创建身份验证对象身份验证(用户名=“yintengfei”,平台=“我们”)# #显示所有getToken()# #显示所有预设的用户令牌的平台getToken(“公司治理文化”)# #显示个人用户令牌getToken(平台=“公司治理文化”,用户名=“腾飞”)

注意:当你编辑你的.sbg.auth。yml,你必须重新加载您的软件包。

创建身份验证对象直接

首先,您需要构建一个身份验证对象,一切始于这个对象,它存储

  • 身份验证令牌
  • API的URL
  • 云平台(平台、癌症基因组学等),这是可选的,将转化为API的url。

逻辑是这样的

  1. 如果你没有通过url或令牌,我们认为你是加载配置文件
  2. 如果没有平台或用户提供,将使用令牌中的第一项配置文件,这个不推荐,至少提供平台/用户名设置。
图书馆(sevenbridges) # #直接设置一个< -身份验证(令牌=“1 c0e6e202b544030870ccc147092c257”,url =“https://cgc-api.sbgenomics.com/v2/”)

默认情况下它指向癌症基因组学的云平台,除非你指定

  • API URL(更灵活)
  • 或平台(目前支持的公司治理文化”,“我们”,“质量”)

注意:当你构建身份验证对象,确保你输入正确的身份验证平台或API的url。在七桥梁相关的平台上,你可以发现它在你的帐户设置和开发人员选项卡下。

教程中关于如何让你的身份验证,请查一下

列出所有API调用

如果我们没有通过任何参数从身份验证api(),它将列出所有api调用,我们提供任何参数将传递给api()函数,但你不需要再次输入令牌和url !身份验证对象就知道信息了。
这叫从身份验证对象也会检查响应。

美元api()

速度限制

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

美元rate_limit()

用户

这个调用返回一个列表的资源,如项目、计费组和组织,都可以访问你。如果你不是管理员,这叫只会返回一个成功的响应如果{username}替换为您自己的用户名。如果你是管理员,您可以{username}替换为任何公司治理文化的用户的用户名,返回的信息资源。

区分大小写:别忘了利用同样的方式你的用户名当你把它当你注册的公司治理文化。

如果你不提供用户名,将显示您的用户信息。

# #美元还你的信息用户()# #美元腾飞”年代返回用户信息用户(“腾飞”)

计费组和发票

对帐单

如果没有id提供,这个调用返回一个列表的路径通过API用于访问计费信息。其他,这叫列出所有你的付款组,包括组即将或已经被禁用。如果崩溃= TRUE,这个调用返回一个崩溃的支出项目的计费组由billing_group指定。为每个项目的计费集团联系在一起,显示在任务运行的信息,包括他们的初始用户(运动员),开始和结束时间和成本。

# #返回一个BillingList对象(b < -美元计费())美元计费(id =b $ id,崩溃=真正的)

的发票

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

美元发票()美元发票(id =“fake_id”)

备注(TODO):发票还没有对象,目前只是返回一个列表。

项目操作

项目是组织的基本单位不同实体:文件,任务,应用程序等等。所以很多行动来自这个“项目”的对象。

列出所有的项目

这个调用返回一个列表的所有项目的一员。每个项目project_id和URL的公司治理文化将被归还。

美元项目()

然后如果你想列出项目所有访问特定用户,指定老板论点。每个项目的ID和URL将被归还。

美元项目(老板=“腾飞”美元)项目(老板=“yintengfei”)

项目(s)的详细信息,使用细节= TRUE

美元项目(细节=真正的)

部分匹配项目名称

界面友好、方便搜索,我们在此接口支持部分名称匹配。调用的第一个参数是“名字”,用户可以提供名字的一部分,我们为您自动进行搜索。

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

创建一个新项目

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

  • 名称(需要)
  • billing_group_id(必需)
  • 描述(可选)
  • 标签(可选):这是一个列表(),只有当你“,TCGA”用户,您可以创建TCGA项目通过标签列表(“TCGA”)
  • 类型(可选):默认情况下,我们创建一个cwl项目“v2”
美元project_new(“api_testing_tcga”b id,美元描述=“API测试”)

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

只需要通过一个“标签”列表值“tcga”

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

删除一个项目

接下来我们删除创建测试,项目可能被删除现在的电话删除()美元,所以请注意返回的对象美元的项目(),有时候如果您使用的是部分匹配的名字,它将返回一个列表。如果你想操作一个对象列表,我们提供了一些批处理功能,请阅读相关部门。

# #删除它,而不是美元项目(“api_testing”美元)删除()# # # #检查将删除所有项目matcht这个名字删除(美元项目(“api_testing_donnot_delete_me”))

更新/编辑项目

您可以更新现有的项目信息,包括

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

项目成员

成员列表

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

  • 会员用户名的公司治理文化
  • 在项目成员的权限指定
美元项目(id =“腾飞/演示项目”美元)成员()
添加一个成员

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

请求添加一个项目成员必须包括关键权限。然而,如果你不包括一些许可值,它将默认设置为false。

设置权限通过:复制、写、执行、管理、读取参数。

注意:阅读是隐式的,默认情况下,您不能项目成员没有读权限

m < -美元项目(id =“腾飞/演示项目”美元)member_add(用户名=“yintengfei”)

更新一个成员

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

m < -美元项目(id =“腾飞/演示项目”美元)成员(用户名=“yintengfei”)m $更新(复制=真正的)
= = = =用户名成员:yintengfei——允许读:真正的写:假copy_permission:真正的执行:假管理:假
删除一个成员

删除现有的成员,就打电话delete ()行动成员对象。

m美元删除()# #确认美元项目(id =“腾飞/演示项目”美元)成员()

列出所有文件

列出所有文件属于一个项目简单使用

p < - - - - - -美元项目(id =“腾飞/演示项目”)p $文件()

文件和元数据

列出所有文件

这个调用返回一个列表的所有文件在指定的项目,您可以访问。对于每个文件,调用返回:

  • 它的ID
  • 它的文件名

该项目是在调用指定为一个查询参数。

美元文件(项目=p id)美元美元文件(“全向”,项目=p id,美元细节=真正的)

但是我们建议用户使用级联的方式列出文件。

p $文件()

文件的详细信息,请使用细节= TRUE在调用。

# #需要检查p美元文件(细节=真正的)

复制一个文件或一组文件

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

注意控制数据文件不能复制到开放数据项目。打这个电话,你应该复制权限内的项目你是抄袭。

让我们试着从公司治理文化公共文件,复制一个文件的id可以告诉从url是“561 e1b33e4b0aa6ec48167d7”

你必须提供

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

注意:你需要复制一组文件,Auth $拷贝文件()接口。这些文件的id在您的项目将不同于公共id。

或者你可以做单独的文件这样的复制

美元项目(“你好”美元)文件(id =fid)美元copyTo(pid)

删除文件(年代)

注意:删除行动仅为单一文件现在工作,确保你的文件调用返回一个文件不是一个文件列表。

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

您还可以删除或一组文件FilesList对象,小心这个函数!

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

下载文件

下载信息,基本上一个url,请使用

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

从R,直接下载使用下载电话直接从单一的文件对象。

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

我还创建了下载函数FilesList对象来节省你的时间

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

下载所有文件从一个项目。

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

上传文件

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

  • 命令行上传
  • 图形用户界面上传
  • 直接从ftp, http等接口
  • api上传,你可以直接电话sevenbridges包

这样的API客户端上传工作,简单地调用美元项目上传功能上传一个文件一个文件列表或一个文件夹递归…

< - - - - - -身份验证(用户名=“腾飞”,平台=“公司治理文化”液体)< -执行(“extdata”,“sample1.fastq”,包=“sevenbridges”)(p < - - - - - -美元项目(id =“腾飞/快速入门”)# #默认加载.meta文件p $上传(fl,覆盖=真正的)p $ # #通过元数据上传(fl,覆盖=真正的,元数据=列表(library_id =“testid2”,平台=“Illumina公司x11”)# #重命名p $上传(fl,覆盖=真正的,name =“sample_new_name.fastq”,元数据=列表(library_id =“new_id”))

上传一个文件夹

dir。ext < -执行(“extdata”,包=“sevenbridges”)list.files(dir.ext) p $上传(dir.ext覆盖=真正的)

上传文件列表

dir。ext < -执行(“extdata”,包=“sevenbridges”)# #启用全名fls的< -list.files(dir.ext递归=真正的,full.names =真正的)p $上传(fls的,覆盖=真正的)p $上传(“~ /文档/数据/ sbgtest / 1000 g_phase1.snps.high_confidence.b37.vcf”)

文件过滤任务

你也可以把所有文件从一个任务,或者通过一个元数据过滤器。

# #列出所有输出文件从一个任务id美元任务(id =“53020538 - 6936 - 422 - f - 80 - de - 02 - fa65ae4b39”美元)文件()# #列表文件的替代方式在特定项目美元文件(项目=“腾飞/ re”,来源。任务=“53020538 - 6936 - 422 - f - 80 - de - 02 - fa65ae4b39”)# #美元可以通过元数据过滤文件(项目=“腾飞/ re”,来源。任务=“53020538 - 6936 - 422 - f - 80 - de - 02 - fa65ae4b39”,元数据=列表(experimental_strategy =“RNA-Seq”))

公共文件

你现在可以公开文件列表的唯一途径是通过API身份验证文件()美元称,就目前而言,该项目id是“admin / sbg-public-data”。这可能是后来更新。选择,点击文件从我们的GUI,您将看到url链接的id。

美元文件(项目=“admin / sbg-public-data”)

更新一个文件

你可以叫update ()函数从文件对象,事情可能会被更新

  • 的名字
  • 元数据(列表):这是要覆盖所有元文件,所以请提供完整的列表。更灵活的操作,请检查下一节关于元数据。

如果没有提供参数,就会得到相同的文件和更新对象的细节。

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

显示元数据

fl $ # #显示元数据()

更新元

fl美元更新(name =“sample.fastq”,元数据=列表(new_item1 =“item1”,new_item2 =“第二条”,file_extension =“fastq”fl $)) # #检查出来()

元数据操作

元数据字段的完整列表和他们的公司治理文化可以在页面上的容许值TCGA的元数据

注意,文件名不一样它的ID, ID是一个十六进制字符串,自动分配给项目中的一个文件。文件的名字是一个人类可读的字符串。的信息,请参阅API概述。

获取一个文件的元数据调用元()

# #元拉最新的信息通过API fl美元()# #领域元数据保存之前保存一个fl美元元数据

尽管公司治理文化定义一组元模式,这是可见的UI的平台,但是你可以通过任何自由形式的元文件,它只是不可见的UI,但它与数据的存储。

只有指定的值存储在文件中,请设置元数据setMeta ()从文件对象。

重要的:

  • 默认情况下,我们不是覆盖元领域使用setMeta电话,除非你通过覆盖= TRUE论点
fl美元setMeta(new_item3 =“item3”fl # #哦它删除其他元美元flsetMeta(new_item4 =“item4”,覆盖=真正的)fl

让我们保持玩元,如果你真的有兴趣在UI中显示的默认模式,您可以使用元数据()构造函数和检查每一元的细节;简单地调用函数(元)的名字,它将显示描述和枚举项。请注意suggested_values字段。

# #检查的模式元数据()美元显示(完整的=真正的)# #检查每个细节,和它玩平台()paired_end()quality_scale()

你可以看到一些人建议值,构建元数据,我们鼓励您使用元数据()直接通过元数据直接调用,它将做验证。

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

应用程序

从现在开始我们要玩得开心应用!CWL(通用工作流语言)为基础的方法。它真的变得越来越受欢迎,为可再生的管道设计描述和执行。七桥cwl天真地在云平台支持。所以在这一节中,我将介绍如何通过API和R。

列出所有应用程序

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

美元应用程序()$ # #或显示细节应用程序(细节=真正的)

搜索一个名字,请通过模式的名字参数;或者提供一个独特的id

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

列出所有应用程序属于一个项目使用项目论点

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

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

# #显示从公共x = 100件美元应用程序(可见性=“公共”)长度x (x) =美元应用程序(可见性=“公共”,完整的=真正的)长度x (x) =美元应用程序(项目=“腾飞/ helloworld”,完整的=真正的)长度(x)美元应用程序(可见性=“公共”,限制=5,抵消=150年)

搜索应用程序跨所有发布应用程序(这可能需要一段时间)

美元应用程序(“明星”,可见性=“公共”,完整的=真正的)

复制一个应用程序

这个调用将指定应用程序复制到指定的项目。您可以访问的应用程序应该是一分之一项目;这可能是一个应用程序已经上传到公司治理文化的项目成员,或公开的应用已经被复制到该项目。

需要两个参数

  • 项目:id字符
  • 名称:可选的,re-name你的应用
援助< -美元应用程序(可见性=“公共”)[[1美元]]$ idcopyApp(援助,项目=pid,name =“copy-rename-test”)# #检查复制美元应用程序(项目=pid)

从一个应用程序得到CWL

这个调用返回指定的应用程序的信息,作为原始CWL。调用不同的电话应用程序的细节是CWL通过返回一个JSON对象。

您可以访问的应用程序应该是一分之一项目;这可能是一个应用程序已经上传到公司治理文化的项目成员,或公开的应用已经被复制到该项目。

具体的修改,通过修订论点。

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

待办事项:将它转换成一个CWL对象

添加CWL作为应用程序

使用app_add函数调用的项目对象,需要两个参数

  • short_name:短为您的应用程序id,字母数字字符,没有间距;这不是名称字段。
  • 文件名:你为cwl json文件。
cwl。fl < -执行(“extdata”,“bam_index.json”,包=“sevenbridges”美元)项目(“演示”美元)app_add(short_name =“new_bam_index_app”,文件名=cwl.fl)美元项目(“演示”美元)app_add(short_name =“new_bam_index_app”,修订=2,文件名=cwl.fl)

注:提供相同的short_name将添加新版本

直接描述CWL R

这是有趣的,介绍了另一个故事。

任务操作

任务列表

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

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

列出所有项目中的任务

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

创建一个任务草案

创建一个草稿,你需要调用task_add函数从项目对象。你需要通过以下参数

  • 为这个任务名称:名称
  • 描述:描述这一任务
  • 应用:应用id访问
  • 输入:输入该任务列表
# #推第一fl.runif < -应用程序执行(“extdata”,“runif.json”,包=“sbgr”美元)项目(“演示”美元)app_add(“runif_draft”fl.runif) runif_id < -“腾飞/演示项目/ runif_draft”# #创建一个美元的起草任务项目(“演示”美元)task_add(name =“runif草案3”,描述=“描述runif 3”,应用=runif_id,输入=列表(最小值=1,max =10)# #确认美元项目(“演示”美元)任务(状态=“草案”)

修改任务

调用更新函数从一个任务对象,您可以更新

  • 的名字
  • 描述
  • 输入列表(只更新你提供的物品。)
# #得到你想要的单个任务更新啧啧< -美元项目(“演示”美元)任务(“runif草案3”美元)啧啧啧啧更新(name =“草稿runif更新”,描述=“草案2”,输入=列表(max =One hundred.)# #检查所有输入美元啧啧的备选方法getInputs()

运行一个任务

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

啧啧美元运行()# #运行更新没有信息返回最新信息啧啧美元更新()

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

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

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

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

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

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

中止运行任务

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

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

删除一个任务

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

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

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

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

在bacth模式运行任务

以批处理方式运行任务,(检查批吗?更多细节),这是一个模拟运行

(啧啧< - # #批的项目p $task_add(name =“RNA DE报告批2”,描述=“RNA DE分析报告”,应用=rna.app $ id,批=批处理(输入=“bamfiles”),输入=列表(bamfiles =bamfiles.in,设计=设计,gtffile =gtf.in))) # #批元数据,输入文件必须有指定的元数据字段(啧啧< - - - - - -p $task_add(name =“RNA DE报告批3”,描述=“RNA DE分析报告”,应用=rna.app $ id,批=批处理(输入=“fastq”,c(“metadata.sample_id”,“metadata.library_id”)),输入=列表(bamfiles =bamfiles.in,设计=设计,gtffile =gtf.in)))

从httr得到原始的反应

在简单的API,我们返回一个对象包含的原始反应httr字段,您可以调用反应()对象或只是让这个领域

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

现在,用户必须使用拉普兰人做这些操作。很简单的实现。

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

备忘单

小抄(进行中)

# #认证getToken()< - - - - - -身份验证(令牌=令牌)< -身份验证(令牌=令牌,url =“https://cgc-api.sbgenomics.com/v2/”)< -身份验证(平台=“我们”,用户名=“腾飞”美元)# #列表APIapi()# #率限制了美元rate_limit()$ # #用户用户()美元用户(“腾飞”)# #美元账单计费()美元计费(id =,崩溃=真正的美元)发票()美元发票(id =“fake_id”项目)# # # # #美元创建新项目project_new(name =,billing_group_id =,描述=)# # #项目列出所有属于你一美元项目()美元项目(老板=“yintengfei”)# # #部分匹配p < - - - - - -美元项目(name =,id =,确切的=真正的)# # #删除p $删除()# # #美元更新p更新(name =,描述=)# # #成员p $成员()p $member_add(用户名=)p $成员(用户名=美元)更新(写=,复制=,执行=)p $先进性(usrname =美元)删除()# # # # #文件列出所有文件在这个项目中p $文件()$ # # #列出所有公共文件文件(可见性=“公共”美元)# # #副本拷贝文件(cfid2 (fid),项目=pid) # # #删除p $文件(id =fid)美元删除()# # #下载p $文件()[[1]]美元download_url()p $文件(id =fid3) $下载(“~ /下载/”)# # #下载下载(p $文件())# # #美元fl更新一个文件更新(name =,元数据=列表(一个=,b =,……))# # #元美元fl()fl美元setMeta()fl美元setMeta(…覆盖=真正的)# #应用一个美元应用程序项目()# # #应用p $应用程序()p $应用程序(名称、id、修订=美元)copyApp(援助,项目=pid,name =)# # #添加p $app_add(short_name =,文件名=美元)# #任务任务()美元任务(name =,id =美元)任务(状态=)p $任务()p $任务(name =,id =)p $任务(状态=)啧啧< -p $任务(name =,id =美元)啧啧更新()美元啧啧中止()美元啧啧运行()美元啧啧下载()美元啧啧detele()美元啧啧getInputs()美元啧啧监控()getTaskHook()setTaskHook(统计学的=,有趣的=)