Nextflow|input channels 含有重複辨識碼會引發資料串擾
先前曾介紹如何透過辨識碼來避免不同樣本的分析資料在平行運算時彼此串擾。
當 workflow 涉及 output 合流的狀況時,要把所有資料整合在同一個 input channel 並且共享唯一的辨識碼。
1 | val(id), val(data_1), val(data_2) |
分開寫的話很可能會發生串擾。首先 process 釋出資料的順序取決於完成時間,沒辦法保證來自不同 channels 的 data_1 和 data_2 同屬一個樣本。其次,前面的辨識碼會被後面的辨識碼覆蓋,導致辨識碼與資料不相符。
1 | val(id), val(data_1) |
整合 output channels 的設計其實很常見,例如合併多組分析的統計表,我剛寫 Nextflow 時也常踩這個坑,所以覺得值得寫一篇短文說明問題的起因。