graph LR
CLI_Interface["CLI Interface"]
Command_Dispatcher_Modules["Command Dispatcher Modules"]
Module_Management_Commands["Module Management Commands"]
Pipeline_Management_Commands["Pipeline Management Commands"]
Subworkflow_Management_Commands["Subworkflow Management Commands"]
Component_Command_Base["Component Command Base"]
Utility_Functions["Utility Functions"]
Synchronized_Repository["Synchronized Repository"]
CLI_Interface -- "delegates command handling to" --> Command_Dispatcher_Modules
Command_Dispatcher_Modules -- "dispatches requests to" --> Module_Management_Commands
Command_Dispatcher_Modules -- "dispatches requests to" --> Pipeline_Management_Commands
Command_Dispatcher_Modules -- "dispatches requests to" --> Subworkflow_Management_Commands
Module_Management_Commands -- "inherits from" --> Component_Command_Base
Subworkflow_Management_Commands -- "inherits from" --> Component_Command_Base
Module_Management_Commands -- "interacts with" --> Synchronized_Repository
Pipeline_Management_Commands -- "interacts with" --> Synchronized_Repository
Module_Management_Commands -- "utilizes" --> Utility_Functions
Pipeline_Management_Commands -- "utilizes" --> Utility_Functions
Subworkflow_Management_Commands -- "utilizes" --> Utility_Functions
CLI_Interface -- "utilizes" --> Utility_Functions
click CLI_Interface href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/tools/CLI_Interface.md" "Details"
Abstract Components Overview of the nf-core tool.
CLI Interface [Expand]
This is the entry point of the application, responsible for parsing command-line arguments and dispatching them to the appropriate command handlers. It acts as the presentation layer, translating user input into actionable requests.
Related Classes/Methods:
This component represents the collection of modules responsible for defining and dispatching specific nf-core commands. The CLI Interface uses these modules to map command-line arguments to the appropriate execution logic for modules, pipelines, and subworkflows.
Related Classes/Methods:
nf_core.commands_modulesnf_core.commands_pipelinesnf_core.commands_subworkflowsnf_core.commands_test_datasets
This component encompasses specific command implementations for managing nf-core modules, such as creation, installation, linting, listing, patching, and updating. These command classes inherit from Component Command Base or its specialized subclasses.
Related Classes/Methods:
nf_core.modules.create.ModuleCreate(7:33)nf_core.modules.install.ModuleInstall(3:25)nf_core.modules.lint.ModuleLintnf_core.modules.list.ModuleList(9:18)nf_core.modules.patch.ModulePatch(7:9)nf_core.modules.remove.ModuleRemove(7:9)nf_core.modules.update.ModuleUpdate(3:33)nf_core.modules.bump_versions.ModuleVersionBumper
This component handles specific command implementations for operations related to nf-core pipelines, such as creation, downloading, linting, and schema validation. Unlike module and subworkflow commands, these commands do not directly inherit from Component Command Base.
Related Classes/Methods:
nf_core.pipelines.create.create.PipelineCreatenf_core.pipelines.download.DownloadWorkflow(85:1574)nf_core.pipelines.lint.PipelineLintnf_core.pipelines.schema.PipelineSchema(25:1015)nf_core.pipelines.sync.PipelineSync(40:503)
Similar to module management, this component focuses on specific command implementations for the creation, installation, linting, listing, patching, and updating of nf-core subworkflows. These command classes inherit from Component Command Base or its specialized subclasses.
Related Classes/Methods:
nf_core.subworkflows.create.SubworkflowCreate(7:23)nf_core.subworkflows.install.SubworkflowInstall(3:25)nf_core.subworkflows.lint.SubworkflowLintnf_core.subworkflows.list.SubworkflowList(9:18)nf_core.subworkflows.patch.SubworkflowPatch(7:9)nf_core.subworkflows.remove.SubworkflowRemove(7:9)nf_core.subworkflows.update.SubworkflowUpdate(3:33)
This is a foundational class (ComponentCommand) providing shared logic and utilities specifically for managing nf-core components (modules and subworkflows). It implements common operations and interactions with the repository structure.
Related Classes/Methods:
This component provides a collection of general-purpose utility functions used across various parts of the nf-core tool, such as file I/O, GitHub API interactions, and configuration handling.
Related Classes/Methods:
This component handles the synchronization and management of local copies of remote nf-core repositories (e.g., for modules or pipelines).
Related Classes/Methods: