A Modular Architecture
2026-02-12 | #architecture #design #modularity
A major goal of Snippy-NG is to be modular and extensible. We want to make it easy to add new features and functionality to Snippy-NG without having to modify the core logic. To achieve this, we have settled on a modular architectural design for Snippy-NG that allows us to easily add new stages, pipelines and subcommands.
Stages
At the core of Snippy-NG is the concept of a “stage”. A stage is a self-contained unit of work that performs a specific task. For example, the PrepareReference stage is responsible for preparing the reference genome for analysis, while the SeqkitCleanLongReads stage is responsible for cleaning long reads using the Seqkit tool. Each stage has its own dependencies and can be run independently of other stages.
