2017-10-19 60 views
1

我是新手,嘗試使用snakemake(上週左右),以便處理較少的工作流細節,以前我編寫了自己的特定工作流程通過python。snakemake是用於處理輸出中介工作流程的正確工具

我生成了一個小工作流程,其中的步驟之間將使用Illumina PE讀取並運行Kraken對他們。然後,我會解析Kraken輸出的輸出,以檢測最常見的物種(在一組允許範圍內),如果沒有提供物種值(使用snakemake運行-s test.snake --config R1_reads = R2_reads = species = 「」。

我有2個問題。

  1. 什麼給出動態輸出/輸入推薦的方法?

目前我對於這個策略是創建一個臨時文件,其中 包含將檢測到的物種cat {input.species}再變成 其他s地獄命令。這似乎並不高雅,但通過 看文檔,我不能找到一個適當的選擇。我注意到 PersistentDicts會允許我在運行之間傳遞變量:命令 ,但我不確定是否可以使用它將變量加載到shell中: 部分。我還注意到,包裝可以讓我處理它 然而,從我需要這個變量的角度來看,我會包裝 剩餘的工作流程。

  1. 如果我希望事後使用物種運行特定物種的腳本(具有多種物種特定工作流程),snakemake是否是正確的工具?

現在我對如何解決這個問題的印象是有物種的多個工作流程文件,並有開關運行,根據物種調用相關的物種工作流程。

感謝有關這些問題的任何見解。

-Kim

回答

0

您可以將輸出標記爲動態(例如,期望每個物種有一個文件)。然後,Snakemake將確定這些文件生成後的作業的下游DAG。見http://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#dynamic-files

+0

感謝您的答覆,這是有道理的,所以有動力輸出,然後參考物種特定的每個相關的預期輸出。我從中猜測,有時碰到臨時文件是「正確」的進展方式? – Kim

相關問題