1

我已经建立了一个 Snakemake 管道,用于对来自我们实验室的浅鸟枪宏基因组学样本进行一些简单的 QC 和分析。

当具有少量数据的样本作为输入传递时,管道中的一些工具会失败或出错——但这有时不能从原始输入数据中得知,作为中间过滤步骤(例如适配器修剪和宿主基因组移除)可以删除不同数量的读取。

理想情况下,我希望能够通过对某些输入规则进行某种检查来处理这些情况,这可以评估输入文件中的读取次数并选择是否继续工作流图的该部分。有没有人成功实施过这样的事情?

非常感谢,-乔恩

4

1 回答 1

0

我不知道基于工作流内部发生的某些计算可能无法完成工作流。要执行的规则是根据最终需要的输出确定的,如果不能生成这个最终输出,就会失败。

一种方法可以是捕获特定的工具故障(try...在一个部分except中构造或在一个run部分中返回代码处理shell)并为相应的规则生成一个虚拟输出文件,并让下游规则“传播”基于一个虚拟文件生成测试将规则的输入识别为这样的虚拟文件。

另一种方法可能是在您的蛇形工作流程之外预处理数据以确定要跳过的输入,然后对通配符组合使用一些过滤,如下所述:https ://stackoverflow.com/a/41185568/1878788 。

于 2016-12-22T06:29:12.487 回答