我正在使用snakemake进行某种自动化,并遇到了一个问题,即当调用“ onerror”时确定哪个规则失败。
我尝试遍历规则以确定哪些输出不存在,但是规则的顺序不正确。
这是我在onerror中使用的代码:
#find out which rule failed
failed_rule = None
for rulename in dir(rules):
rule = getattr(rules,rulename)
if hasattr(rule,'output'):
output = getattr(rule,'output')
print ('rule: ',rulename, output)
#check if output file exists
if output and (not os.path.exists(str(output))):
failed_rule = rule
print ('Failed rule is ', rulename)
break
预先感谢