WDL 基礎結構(入門)

2021-10-02 16:50:45 字數 2556 閱讀 5411

工作流描述語言(wdl)是指定資料處理與人類可讀且可寫的工作流的語法的方式。wdl使定義複雜的分析任務,在工作流中將它們鏈結在一起並使其執行並行化變得很簡單。該語言使常見的模式易於表達,同時也允許不常見或複雜的行為。並努力實現不僅在執行平台之間,而且在不同型別的使用者之間的可移植性。無論是分析師,程式設計師,生產系統的操作員還是任何其他型別的使用者,wdl都應易於訪問和理解。

讓我們看看核心元件是如何在乙個最小的wdl指令碼中構造的,該指令碼描述了workflowmyworkflowname和兩個taskstask_atask_b(名稱可以是您想要的任何內容,而不必包括「任務」或「工作流」)。

構成wdl指令碼核心結構的5個基本元件:workflow,task,call,command, 和output

在頂層,我們定義了乙個「工作流」(workflow),在這個工作流中我們對一組「任務」(task)進行「呼叫」(call)。請注意,「任務」是在「工作流」塊外部定義的,而「呼叫」語句是在「工作流」塊內部定義的。

「工作流」塊和「任務」定義在指令碼中的排列順序並不重要。呼叫語句的順序也不重要,我們將在後面看到。

call元件在工作流主體中用於指定應執行特定任務。以最簡單的形式,呼叫只需要乙個任務名。

或者,我們可以新增乙個**塊來指定任務的輸入變數。我們還可以修改call語句以呼叫別名下的任務,這允許相同的task在同乙個工作流中使用不同的引數多次執行。這使得重用**變得非常容易;在快速啟動指南的管道選項部分詳細說明了這一工作原理。

請注意,呼叫語句的執行順序並不取決於指令碼的出現順序;相反,它是根據任務呼叫之間的依賴關係圖確定的。這意味著程式通過評估它們的哪些輸入是其他任務呼叫的輸出來推斷應該執行什麼順序任務呼叫。「管道選項」部分也對此進行了詳細說明。

例子:

# 呼叫task 

call my_task

# 呼叫task,使用變數

call my_task

# 呼叫task,使用別名、變數

call my_task as task_alias

task元件是wdl指令碼的頂級元件。它包含「做某事」所需的所有資訊,這些資訊以command輸入檔案和引數的定義為伴,並在output元件中明確標識其輸出 。它也可以給出使用所述附加的(可選的)屬性runtimemeta以及parameter_meta元件。

workflow命令內部「呼叫」任務 ,這是導致它們在執行指令碼時被執行的原因。同樣 task 可以在同乙個工作流中使用不同的引數多次執行,這使得重用**變得非常容易。在「管道選項」部分中詳細說明了它的實際工作方式。

例如:

task my_task 

output

}

workflow元件是wdl指令碼的必需頂級元件。它包含呼叫「任務」(task)元件的「呼叫」(call)語句,以及工作流級別的輸入定義。

通過call和其他語句將任務鏈結在一起有多種選擇 。這些在「管道選項」文件中都有詳細說明。

workflow myworkflowname

如果我們看看裡面task定義,我們找到它的核心元件:command將被執行,這可以是在終端shell中執行的任何命令列,以及output明確標識命令的哪一部分構成其輸出的定義。

「command 」元件是「task」的必需屬性。command塊指定要使用佔位符執行的文字命令列(基本上,可以在終端shell中執行的任何命令)。$)用於需要填充的命令列中的可變部分。注意,所有變數佔位符都必須在task輸入定義。

例如:

command

\ output=

$.txt

}

output 元件是「task」的必需屬性。command用於流量控制。這裡確定的輸出將用於構建工作流圖,因此必須包括所有用作工作流中其他任務的輸入的輸出。

wdl接受的所有型別的變數都可以包含在此處。輸出定義必須包括乙個顯式的型別宣告。

例:

output .txt"

}

Linux基礎入門 目錄結構

在windows下,系統對硬碟的管理一般是將整個硬碟劃分為c d e f 等分割槽,每個分割槽基本都可以存放自己想要存放的檔案。而linux系統則不同,它是將整個硬碟統一管理,整個硬碟就是乙個根目錄 再建立一些功能各異的目錄,從而進行管理。home 簡稱 家目錄 或宿主目錄,使用者主目錄 主要存放一...

C 基礎入門 08結構體

結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別 語法 struct 結構體名 通過結構體建立變數的方式有三種 示例 結構體定義 struct student stu3 結構體變數建立方式3 int main cout 姓名 stu2.name 年齡 stu2.age 分數 stu2....

C 基礎入門 8 結構體

結構體屬於使用者自定義的資料型別,允許使用者儲存不同的資料型別 語法 struct 結構體名 通過結構體建立變數的方式有三種 示例 結構體定義 struct student stu3 結構體變數建立方式3 int main cout 姓名 stu2.name 年齡 stu2.age 分數 stu2....