為了滿足大家個(gè)性化的需求,六點(diǎn)了開(kāi)發(fā)出了Sixbox-linux,也就是sixbox的linux版本,來(lái)實(shí)現(xiàn)本地linux機(jī)器、集群等linux服務(wù)器的快速部署和使用。
Sixbox-linux現(xiàn)在已經(jīng)開(kāi)放使用,歡迎大家到官網(wǎng)安裝使用!同時(shí)有更好的使用體驗(yàn),這里為大家詳細(xì)展示從安裝、配置到使用的所有要點(diǎn)。
本文導(dǎo)讀
安裝:下載、?配置文件、?CWLdb (workflow倉(cāng)庫(kù))
使用:讀寫(xiě)配置文件、運(yùn)行CWL、從倉(cāng)庫(kù)中獲取CWL流程、查看CWL流程、提交CWL流程到倉(cāng)庫(kù)、修改tag、刪除倉(cāng)庫(kù)中的workflow
版本更新及其他
Sixbox-linux 安裝
■下載
1.前往官網(wǎng)下載中心下載安裝腳本Sixbox_linux64_latest.sh在linux終端運(yùn)行以下指令
bash Sixbox_linux64_latest.sh
2.按照安裝程序屏幕上的提示進(jìn)行操作(如果您不確定任何設(shè)置,可以接受默認(rèn)值)。
3.為了使更改生效,請(qǐng)關(guān)閉然后重新打開(kāi)終端窗口。
4.請(qǐng)測(cè)試您的安裝。在終端窗口,運(yùn)行sixbox -h命令。如果已正確安裝,將顯示參數(shù)說(shuō)明。
至此,Sixbox-linux的安裝和配置順利結(jié)束。
■配置文件
在了解Sixbox詳細(xì)用法之前,您需要知道Sixbox配置文件的相關(guān)信息。
Sixbox的配置文件用于Sixbox權(quán)限控制、記錄sixoclock軟件倉(cāng)庫(kù)地址源和CWLdb路徑,您可以在${HOME}/.sixbox/config.yaml中查看。
一個(gè)Sixbox配置文件的示例:
libPath: /root/.sixbox/libchannel: https://www.sixoclock.net/apitoken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MzU2NzA0MjYsImlhdCI6MTYzNTY2NjgyNiwidWlkIjoiMTBhOGQ2YzUtZWM4MC00Mzg5LThlYTMtZWYyYTgyY2JlN2M5IiwiaXNfcmVmcmVzaCI6ZmFsc2UsInVuYW1lIjoiNjY2b2Nsb2NrIiwicGVybWlzc2lvbnMiOjIzfQ.ru86vr9cB2hlH-Sgf0i93A9D3_rEX2pk8Zvc1GHaZ
Sixbox配置文件中記載了三類信息:
token:記錄您在sixoclock獲取的授權(quán)token。
channel:記錄sixbox從sixoclock倉(cāng)庫(kù)中拉取CWL Workflow的地址。
libPath:記錄了CWLdb的lib路徑,Sixbox默認(rèn)lib路徑在您安裝Sixbox-linux的根路徑。您也可以通過(guò)config中相關(guān)命令自定義該路徑。
■CWLdb(workflow倉(cāng)庫(kù))
當(dāng)您在使用Sixbox時(shí),它會(huì)為您在本地自動(dòng)建立一個(gè)名為CWLdb的CWL Workflow倉(cāng)庫(kù),以便您管理、運(yùn)行、查找CWL Workflow。
CWLdb的路徑默認(rèn)是在Sixbox安裝的目錄下,但您也可以通過(guò)sixbox config set libPath命令自定義該路徑。
關(guān)于CWLdb的兩點(diǎn)說(shuō)明:
CWLdb中設(shè)置metadata目錄用于存放CWL Workflow元信息,其主要記錄了CWL Workflow的作者、名稱、版本和Sixbox或sixoclock為其自動(dòng)生成的名為resource_id的唯一標(biāo)識(shí)碼。這些信息有助于您區(qū)分、運(yùn)行、管理CWL Workflow。
CWLdb中content目錄下存放了您通過(guò)sixbox commit提交的CWL Workflow和您從**sixoclock官方倉(cāng)庫(kù)**中下載的CWL Workflow。
Sixbox-linux 使用
■讀寫(xiě)配置文件
sixbox包含多個(gè)子命令用于實(shí)現(xiàn)不同的功能。為了您能夠充分使用sixbox的全部功能,我們建議您先設(shè)置Sixbox的配置文件。
sibox config命令能夠幫助您迅速設(shè)置sixbox的配置文件。您可以通過(guò)sixbox config -h來(lái)查看config命令的相關(guān)使用說(shuō)明。下面向您介紹config命令的使用。
如您需要將從**sixoclock**獲取的客戶端登陸授權(quán)token寫(xiě)入配置文件,可使用如下命令:
? sixbox config set token $(token)
快速配置channel,可使用如下命令:
? ? sixbox config add channel $(channel name)
如果您想查看Sixbox配置文件中的內(nèi)容,可以使用info命令
? sixbox config info
自定義CWLdb的lib路徑
? ? sixbox config set libPath $(libpath)
■運(yùn)行CWL
run命令。您可以通過(guò)sixbox run -h來(lái)查看參數(shù)等幫助信息。運(yùn)行示例如下:
sixbox run ./soapnuke-filter.cwl ./soapnuke-filter.yaml
如果您沒(méi)有本地CWL流程,可以使用sixbox自帶的demo流程,亦或使用pull命令(有關(guān)pull命令的使用將在下文進(jìn)行詳細(xì)介紹)從sixoclock平臺(tái)獲取相關(guān)流程。
運(yùn)行sixbox demo CWL流程
sixbox run $(which sixbox)/../../test/soapnuke-filter.cwl $(which sixbox)/../../test/soapnuke-filter.yaml
運(yùn)行從**sixoclock軟件倉(cāng)庫(kù)**下載的CWL流程,
sixbox run 6ae767b1-880e-4573-99b5-6cc7914eeae8 $(which sixbox)/../../test/soapnuke-filter.yaml1
運(yùn)行結(jié)果默認(rèn)輸出在當(dāng)前目錄下,也可以通過(guò)--outdir指定輸出目錄:
sixbox run --outdir /home/test ./soapnuke-filter.cwl ./soapnuke-filter.yaml
其中, soapnuke-filter.cwl 為下載自sixoclock軟件倉(cāng)庫(kù)soapnuke-filter軟件主文件。
soapnuke-filter.yaml為用戶配置可視化運(yùn)行參數(shù)的文件。
resource_id為您從**sixoclock軟件倉(cāng)庫(kù)**下載的軟件主文件的標(biāo)識(shí)id,該id用于識(shí)別區(qū)分不同的CWL文件。
您也可以使用--make-template來(lái)生成一個(gè)YAML格式的參數(shù)配置文件,用于手動(dòng)配置您的軟件/流程的參數(shù)。
sixbox run --make-template ./soapnuke-filter.cwl > ./soapnuke-filter.yaml
考慮到您可能不是docker用戶,sixbox提供了--udocker和--singularity兩個(gè)參數(shù)胡,幫助您在系統(tǒng)不支持docker的情況下,運(yùn)行CWL Workflow
sixbox run --udocker ./soapnuke-filter.cwl ./soapnuke-filter.yaml
或者,
sixbox run --singularity ./soapnuke-filter.cwl ./soapnuke-filter.yaml
您或許注意到以上的例子中,所輸入的YAML文件并非一個(gè)必選項(xiàng),這是因?yàn)閟ixbox同時(shí)支持命令行模式配置參數(shù),為您在運(yùn)行CWL Workflow的時(shí)候提供便利。
sixbox?run?6oclock/bwa:v0.1?-mem?test.fastq
最后,
run命令可以根據(jù)CWLdb中的CWL Workflow對(duì)應(yīng)的tag或是resource_id直接運(yùn)行CWLdb中保存的CWL Workflow,如下所示:
sixbox run $(resource_id)
或者,
sixbox run $(tag)
■?從倉(cāng)庫(kù)中獲取CWL
sixbox pull命令讓您可以便捷的從sixoclock軟件倉(cāng)庫(kù)中獲取您需要的CWL流程:
sixbox pull $(pipe_id)
其中,pipe_id為**sixoclock軟件庫(kù)**中每個(gè)軟件的對(duì)應(yīng)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
■?提交流程到倉(cāng)庫(kù)
如果您想將所有的CWL流程放在同一個(gè)文件夾下統(tǒng)一管理(事實(shí)上,我們也建議你這樣做,以便于您使用sixbox進(jìn)行統(tǒng)一的操作)。您可以使用commit命令將CWL流程提交至CWLdb中,示例如下:
sixbox commit ./sixbox-linux/testdata/soapnuke-filter.cwl 666oclock/soapnuke-filter:v1.0
666oclock/soapnuke-filter:v1.0為該CWL流程的tag,用于區(qū)別其他的CWL流程, 其格式為/和:分隔的字符串。我們建議每個(gè)字段的內(nèi)容是$(provider)/$(cwl name):$(cwl version)。
例如示例中,666oclock為CWL流程的創(chuàng)建者,soapnuke-filter為軟件的名稱,v1.0為該CWL流程的版本號(hào)。
提示
組成CWL tag的各字段,支持的字符為數(shù)字、英文字母、_、.以及-組成,且_、.以及-不能為字段的開(kāi)頭或結(jié)尾。
當(dāng)您提交CWL流程后,CWLdb下的metadata目錄和content目錄中會(huì)分別將該CWL流程的元信息和源碼保存下來(lái),并為這個(gè)CWL流程分配一個(gè)唯一的id,以便之后調(diào)用該文件。
此外,如果您所提交的CWL流程的tag已經(jīng)存在于CWLdb中,sixbox將認(rèn)為這兩個(gè)文件屬于相同文件,并詢問(wèn)您是否需要替換,如果您選擇不替換,則本次提交不會(huì)進(jìn)行。
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命令查看相關(guān)信息:
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流程的相關(guān)信息并未發(fā)生改變。如果您選擇替換,原有CWL流程將會(huì)被新提交的文件替換,其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相關(guān)信息,方便您更好的管理CWL Workflow
? sixbox tag 30479859-c02d-4a40-8e7d-92f9011ac9b8 6oclock/bwa:v0.1
其中30479859-c02d-4a40-8e7d-92f9011ac9b8為CWLdb中CWL Workflow對(duì)應(yīng)的resouece_id,6oclock/bwa:v0.1為CWL Workflow新的tag信息。
同時(shí),您也可以通過(guò)輸入原先的tag和新的tag信息,對(duì)CWL Workflow的tag信息進(jìn)行修改
? ? sixbox tag 6oclock/bwa:v0.1 sixoclock/bwa:v0.2
6oclock/bwa:v0.1為原先的tag信息,sixoclock/bwa:v0.2為新的tag信息。
■?刪除倉(cāng)庫(kù)中CWL workflow
通過(guò)sixbox rm命令,您可以刪除CWLdb中的CWL Workflow,其中輸入的參數(shù)可以是CWL Workflow對(duì)應(yīng)的resouece_id或是tag
? sixbox rm 30479859-c02d-4a40-8e7d-92f9011ac9b8
其中30479859-c02d-4a40-8e7d-92f9011ac9b8為CWLdb中CWL Workflow對(duì)應(yīng)的resouece_id.
您也可以通過(guò)如下方式刪除CWLdb中的CWL Workflow
? sixbox rm 6oclock/bwa:v0.1
其中6oclock/bwa:v0.1為CWLdb中需要?jiǎng)h除的CWL Workflow對(duì)應(yīng)的tag
版本更新及其他
如果獲取最新版本的 sixbox 或者更新您的 sixbox 有兩種方法:
1、update 功能幫助您在線更新您的 sixbox;
2、使用 install 命令安裝指定版本的 sixbox。
sixbox update sixbox? #更新sixbox到最新版本sixbox install sixbox=1.1.20210530094243? #安裝1.1.20210530094243版本的sixbox
以上是關(guān)于sixbox的linux版本的詳細(xì)介紹,如果您在使用過(guò)程中有其他問(wèn)題,也歡迎反饋或者查看解決方法info@sixoclock.net。