An example of how one might use a configuration language like CUE to abstract a Nextstrain build configuration across multiple resolutions, segments, or lineages. The attached CUE config defines 20 builds for H3N2 and H1N1pdm lineages, HA and NA segments, and five different resolutions. Resolution- and lineage-specific parameters are defined once as CUE definitions and combined through CUE structs. These 100 lines of CUE (with comments) evaluate to 181 lines of YAML. CUE also allows us to define default values for fields like filter.sequences_per_group
that we can override in specific builds. This approach allows us to create builds that require exceptions to the rules like the h3n2_na_6m
build.
This example builds on the idea of