You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The issue is that subsample.'genome/all-time'.samples.all-time is added by default, so any external config must accept that sample to be part of the final output, or at the least redefine it with custom config (which is what I did above).
This is a config merging issue that technically applies to WNV too, where augur subsample is already used. NW-PaGe/WNV's external config defines a Washington-focused build named wa. The custom name is an unintentional workaround around the issue – wa is not present in the default config, so it does not inherit any build-specific defaults. If NW-PaGe/WNV wants to re-use any of the existing build names from nextstrain/WNV, it would encounter the same config merging issue.
Using a different build name is not a valid workaround for rsv because the workflow is only meant to handle certain build names based on wildcards build_name=genome|G|F and resolution=all-time|6y|3y.
Possible solutions
Options 1-7 were my initial ideas but they aren't great. Option 8 seems to be best so far. Open to any other ideas.
Use the current workaround of re-defining existing samples.
[con] This wouldn't work if there are more default samples than custom samples to be defined.
[con] This merges the existing sample config in, which could be considered a feature but is likely to cause confusing behavior if not overridden.
[con] New or renamed default samples would break the workaround.
Update augur subsample to ignore "empty" samples.
This allows external config to "remove" default samples by overwriting them with null:
samples:
all-time: nullwa: …contextual: …
[con] New or renamed default samples would break the workaround.
Trick Snakemake into removing subsample.genome/all-time.samples.all-time (or even better, all of subsample) for external configs.
I've tried various approaches, but haven't found one that works.
Move Nextstrain-specific defaults out of the default workflow config file.
This was discussed when reworking WNV config, and the decision was to keep them in defaults.
Adjust the workflow to allow custom build names.
This would allow for the same workaround that NW-PaGe/WNV uses.
I haven't tried yet, but my guess is it will complicate the workflow.
Separate augur subsample config from Snakemake config.
This requires additional work to support resolving config paths to workflow analysis directory / defaults directory – necessary for nextstrain run support.
#103 works fine for the automated Nextstrain builds, but it requires unusual workarounds for external users with custom config. Example on NW-PaGe:
rsv/profiles/wadoh/configfile_wadoh.yaml
Lines 23 to 35 in c364eea
The issue is that
subsample.'genome/all-time'.samples.all-timeis added by default, so any external config must accept that sample to be part of the final output, or at the least redefine it with custom config (which is what I did above).This is a config merging issue that technically applies to WNV too, where
augur subsampleis already used. NW-PaGe/WNV's external config defines a Washington-focused build namedwa. The custom name is an unintentional workaround around the issue –wais not present in the default config, so it does not inherit any build-specific defaults. If NW-PaGe/WNV wants to re-use any of the existing build names from nextstrain/WNV, it would encounter the same config merging issue.Using a different build name is not a valid workaround for rsv because the workflow is only meant to handle certain build names based on wildcards
build_name=genome|G|Fandresolution=all-time|6y|3y.Possible solutions
Options 1-7 were my initial ideas but they aren't great. Option 8 seems to be best so far. Open to any other ideas.
Use the current workaround of re-defining existing samples.
Update
augur subsampleto ignore "empty" samples.This allows external config to "remove" default samples by overwriting them with null:
[con] New or renamed default samples would break the workaround.
Trick Snakemake into removing
subsample.genome/all-time.samples.all-time(or even better, all ofsubsample) for external configs.Move Nextstrain-specific defaults out of the default workflow config file.
Adjust the workflow to allow custom build names.
Separate
augur subsampleconfig from Snakemake config.nextstrain runsupport.Ignore all defaults with Snakemake's
--replace-workflow-config.subsamplethat doesn't need to be inherited.Add a
custom_subsampleconfig param to override the defaultsubsampleconfig. (ref)inputs+additional_inputs.Custom workflow config merging public#28