我已经设置a Snakemake pipeline对我们实验室的浅霰弹药宏基因组学样本做了一些简单的质量控制和分析。
当数据量较小的样本作为输入传递时,管道中的某些工具将失败或出错 - 但有时无法通过原始输入数据将其作为中间过滤步骤(例如适配器修整和主机)基因组去除)可以删除不同数量的读数。
理想情况下,我希望能够通过对某些输入规则进行某种检查来处理这些情况,这些规则可以评估输入文件中的读取次数,并选择是否继续使用工作流程图的那一部分。有没有人成功实现过这样的东西?
非常感谢, -Jon
答案 0 :(得分:0)
我不知道基于工作流程内发生的某些计算而无法完成工作流程的可能性。要执行的规则是根据最终所需的输出确定的,如果无法生成最终输出,则会发生故障。
一种方法可能是捕获特定工具失败(try
部分中的except
... run
构造或shell
部分中的返回代码处理)并生成相应规则的虚拟输出文件,并具有下游规则"传播"基于测试的虚拟文件生成,该测试将规则的输入识别为这样的虚拟文件。
另一种方法可能是在您的snakemake工作流程之外预处理数据,以确定要跳过哪个输入,然后对通配符组合使用一些过滤,如下所述:https://stackoverflow.com/a/41185568/1878788。