介紹snakemake

一、從snakemake官網入手

Snakemake是一個基於Python的工作流管理系統,用於構建可重現、可維護、可擴展的數據分析工作流。它可以自動處理輸入、輸出和參數依賴,可以輕鬆地將重複的工作流轉化為易於維護的代碼,同時支持集群作業。具有極高的易用和可擴展性,可讓研究人員解放大量時間,從而專註於實際的分析。

Snakemake的安裝非常簡單,可以使用pip install snakemake來安裝。使用前需要確保有相應的Python環境。可以通過’conda install -c bioconda snakemake’也可以安裝,同時需要安裝必要的工具,如pandas和numpy來數據分析。

pip install snakemake
conda install -c bioconda snakemake

二、snakemake star_input_str

輸入文件特殊性是Snakemake鮮有匹敵的優勢之一。例如,需要掃描目錄中的所有文件,並將它們作為輸入,通常使用shell腳本或awk命令進行處理。但是,在Snakemake中,您可以使用「 *」通配符來代替目錄名稱的任何部分:

rule shell_cmd:
    input:
        "data/control_{replicate}-input.txt",
        "data/mutant_{replicate}-input.txt"
    output:
        "results/{replicate}-output.txt"
    shell:
        "cat {input} | wc -l > {output}"

在這個例子中,它會將包含「 data/control_」和「 data/mutant_」字符串的文件作為輸入。它還使用replicate通配符來指定通配符的值。 Snakemake會自動搜索數據目錄並使用通配符將所有匹配的輸入文件傳遞到樣式表達式中的規則中。

三、snakemake是什麼

可以總結一下,snakemake是一個工作流競賽管理器,可以方便地將重要的流程自動化以及部署到實時環境中。

Snakemake方法的一大優勢是它能夠幫助編程工程師和數據科學家大大減少流程開發的時間和勞動力。它提供了一個簡單而且能夠擴展的編程語言,專業地應用於執行生成高質量數據分析流程所需的各種任務。Snakemake還包括了高質量的工具鏈——包括Python依賴性——以及對非常大的數據分析工作流的支持。

四、snakemake中文文檔

Snakemake的中文文檔已經很完整了,可以在Snakemake的官網直接找到文檔,同時也有相關教程幫助用戶更好的使用Snakemake。

https://snakemake.readthedocs.io/en/stable/

五、snakemaker

Snakemaker是一個與Snakemake關聯的軟件,它是一個基於Web的工作流編寫和執行系統,不需要在本地安裝Snakemake或者了解Snakemake的用法和複雜性。它讓數據科學家和研究人員避免了手動操作的麻煩,可以讓他們減少複雜的數據分析工作流的開發時間。

六、snakemake wildcards

通配符是為構建流程而創建的專屬語言,通配符是streamline工作流,並實現並發和縮放的重要部分。在Snakemake中,通配符表示為「{name}」形式的字符串。通過這種方式,在Snakemake中創建的規則可以自動推導規則被佔據的文件的名稱。通配符也使輸入和輸出文件依賴關係更加清晰明了。 典型的流程工作流是將數據從輸入文件中提取出來,並將其轉換、標準化並生成圖形。在此過程中,對於每個過程,我們需要引用來自其他文件或由其他過程生成的文件。這種輸入和輸出數據的依賴關係可以通過可編程表達式進行編碼。

rule all:
    input:
        "big.output.txt"
        
rule copy:
    input:
        "input.txt"
    output:
        "output.txt"
    shell:
        "cp {input} {output}"
        
rule transform:
    input:
        "output.txt"
    output:
        "transformed.output.txt"
    shell:
        "my-program {input} {output}"
        
rule plot:
    input:
        "transformed.output.txt"
    output:
        "plot.png"
    shell:
        "my-plot-program {input} > {output}"

在此例中,通過all規則以及相應輸入和輸出文件的聲明,說明了所有規則的結束目標。copy規則採用輸入文件打印輸出文件。因此,對於所有實際文件實現在一個集中位置的目標copy規則具有特殊的指定標記:all。規則transform採用copy.rule的輸出文件,而生成新文件transformed。output。最後,plot規則採用transform-rule輸出的文件transformed.output,並輸出新文件plot. png。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/195649.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 20:36
下一篇 2024-12-02 20:36

發表回復

登錄後才能評論