window下的全能生信分析利器--Docker Desktop初體驗(yàn)--window系統(tǒng)下使用SPAdes進(jìn)行基因組組裝

docker相較于conda做生信分析有很多優(yōu)勢(shì),尤其是在生信流程的搭建,多系統(tǒng)的支持移植性。但Docker學(xué)習(xí)難度有點(diǎn)高,需要花時(shí)間來(lái)學(xué)習(xí)。對(duì)于小白來(lái)說(shuō),初次安裝肯定是很困難的,今天我不講Docker Desktop的安裝,這個(gè)和大家平時(shí)電腦上裝微信的流程是差不多的,當(dāng)然很多童鞋的網(wǎng)速,肯定都受影響,大家多嘗試,自己去尋找解決的辦法,我第一次安裝使用的時(shí)候也搞了半天。后期視頻課程中我會(huì)把需要的資源分享給大家。

下面就以SPAdes為例,看一下Docker在window下的簡(jiǎn)單使用效果,

世上無(wú)難事,只怕有心人。

安裝SPAdes

在軟件上方搜索Spades.出來(lái)很多鏡像image,我們選擇官方的鏡像下載來(lái)使用,因?yàn)樵撶R像為State Public Health Bioinformatics Community

(就是下載量最高的那一個(gè)選擇pull)

安裝成功后就要進(jìn)行run鏡像,我一開(kāi)始也是選擇在Docker Desktop軟件中直接run,但是spades跑起來(lái)過(guò)后自動(dòng)退出,在網(wǎng)絡(luò)上搜索了半天終于找到了原因

退出原因

1、docker容器運(yùn)行必須有一個(gè)前臺(tái)進(jìn)程, 如果沒(méi)有前臺(tái)進(jìn)程執(zhí)行,容器認(rèn)為空閑,就會(huì)自行退出(我并沒(méi)有給Docker desktop 傳入其他參數(shù))
2、容器運(yùn)行的命令如果不是那些一直掛起的命令( 運(yùn)行top,tail、循環(huán)等),就是會(huì)自動(dòng)退出3、這個(gè)是 docker 的機(jī)制問(wèn)題

解決辦法

通過(guò)命令行重新創(chuàng)建容器:你可以通過(guò)命令行(我選擇用power shell )創(chuàng)建并啟動(dòng)一個(gè)新容器,同時(shí)指定命令,以確保它保持運(yùn)行:

bashdocker run --rm -it -v C:\path\to\data:/data staphb/spades /bin/bash

這樣,容器啟動(dòng)后會(huì)進(jìn)入bash shell,而不會(huì)立即退出。這樣我們就可以在Docker Desktop 中查看鏡像當(dāng)前狀態(tài)了

使用SPAdes進(jìn)行組裝

我把雙端測(cè)序文件? 1.R1.fastq.gz和1.R2.fastq.gz? 文件放在了C盤(pán)suv文件夾下,并和鏡像中/data進(jìn)行映射

  • 打開(kāi)命令行終端

  • 在Windows系統(tǒng)中,可以使用 Command PromptWindows Terminal。

  • 運(yùn)行以下命令來(lái)啟動(dòng)容器并執(zhí)行SPAdes命令

    bashdocker run --rm -v C:\path\to\data:/data staphb/spades spades.py 

  • --rm: 容器運(yùn)行完后自動(dòng)刪除它。

  • -v C:\path\to\data:/data: 將你的本地目錄映射到容器內(nèi)的/data目錄,以便SPAdes可以訪問(wèn)你的輸入文件。

  • staphb/spades: 這是你拉取的SPAdes鏡像名稱(chēng)。

  • spades.py -1 /data/sample_1.fastq -2 /data/sample_2.fastq -o /data/output: 這是你要在容器內(nèi)執(zhí)行的SPAdes命令,替換成你的實(shí)際文件路徑。

  • 命令執(zhí)行完畢后,容器會(huì)自動(dòng)退出,同時(shí)結(jié)果會(huì)保存到你本地的 C:\path\to\data\output 目錄下。

    保持容器運(yùn)行(可選)

    如果你希望容器在執(zhí)行完命令后不立即退出,而是保持運(yùn)行(例如為了繼續(xù)操作或檢查結(jié)果),可以在命令末尾添加&& /bin/bash

    bashdocker run --rm -v C:\path\to\data:/data staphb/spades bash -c "sp

    ades.py -1 /data/sample_1.fastq -2 /data/sample_2.fastq -o /data/output && /bin/bash"

    這樣做的結(jié)果是:

  • SPAdes命令執(zhí)行完畢后,容器會(huì)進(jìn)入bash shell,保持運(yùn)行,直到你手動(dòng)輸入 exit 命令。

  • 總結(jié)

    使用 docker run 命令啟動(dòng)容器并執(zhí)行命令是一個(gè)非常常見(jiàn)的操作方式,尤其在你希望在容器內(nèi)快速執(zhí)行某個(gè)任務(wù)時(shí)。如果你只想執(zhí)行一次任務(wù)并讓容器自動(dòng)退出,那么上述方法完全適用。如果你希望保持容器運(yùn)行以便進(jìn)一步操作,也可以通過(guò)添加bash命令來(lái)實(shí)現(xiàn)。

    效果如下圖(太激動(dòng)人心了)

    我們可以在DockerDesktop中看到他的運(yùn)行情況


    下面是最終運(yùn)行結(jié)果在我的suv文件夾下生成contig?文件

    創(chuàng)作不易,麻煩大家關(guān)注??!

    您的關(guān)注是我不斷前進(jìn)的動(dòng)力!?。?/strong>

    ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
    【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
    平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

    相關(guān)閱讀更多精彩內(nèi)容

    友情鏈接更多精彩內(nèi)容