Skip to content

Latest commit

 

History

History
69 lines (43 loc) · 5.58 KB

File metadata and controls

69 lines (43 loc) · 5.58 KB
graph LR
    CLI["CLI"]
    API_Layer["API Layer"]
    Configuration_Management["Configuration Management"]
    Profiles_Management["Profiles Management"]
    CLI -- "translates input for" --> Configuration_Management
    CLI -- "loads profiles from" --> Profiles_Management
    API_Layer -- "configures workflow via" --> Configuration_Management
    API_Layer -- "initiates workflow execution in" --> Workflow_Engine
    Profiles_Management -- "updates" --> Configuration_Management
    Configuration_Management -- "provides settings to" --> Workflow_Engine
    Configuration_Management -- "provides settings to" --> Execution_Layer
Loading

CodeBoardingDemoContact

Details

One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose.

CLI

The CLI component is the primary entry point for users to interact with Snakemake via the command line. It is responsible for parsing and validating command-line arguments, translating them into structured configurations, and orchestrating the initial setup and execution flow of the workflow. It acts as the "command" part of the CQRS pattern, interpreting user directives.

Related Classes/Methods:

API Layer

The API Layer offers a comprehensive programmatic interface for defining, configuring, and executing Snakemake workflows. It acts as a Facade Pattern for the entire system, abstracting the complex internal logic of the workflow engine and configuration management. This layer enables other tools or scripts to integrate with and control Snakemake programmatically, serving as the "query" part of the CQRS pattern.

Related Classes/Methods:

Configuration Management

This component centralizes the definition, validation, and management of all configurable parameters within Snakemake. It encompasses various settings related to workflow execution, resource allocation, deployment, and data storage. It ensures that all configurations are properly structured and validated, providing a single, consistent source of truth for workflow behavior. Key classes like SettingsBase and its derivatives (ConfigSettings, DAGSettings, DeploymentSettings, ExecutionSettings, ResourceSettings, StorageSettings, WorkflowSettings) are integral here.

Related Classes/Methods:

Profiles Management

The Profiles Management component handles the loading and application of predefined execution profiles. These profiles are collections of configurations tailored for specific computational environments (e.g., local machines, HPC clusters, cloud platforms). It simplifies complex setup procedures for users by allowing them to switch between different execution contexts with ease.

Related Classes/Methods: