We've already discussed Workflows and Workflow Versions - but there's one more layer to consider: parameterization.
There are a few patterns of parameterization frequently used in development, each with their own recommended verification strategies:
Type | Examples | Strategy |
Non-analytical parameters | Performance tuning, thread settings | Auto-verify consistency within and between multiple thread settings with each new version |
Parameter-gated analytical features | Whether to use Indel Realignment | Auto-verify against tiered/segmented specifications Configure watches and alerts on metrics Exploratory analysis |
Parameter optimization & threshold-setting | Lowering quality filter enough to improve recall but not harm precision | Un-thresholded execution with post-analysis; ROC/performance curves.
Advanced threshold-setting and evaluation features will be discussed in another post. |
Of course, these parameters generally are applied to individual steps (components) within a workflow. These are captured as Component Parameters and can be applied to different Component Versions and in different combinations in different workflows.
Single-component workflows have the option of auto-generating new workflow versions with the creation of new component parameters.