在前面的兩節(jié)內(nèi)容中我們介紹了Nextflow的安裝和流程監(jiān)控平臺Nextflow Tower, 大家如果對軟件安裝還有疑問可以查閱平臺中前面兩節(jié)的內(nèi)容。這里我們以nextflow的一個具體運行腳本來進(jìn)行講解,腳本代碼如下(可以將代碼保存到文件example.nf中):
#!/usr/bin/env nextflow
nextflow.enable.dsl=2
process foo {
output:
path 'foo.txt'
script:
"""
echo 'Hello World’ > foo.txt
"""
}
process bar {
input:
path x
output:
path 'bar.txt'
script:
"""
cat$x > bar.txt
"""
}
workflow {
data = foo()
bar(data)
}
代碼講解:
nextflow.enable.dsl=2 表示我們將使用DSL的擴展版本2,最早開發(fā)版本為DSL 1,DSL 2在語法上更為簡潔,推薦小伙伴們使用DSL 2,估計DSL 1 后面也不會更新了。
代碼中process表示定義流程,在上面的代碼中我們定義了兩個流程:
第一個流程foo是將'HelloWorld’字符串輸出到一個名稱為 foo.txt的文件中,nextflow中的process可以理解為'函數(shù)’,process中包含輸入和輸出,輸入在input中加入要使用的參數(shù),output為輸出的參數(shù)或文件;
第二個流程bar會讀入一個文件,并將文件中的內(nèi)容輸出到'bar.txt’中;
Workflow中定義流程該如何執(zhí)行,你可能會在腳本中寫入N多個不同的process,但是只有在workflow中調(diào)用的process才會被執(zhí)行,本例中我們是執(zhí)行了foo和bar兩個process。
data = foo() 表示data會接收foo() 這個process的output,并將輸出傳遞給bar() 這個process。
程序執(zhí)行,輸入下面的命令:
nextflow run example.nf
運行完成后,會在程序所在的執(zhí)行目錄中生成一個work目錄,并且會存在兩個文件夾,文件夾中就保存了程序執(zhí)行過程中生成的foo.txt和bar.txt文件。
聯(lián)系客服