Errors

By default, whenever SPRAS runs into a container error (i.e. an internal algorithm error), the full workflow will fail. However, there are certain designated errors where we don’t want this to be the case (at the moment, these designated errors are only container timeouts, but this may be extended to heuristics in the future).

Due to the following design constraints:

  • Snakemake does not have support for such errors (the closest being --keep-going, which unnecessarily runs failed runs)

  • SPRAS occasionally outputs empty files as genuine output

  • We need to log errors that happen for user knowledge

we opt to use a resource-info.json file, which keeps track of the success/failure status at certain failable parts of the workflow. This file contains whether or not this part of the workflow succeeded, and if it failed, how it failed.