In certain situations with lousy input data, Rotary can determine that no contigs pass the coverage filter, causing checkpoint' split_circular_and_linear_contigs' to write no circular or linear contig lists. This, in turn, causes rule combine_circular_and_linear_contigs to fail because the function aggregate_contigs returns an empty input list. This, in turn, causes the command cat | seqtk seq -l 60 > {output} to run, as {input} is empty. This command has infinite run time.
Proposed Solution
Throw a Python exception when no contigs pass the coverage filter.
Problem Description
In certain situations with lousy input data, Rotary can determine that no contigs pass the coverage filter, causing checkpoint' split_circular_and_linear_contigs' to write no circular or linear contig lists. This, in turn, causes rule
combine_circular_and_linear_contigs
to fail because the functionaggregate_contigs
returns an empty input list. This, in turn, causes the commandcat | seqtk seq -l 60 > {output}
to run, as{input}
is empty. This command has infinite run time.Proposed Solution
Throw a Python exception when no contigs pass the coverage filter.