為了滿足大家個性化的需求儿倒,六點了開發(fā)出了Sixbox-linux,也就是sixbox的linux版本呜笑,來實現(xiàn)本地linux機(jī)器夫否、集群等linux服務(wù)器的快速部署和使用。
Sixbox-linux現(xiàn)在已經(jīng)開放使用叫胁,歡迎大家到官網(wǎng)安裝使用凰慈!同時有更好的使用體驗,這里為大家詳細(xì)展示從安裝驼鹅、配置到使用的所有要點微谓。
本文導(dǎo)讀
安裝:下載、?配置文件输钩、?CWLdb (workflow倉庫)
使用:讀寫配置文件豺型、運(yùn)行CWL、從倉庫中獲取CWL流程买乃、查看CWL流程姻氨、提交CWL流程到倉庫、修改tag剪验、刪除倉庫中的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.為了使更改生效,請關(guān)閉然后重新打開終端窗口娶眷。
4.請測試您的安裝似嗤。在終端窗口,運(yùn)行sixbox -h命令届宠。如果已正確安裝双谆,將顯示參數(shù)說明。
至此席揽,Sixbox-linux的安裝和配置順利結(jié)束。
■配置文件
在了解Sixbox詳細(xì)用法之前谓厘,您需要知道Sixbox配置文件的相關(guān)信息幌羞。
Sixbox的配置文件用于Sixbox權(quán)限控制、記錄sixoclock軟件倉庫地址源和CWLdb路徑竟稳,您可以在${HOME}/.sixbox/config.yaml中查看属桦。
一個Sixbox配置文件的示例:
libPath: /root/.sixbox/libchannel: https://www.sixoclock.net/apitoken: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MzU2NzA0MjYsImlhdCI6MTYzNTY2NjgyNiwidWlkIjoiMTBhOGQ2YzUtZWM4MC00Mzg5LThlYTMtZWYyYTgyY2JlN2M5IiwiaXNfcmVmcmVzaCI6ZmFsc2UsInVuYW1lIjoiNjY2b2Nsb2NrIiwicGVybWlzc2lvbnMiOjIzfQ.ru86vr9cB2hlH-Sgf0i93A9D3_rEX2pk8Zvc1GHaZ
Sixbox配置文件中記載了三類信息:
token:記錄您在sixoclock獲取的授權(quán)token。
channel:記錄sixbox從sixoclock倉庫中拉取CWL Workflow的地址他爸。
libPath:記錄了CWLdb的lib路徑聂宾,Sixbox默認(rèn)lib路徑在您安裝Sixbox-linux的根路徑。您也可以通過config中相關(guān)命令自定義該路徑诊笤。
■CWLdb(workflow倉庫)
當(dāng)您在使用Sixbox時系谐,它會為您在本地自動建立一個名為CWLdb的CWL Workflow倉庫,以便您管理讨跟、運(yùn)行纪他、查找CWL Workflow。
CWLdb的路徑默認(rèn)是在Sixbox安裝的目錄下晾匠,但您也可以通過sixbox config set libPath命令自定義該路徑茶袒。
關(guān)于CWLdb的兩點說明:
CWLdb中設(shè)置metadata目錄用于存放CWL Workflow元信息,其主要記錄了CWL Workflow的作者凉馆、名稱薪寓、版本和Sixbox或sixoclock為其自動生成的名為resource_id的唯一標(biāo)識碼。這些信息有助于您區(qū)分澜共、運(yùn)行向叉、管理CWL Workflow。
CWLdb中content目錄下存放了您通過sixbox commit提交的CWL Workflow和您從**sixoclock官方倉庫**中下載的CWL Workflow咳胃。
Sixbox-linux 使用
■讀寫配置文件
sixbox包含多個子命令用于實現(xiàn)不同的功能植康。為了您能夠充分使用sixbox的全部功能,我們建議您先設(shè)置Sixbox的配置文件展懈。
sibox config命令能夠幫助您迅速設(shè)置sixbox的配置文件销睁。您可以通過sixbox config -h來查看config命令的相關(guān)使用說明供璧。下面向您介紹config命令的使用。
如您需要將從**sixoclock**獲取的客戶端登陸授權(quán)token寫入配置文件冻记,可使用如下命令:
? 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命令冗栗。您可以通過sixbox run -h來查看參數(shù)等幫助信息演顾。運(yùn)行示例如下:
sixbox run ./soapnuke-filter.cwl ./soapnuke-filter.yaml
如果您沒有本地CWL流程,可以使用sixbox自帶的demo流程隅居,亦或使用pull命令(有關(guān)pull命令的使用將在下文進(jìn)行詳細(xì)介紹)從sixoclock平臺獲取相關(guān)流程钠至。
運(yùn)行sixbox demo CWL流程
sixbox run $(which sixbox)/../../test/soapnuke-filter.cwl $(which sixbox)/../../test/soapnuke-filter.yaml
運(yùn)行從**sixoclock軟件倉庫**下載的CWL流程,
sixbox run 6ae767b1-880e-4573-99b5-6cc7914eeae8 $(which sixbox)/../../test/soapnuke-filter.yaml1
運(yùn)行結(jié)果默認(rèn)輸出在當(dāng)前目錄下,也可以通過--outdir指定輸出目錄:
sixbox run --outdir /home/test ./soapnuke-filter.cwl ./soapnuke-filter.yaml
其中胎源, soapnuke-filter.cwl 為下載自sixoclock軟件倉庫soapnuke-filter軟件主文件棉钧。
soapnuke-filter.yaml為用戶配置可視化運(yùn)行參數(shù)的文件。
resource_id為您從**sixoclock軟件倉庫**下載的軟件主文件的標(biāo)識id涕蚤,該id用于識別區(qū)分不同的CWL文件宪卿。
您也可以使用--make-template來生成一個YAML格式的參數(shù)配置文件,用于手動配置您的軟件/流程的參數(shù)万栅。
sixbox run --make-template ./soapnuke-filter.cwl > ./soapnuke-filter.yaml
考慮到您可能不是docker用戶佑钾,sixbox提供了--udocker和--singularity兩個參數(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文件并非一個必選項扰她,這是因為sixbox同時支持命令行模式配置參數(shù)邮偎,為您在運(yùn)行CWL Workflow的時候提供便利。
sixbox?run?6oclock/bwa:v0.1?-mem?test.fastq
最后义黎,
run命令可以根據(jù)CWLdb中的CWL Workflow對應(yīng)的tag或是resource_id直接運(yùn)行CWLdb中保存的CWL Workflow禾进,如下所示:
sixbox run $(resource_id)
或者,
sixbox run $(tag)
■?從倉庫中獲取CWL
sixbox pull命令讓您可以便捷的從sixoclock軟件倉庫中獲取您需要的CWL流程:
sixbox pull $(pipe_id)
其中廉涕,pipe_id為**sixoclock軟件庫**中每個軟件的對應(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
■?提交流程到倉庫
如果您想將所有的CWL流程放在同一個文件夾下統(tǒng)一管理(事實上,我們也建議你這樣做层释,以便于您使用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流程, 其格式為/和:分隔的字符串廉白。我們建議每個字段的內(nèi)容是$(provider)/$(cwl name):$(cwl version)个初。
例如示例中,666oclock為CWL流程的創(chuàng)建者猴蹂,soapnuke-filter為軟件的名稱院溺,v1.0為該CWL流程的版本號们镜。
提示
組成CWL tag的各字段彻坛,支持的字符為數(shù)字、英文字母禽额、_聋溜、.以及-組成谆膳,且_、.以及-不能為字段的開頭或結(jié)尾撮躁。
當(dāng)您提交CWL流程后,CWLdb下的metadata目錄和content目錄中會分別將該CWL流程的元信息和源碼保存下來摹量,并為這個CWL流程分配一個唯一的id,以便之后調(diào)用該文件馒胆。
此外,如果您所提交的CWL流程的tag已經(jīng)存在于CWLdb中凝果,sixbox將認(rèn)為這兩個文件屬于相同文件祝迂,并詢問您是否需要替換,如果您選擇不替換器净,則本次提交不會進(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流程將會被新提交的文件替換,其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對應(yīng)的resouece_id权纤,6oclock/bwa:v0.1為CWL Workflow新的tag信息钓简。
同時,您也可以通過輸入原先的tag和新的tag信息汹想,對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信息。
■?刪除倉庫中CWL workflow
通過sixbox rm命令古掏,您可以刪除CWLdb中的CWL Workflow损话,其中輸入的參數(shù)可以是CWL Workflow對應(yīng)的resouece_id或是tag
? sixbox rm 30479859-c02d-4a40-8e7d-92f9011ac9b8
其中30479859-c02d-4a40-8e7d-92f9011ac9b8為CWLdb中CWL Workflow對應(yīng)的resouece_id.
您也可以通過如下方式刪除CWLdb中的CWL Workflow
? sixbox rm 6oclock/bwa:v0.1
其中6oclock/bwa:v0.1為CWLdb中需要刪除的CWL Workflow對應(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ì)介紹,如果您在使用過程中有其他問題豪诲,也歡迎反饋或者查看解決方法info@sixoclock.net顶捷。