Print a better explanation for how to resolve conflicting subsamples
Instead of recommending that users enter an empty subsampling setting when a
conflict occurs, we ask them to rename their conflicting subsampling scheme to
avoid any future conflicts and unexpected behavior.
@@ -287,7 +287,7 @@ def _get_subsampling_settings(wildcards):
# throw an error instead of assuming the user prefers one setting over
# another by default.
if subsampling_settings.get("max_sequences") and subsampling_settings.get("seq_per_group"):
- raise Exception(f"The subsampling scheme '{subsampling_scheme}' for build '{wildcards.build_name}' defines both `max_sequences` and `seq_per_group`, but these arguments are mutually exclusive. This could be due to a default value - add an empty value for the argument you wish to ignore to override the default.")
+ raise Exception(f"The subsampling scheme '{subsampling_scheme}' for build '{wildcards.build_name}' defines both `max_sequences` and `seq_per_group`, but these arguments are mutually exclusive. This could be caused by using the same subsampling scheme name as a default scheme. If so, try renaming your subsampling scheme, '{subsampling_scheme}', to a unique name (e.g., 'custom_{subsampling_scheme}').")
# If users have supplied neither `max_sequences` nor `seq_per_group`, we
# throw an error because the subsampling rule will still group by one or
