graph LR
CLI_Interface["CLI Interface"]
Component_Lifecycle_Management["Component Lifecycle Management"]
Pipeline_Management_Schema["Pipeline Management & Schema"]
Repository_Sync_Services["Repository & Sync Services"]
Core_Utilities_Configuration["Core Utilities & Configuration"]
Test_Data_Management["Test Data Management"]
CLI_Interface -- "calls" --> Component_Lifecycle_Management
CLI_Interface -- "calls" --> Pipeline_Management_Schema
CLI_Interface -- "calls" --> Test_Data_Management
CLI_Interface -- "utilizes" --> Core_Utilities_Configuration
Component_Lifecycle_Management -- "utilizes" --> Repository_Sync_Services
Component_Lifecycle_Management -- "utilizes" --> Core_Utilities_Configuration
Pipeline_Management_Schema -- "utilizes" --> Repository_Sync_Services
Pipeline_Management_Schema -- "utilizes" --> Core_Utilities_Configuration
Repository_Sync_Services -- "relies on" --> Core_Utilities_Configuration
Test_Data_Management -- "utilizes" --> Core_Utilities_Configuration
click CLI_Interface href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/tools/CLI_Interface.md" "Details"
click Pipeline_Management_Schema href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/tools/Pipeline_Management_Schema.md" "Details"
click Repository_Sync_Services href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/tools/Repository_Sync_Services.md" "Details"
click Core_Utilities_Configuration href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/tools/Core_Utilities_Configuration.md" "Details"
click Test_Data_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/tools/Test_Data_Management.md" "Details"
The tools project, functioning as a CLI Application, SDK/Framework Helper Tool, and Developer Tool, exhibits a modular and layered architecture. The core components are designed to manage Nextflow pipelines and reusable components (modules and subworkflows), with clear separation between the user interface, domain logic, and underlying utility services.
CLI Interface [Expand]
The primary user interaction layer, responsible for parsing command-line arguments and dispatching requests to the appropriate application logic. It acts as the presentation layer, translating user commands into calls to the core functionalities.
Related Classes/Methods:
nf_core.__main__nf_core.commands_modulesnf_core.commands_pipelinesnf_core.commands_subworkflowsnf_core.commands_test_datasets
Manages the full lifecycle of reusable Nextflow components (modules and subworkflows), including creation, installation, updating, removal, listing, information retrieval, patching, version bumping, and linting. It provides a unified interface for managing these workflow building blocks.
Related Classes/Methods:
nf_core.components.components_commandnf_core.components.create.ComponentCreatenf_core.components.install.ComponentInstall(29:348)nf_core.components.update.ComponentUpdate(25:1021)nf_core.components.remove.ComponentRemove(17:188)nf_core.components.list.ComponentList(14:175)nf_core.components.info.ComponentInfo(23:377)nf_core.components.patch.ComponentPatch(16:233)nf_core.components.lint.ComponentLintnf_core.modules.create.ModuleCreate(7:33)nf_core.modules.install.ModuleInstall(3:25)nf_core.modules.lint.ModuleLintnf_core.subworkflows.create.SubworkflowCreate(7:23)nf_core.subworkflows.install.SubworkflowInstall(3:25)nf_core.subworkflows.lint.SubworkflowLintnf_core.modules.bump_versions.ModuleVersionBumper
Pipeline Management & Schema [Expand]
Handles the complete lifecycle of Nextflow pipelines, encompassing creation, version bumping, linting, downloading, parameter file generation, launching, listing, RO-Crate generation, and synchronization. It also includes the definition, validation, building, and documentation of pipeline schemas to ensure parameter adherence.
Related Classes/Methods:
nf_core.pipelines.create.create.PipelineCreatenf_core.pipelines.bump_versionnf_core.pipelines.lint.PipelineLintnf_core.pipelines.download.DownloadWorkflow(85:1574)nf_core.pipelines.params_file.ParamsFileBuilder(73:287)nf_core.pipelines.launch.Launch(23:739)nf_core.pipelines.list.Workflows(75:274)nf_core.pipelines.rocrate.ROCrate(60:363)nf_core.pipelines.sync.PipelineSync(40:503)nf_core.pipelines.create_logo(12:111)nf_core.utils.Pipelinenf_core.pipelines.schema.PipelineSchema(25:1015)nf_core.pipelines.create.utils.CreateConfig(39:89)
Repository & Sync Services [Expand]
Provides core functionalities for interacting with Git repositories, including cloning, checking out branches/commits, and managing local repository states. It also encapsulates the synchronization logic for keeping local repositories up-to-date with remote sources.
Related Classes/Methods:
nf_core.synced_repo.SyncedRepo(59:498)nf_core.modules.modules_repo.ModulesRepo(20:153)nf_core.pipelines.download.WorkflowRepo(1577:1850)
Core Utilities & Configuration [Expand]
A foundational layer offering general-purpose utility functions, including file I/O operations, loading and managing application configurations (YAML/JSON), interacting with the GitHub API, executing external commands, and other common helper functions used across the application.
Related Classes/Methods:
nf_core.utilsnf_core.utils.NFCoreYamlConfignf_core.utils.NFCoreTemplateConfignf_core.utils.NFCoreYamlLintConfignf_core.utils.GitHubAPISession
Test Data Management [Expand]
Facilitates the listing, searching, and potentially downloading of test datasets required for pipeline and component testing. It primarily interacts with remote GitHub repositories to retrieve dataset information and download URLs.
Related Classes/Methods: