美文网首页
linux版本下的超简单的生信分析平台介绍

linux版本下的超简单的生信分析平台介绍

作者: 香菇泡泡青 | 来源:发表于2021-12-26 20:45 被阅读0次

    为了满足大家个性化的需求,六点了开发出了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。

    相关文章

      网友评论

          本文标题:linux版本下的超简单的生信分析平台介绍

          本文链接:https://www.haomeiwen.com/subject/xzblqrtx.html