为了满足大家个性化的需求,六点了开发出了Sixbox-linux,也就是sixbox的linux版本,来实现本地linux机器、集群等linux服务器的快速部署和使用。
Sixbox-linux现在已经开放使用,欢迎大家到官网安装使用!同时有更好的使用体验,这里为大家详细展示从安装、配置到使用的所有要点。
本文导读
安装:下载、 配置文件、 CWLdb (workflow仓库)
使用:读写配置文件、运行CWL、从仓库中获取CWL流程、查看CWL流程、提交CWL流程到仓库、修改tag、删除仓库中的workflow
版本更新及其他
Sixbox-linux 安装
■下载
1.前往官网下载中心下载安装脚本Sixbox_linux64_latest.sh在linux终端运行以下指令
bash Sixbox_linux64_latest.sh
2.按照安装程序屏幕上的提示进行操作(如果您不确定任何设置,可以接受默认值)。
3.为了使更改生效,请关闭然后重新打开终端窗口。
4.请测试您的安装。在终端窗口,运行sixbox -h命令。如果已正确安装,将显示参数说明。
至此,Sixbox-linux的安装和配置顺利结束。
■配置文件
在了解Sixbox详细用法之前,您需要知道Sixbox配置文件的相关信息。
Sixbox的配置文件用于Sixbox权限控制、记录sixoclock软件仓库地址源和CWLdb路径,您可以在${HOME}/.sixbox/config.yaml中查看。
一个Sixbox配置文件的示例:
libPath: /root/.sixbox/libchannel: https://www.sixoclock.net/apitoken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MzU2NzA0MjYsImlhdCI6MTYzNTY2NjgyNiwidWlkIjoiMTBhOGQ2YzUtZWM4MC00Mzg5LThlYTMtZWYyYTgyY2JlN2M5IiwiaXNfcmVmcmVzaCI6ZmFsc2UsInVuYW1lIjoiNjY2b2Nsb2NrIiwicGVybWlzc2lvbnMiOjIzfQ.ru86vr9cB2hlH-Sgf0i93A9D3_rEX2pk8Zvc1GHaZ
Sixbox配置文件中记载了三类信息:
token:记录您在sixoclock获取的授权token。
channel:记录sixbox从sixoclock仓库中拉取CWL Workflow的地址。
libPath:记录了CWLdb的lib路径,Sixbox默认lib路径在您安装Sixbox-linux的根路径。您也可以通过config中相关命令自定义该路径。
■CWLdb(workflow仓库)
当您在使用Sixbox时,它会为您在本地自动建立一个名为CWLdb的CWL Workflow仓库,以便您管理、运行、查找CWL Workflow。
CWLdb的路径默认是在Sixbox安装的目录下,但您也可以通过sixbox config set libPath命令自定义该路径。
关于CWLdb的两点说明:
CWLdb中设置metadata目录用于存放CWL Workflow元信息,其主要记录了CWL Workflow的作者、名称、版本和Sixbox或sixoclock为其自动生成的名为resource_id的唯一标识码。这些信息有助于您区分、运行、管理CWL Workflow。
CWLdb中content目录下存放了您通过sixbox commit提交的CWL Workflow和您从**sixoclock官方仓库**中下载的CWL Workflow。
Sixbox-linux 使用
■读写配置文件
sixbox包含多个子命令用于实现不同的功能。为了您能够充分使用sixbox的全部功能,我们建议您先设置Sixbox的配置文件。
sibox config命令能够帮助您迅速设置sixbox的配置文件。您可以通过sixbox config -h来查看config命令的相关使用说明。下面向您介绍config命令的使用。
如您需要将从**sixoclock**获取的客户端登陆授权token写入配置文件,可使用如下命令:
sixbox config set token $(token)
快速配置channel,可使用如下命令:
sixbox config add channel $(channel name)
如果您想查看Sixbox配置文件中的内容,可以使用info命令
sixbox config info
自定义CWLdb的lib路径
sixbox config set libPath $(libpath)
■运行CWL
run命令。您可以通过sixbox run -h来查看参数等帮助信息。运行示例如下:
sixbox run ./soapnuke-filter.cwl ./soapnuke-filter.yaml
如果您没有本地CWL流程,可以使用sixbox自带的demo流程,亦或使用pull命令(有关pull命令的使用将在下文进行详细介绍)从sixoclock平台获取相关流程。
运行sixbox demo CWL流程
sixbox run $(which sixbox)/../../test/soapnuke-filter.cwl $(which sixbox)/../../test/soapnuke-filter.yaml
运行从**sixoclock软件仓库**下载的CWL流程,
sixbox run 6ae767b1-880e-4573-99b5-6cc7914eeae8 $(which sixbox)/../../test/soapnuke-filter.yaml1
运行结果默认输出在当前目录下,也可以通过--outdir指定输出目录:
sixbox run --outdir /home/test ./soapnuke-filter.cwl ./soapnuke-filter.yaml
其中, soapnuke-filter.cwl 为下载自sixoclock软件仓库soapnuke-filter软件主文件。
soapnuke-filter.yaml为用户配置可视化运行参数的文件。
resource_id为您从**sixoclock软件仓库**下载的软件主文件的标识id,该id用于识别区分不同的CWL文件。
您也可以使用--make-template来生成一个YAML格式的参数配置文件,用于手动配置您的软件/流程的参数。
sixbox run --make-template ./soapnuke-filter.cwl > ./soapnuke-filter.yaml
考虑到您可能不是docker用户,sixbox提供了--udocker和--singularity两个参数胡,帮助您在系统不支持docker的情况下,运行CWL Workflow
sixbox run --udocker ./soapnuke-filter.cwl ./soapnuke-filter.yaml
或者,
sixbox run --singularity ./soapnuke-filter.cwl ./soapnuke-filter.yaml
您或许注意到以上的例子中,所输入的YAML文件并非一个必选项,这是因为sixbox同时支持命令行模式配置参数,为您在运行CWL Workflow的时候提供便利。
sixbox run 6oclock/bwa:v0.1 -mem test.fastq
最后,
run命令可以根据CWLdb中的CWL Workflow对应的tag或是resource_id直接运行CWLdb中保存的CWL Workflow,如下所示:
sixbox run $(resource_id)
或者,
sixbox run $(tag)
■ 从仓库中获取CWL
sixbox pull命令让您可以便捷的从sixoclock软件仓库中获取您需要的CWL流程:
sixbox pull $(pipe_id)
其中,pipe_id为**sixoclock软件库**中每个软件的对应id,如图所示:
获取的CWL文件将被保存至$(libPath)/resource/pipe/cwldb/content目录下。CWL文件的元信息将被保存至$(libPath)/resource/pipe/cwldb/metadata目录下。
■ 查看CWL流程
您可以使用cwls查看保存在$(libPath)/resource/pipe/cwldb/content目录下的CWL流程。
sixbox cwls
tag provider name resource_id version 6oclock/bowtie2-build:v2.2.9 6oclock bowtie2-build 5847e32d-127e-469b-9f7a-3e1b97f4625a v2.2.9
■ 提交流程到仓库
如果您想将所有的CWL流程放在同一个文件夹下统一管理(事实上,我们也建议你这样做,以便于您使用sixbox进行统一的操作)。您可以使用commit命令将CWL流程提交至CWLdb中,示例如下:
sixbox commit ./sixbox-linux/testdata/soapnuke-filter.cwl 666oclock/soapnuke-filter:v1.0
666oclock/soapnuke-filter:v1.0为该CWL流程的tag,用于区别其他的CWL流程, 其格式为/和:分隔的字符串。我们建议每个字段的内容是$(provider)/$(cwl name):$(cwl version)。
例如示例中,666oclock为CWL流程的创建者,soapnuke-filter为软件的名称,v1.0为该CWL流程的版本号。
提示
组成CWL tag的各字段,支持的字符为数字、英文字母、_、.以及-组成,且_、.以及-不能为字段的开头或结尾。
当您提交CWL流程后,CWLdb下的metadata目录和content目录中会分别将该CWL流程的元信息和源码保存下来,并为这个CWL流程分配一个唯一的id,以便之后调用该文件。
此外,如果您所提交的CWL流程的tag已经存在于CWLdb中,sixbox将认为这两个文件属于相同文件,并询问您是否需要替换,如果您选择不替换,则本次提交不会进行。
root@25fad418f511:/home/test/dist# sixbox commit /home/test/testdata/soapnuke-filter.cwl 666oclock/soapnuke-filter:v1.0INFO sixbox 3.0.20210124104916INFO Resolved '/home/test/testdata/soapnuke-filter.cwl' to 'file:///home/test/testdata/soapnuke-filter.cwl'/home/test/testdata/soapnuke-filter.cwl is valid CWL.INFO: There is a CWL resource with the same name in CWLdb. PLEASE confirm whether to replace the fileDo you want to overwrite the file? Please input Y/N:
使用cwls命令查看相关信息:
tag provider name resource_id version 6oclock/bowtie2-build:v2.2.9 6oclock bowtie2-build 5847e32d-127e-469b-9f7a-3e1b97f4625a v2.2.9 666oclock/soapnuke-filter:v1.0 666oclock soapnuke-filter deacac36-70de-42e8-8069-3fb15fb715e6 v1.0
可以看到,原本存在的CWL流程的相关信息并未发生改变。如果您选择替换,原有CWL流程将会被新提交的文件替换,其resource_id也将被改变。
tag provider name resource_id version 6oclock/bowtie2-build:v2.2.9 6oclock bowtie2-build 5847e32d-127e-469b-9f7a-3e1b97f4625a v2.2.9 666oclock/soapnuke-filter:v1.0 666oclock soapnuke-filter bd9f3559-9047-44a4-bd24-6ea14db48173 v1.0
■ 修改tag
我们提供sixbox tag命令,用于您修改CWLdb中的CWL Workflow相关信息,方便您更好的管理CWL Workflow
sixbox tag 30479859-c02d-4a40-8e7d-92f9011ac9b8 6oclock/bwa:v0.1
其中30479859-c02d-4a40-8e7d-92f9011ac9b8为CWLdb中CWL Workflow对应的resouece_id,6oclock/bwa:v0.1为CWL Workflow新的tag信息。
同时,您也可以通过输入原先的tag和新的tag信息,对CWL Workflow的tag信息进行修改
sixbox tag 6oclock/bwa:v0.1 sixoclock/bwa:v0.2
6oclock/bwa:v0.1为原先的tag信息,sixoclock/bwa:v0.2为新的tag信息。
■ 删除仓库中CWL workflow
通过sixbox rm命令,您可以删除CWLdb中的CWL Workflow,其中输入的参数可以是CWL Workflow对应的resouece_id或是tag
sixbox rm 30479859-c02d-4a40-8e7d-92f9011ac9b8
其中30479859-c02d-4a40-8e7d-92f9011ac9b8为CWLdb中CWL Workflow对应的resouece_id.
您也可以通过如下方式删除CWLdb中的CWL Workflow
sixbox rm 6oclock/bwa:v0.1
其中6oclock/bwa:v0.1为CWLdb中需要删除的CWL Workflow对应的tag
版本更新及其他
如果获取最新版本的 sixbox 或者更新您的 sixbox 有两种方法:
1、update 功能帮助您在线更新您的 sixbox;
2、使用 install 命令安装指定版本的 sixbox。
sixbox update sixbox #更新sixbox到最新版本sixbox install sixbox=1.1.20210530094243 #安装1.1.20210530094243版本的sixbox
以上是关于sixbox的linux版本的详细介绍,如果您在使用过程中有其他问题,也欢迎反馈或者查看解决方法info@sixoclock.net。