diff --git a/.devcontainer/devops/devcontainer.json b/.devcontainer/devops/devcontainer.json index 05f284f..ad6788a 100755 --- a/.devcontainer/devops/devcontainer.json +++ b/.devcontainer/devops/devcontainer.json @@ -8,8 +8,8 @@ } }, "forwardPorts": [3000], - "onCreateCommand": "bash .devcontainer/onCreateCommand.sh", - "updateContentCommand": "bash .devcontainer/updateContentCommand.sh", + "onCreateCommand": "bash .devcontainer/devops/onCreateCommand.sh", + "updateContentCommand": "bash .devcontainer/devops/updateContentCommand.sh", "postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}", "containerEnv": { "WORKSPACE": "${containerWorkspaceFolder}" diff --git a/.devcontainer/prototyping/devcontainer.json b/.devcontainer/prototyping/devcontainer.json index 4af2a78..5175e09 100755 --- a/.devcontainer/prototyping/devcontainer.json +++ b/.devcontainer/prototyping/devcontainer.json @@ -7,8 +7,8 @@ } }, "forwardPorts": [3000], - "onCreateCommand": "bash .devcontainer/onCreateCommand.sh", - "updateContentCommand": "bash .devcontainer/updateContentCommand.sh", + "onCreateCommand": "bash .devcontainer/prototyping/onCreateCommand.sh", + "updateContentCommand": "bash .devcontainer/prototyping/updateContentCommand.sh", "postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}", "containerEnv": { "WORKSPACE": "${containerWorkspaceFolder}" diff --git a/README.md b/README.md index 1bfc030..bbe87a7 100644 --- a/README.md +++ b/README.md @@ -11,24 +11,24 @@ [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) ![Checks](https://github.com/scilus/nf-neuro/workflows/Merge%20to%20main%20checks/badge.svg) -Welcome to the `nf-neuro` project ! A __Nextflow__ modules and workflows repository for neuroimaging +Welcome to the `nf-neuro` project ! A **Nextflow** modules and workflows repository for neuroimaging maintained by the [SCIL team](https://scil-documentation.readthedocs.io/en/latest/). The primary focus of the library is to provide pre-built processes and processing sequences for -__neuroimaging__, optimized for _Nextflow DSL2_, based on open-source +**neuroimaging**, optimized for _Nextflow DSL2_, based on open-source technologies and made easily available to pipeline's developers through the `nf-core` framework. # WHY ? `nf-neuro` -__Let's say you develop a pipeline for neuroimaging__. You want to make it the more _efficient,_ +**Let's say you develop a pipeline for neuroimaging**. You want to make it the more _efficient,_ _reliable, reproducible_ and also be able to _evaluate it_ and _control the quality_ of its outputs. -That's what `nf-neuro` provides to you, __all in one repository__, hosting __all dependencies__ you +That's what `nf-neuro` provides to you, **all in one repository**, hosting **all dependencies** you need to start developing and analyzing. The only thing we ask of you is to develop in `Nextflow DSL2`. We use principle and standards closely aligned with [nf-core](), but we'll make you adapt to them slowly as you go (we still haven't finished complying to all of them ourselves). Using `nf-neuro` helps accelerate -development in __neuroimaging__ and produces better research outcomes for all ! +development in **neuroimaging** and produces better research outcomes for all ! --- @@ -185,6 +185,7 @@ DENOSING_NLMEANS( input ) > [!WARNING] > There are some exceptions here, due to limitations in current `nf-core` tools and standards. +> > 1. some inputs could be associated to different channels. It's almost never the case, but it happens. > We are working hard at changing the behavior of those modules, and at improving the metadata to > help you better. For now, please refer to their implementation in the `modules/nf-neuro/` @@ -201,7 +202,8 @@ DENOISING_NLMEANS.out.versions.first().view() // [ "versions.yml" ] > [!WARNING] > There are some exceptions here, due to limitations in current `nf-core` tools and standards. -> 1. `meta` output __is not a channel__ but accompanies all files, produced by other channels. +> +> 1. `meta` output **is not a channel** but accompanies all files, produced by other channels. > 2. `versions` is a channel, but its output is not accompanied by `meta` > 3. Some other outputs are not accompanied by `meta` also. We are currently improving the metadata > files to make it apparent. For now, please refer to their implementation in the `modules/nf-neuro/` @@ -244,7 +246,7 @@ PREPROC_T1.out.versions.first().view() // [ "versions.yml" ] ## Porting prototypes to `nf-` ready pipelines -__SECTION TO COME__ +**SECTION TO COME** # Developing within `nf-neuro` @@ -362,7 +364,7 @@ The tool can be omitted to run tests for all modules in a category. # Installing Prettier and editorconfig -To install __Prettier__ and __editorconfig__ for the project, you need to have `node` and `npm` installed on your system to at least version 14. On Ubuntu, you can do it using snap : +To install **Prettier** and **editorconfig** for the project, you need to have `node` and `npm` installed on your system to at least version 14. On Ubuntu, you can do it using snap : ```bash sudo snap install node --classic diff --git a/docs/MODULE.md b/docs/MODULE.md index 03f89ac..a903a1f 100755 --- a/docs/MODULE.md +++ b/docs/MODULE.md @@ -29,11 +29,11 @@ nf-core modules create You will be prompted several times to configure the new module correctly. Refer to the following to ensure configuration abides with `nf-neuro` : -- __Name of tool/subtool__ : `category/tool` of the module you plan creating (e.g. denoising/nlmeans). -- __Bioconda package__ : select `no`. -- __Github author__ : use your Github handle, or `@scilus` if you prefer not being identified through nf-neuro. -- __Resource label__ : select `process_single` for now, for any tool (multiprocessing and acceleration will be delt with later). -- __Meta map__ : select `yes`. +- **Name of tool/subtool** : `category/tool` of the module you plan creating (e.g. denoising/nlmeans). +- **Bioconda package** : select `no`. +- **Github author** : use your Github handle, or `@scilus` if you prefer not being identified through nf-neuro. +- **Resource label** : select `process_single` for now, for any tool (multiprocessing and acceleration will be delt with later). +- **Meta map** : select `yes`. Alternatively, you can use the following command to supply nearly all information : @@ -41,7 +41,7 @@ Alternatively, you can use the following command to supply nearly all informatio nf-core modules create --author @scilus --label process_single --meta / ``` -You will still have to interact with the __bioconda__ prompt, still select `no`. +You will still have to interact with the **bioconda** prompt, still select `no`. > [!NOTE] > Once used to the conventions, adding `--empty-template` to the command will disable @@ -361,7 +361,7 @@ Available runner classes that superseed `default` : | scilus-nf-neuro-bigmem-runners | | > [!IMPORTANT] -> Specialized runners are limited !!! They are allocated for hungry processes, such as __AI/ML__ models and __large dataset studies__, don't abuse them. _The more they are requested for, the longer PR take to merge_, so don't ask for them for nothing, meaning be smart in designing your modules ! __PRs deemed not needing them will be automatically closed.__ +> Specialized runners are limited !!! They are allocated for hungry processes, such as **AI/ML** models and **large dataset studies**, don't abuse them. _The more they are requested for, the longer PR take to merge_, so don't ask for them for nothing, meaning be smart in designing your modules ! **PRs deemed not needing them will be automatically closed.** ## Lint your code @@ -419,7 +419,7 @@ process { } ``` -Doing so will affect __ALL__ processes. To scope to a specific process, use the +Doing so will affect **ALL** processes. To scope to a specific process, use the [process selectors](https://www.nextflow.io/docs/latest/config.html#process-selectors) (`withName:` or `withLabel:`) : @@ -443,12 +443,12 @@ process { ``` > [!IMPORTANT] -> Modules inherit __selectors__. Thus, a module renamed at import (`import {A as B}`) +> Modules inherit **selectors**. Thus, a module renamed at import (`import {A as B}`) > will be affected both by the selection `withName: "A"` and `withName: "B"`. However, > parameters defined by `B` will have precedence on those define in `A`. > [!IMPORTANT] -> The same stands for __selectors__ defined on multiple levels, implicit (`withName: WORKFLOW_X*`) +> The same stands for **selectors** defined on multiple levels, implicit (`withName: WORKFLOW_X*`) > or explicit (`withName: WORKFLOW_Y:B`). # Test data infrastructure diff --git a/docs/SUBWORKFLOWS.md b/docs/SUBWORKFLOWS.md index 9d6bf90..94abb35 100644 --- a/docs/SUBWORKFLOWS.md +++ b/docs/SUBWORKFLOWS.md @@ -38,7 +38,7 @@ The command will generate a new subworkflow template in the `./subworkflows/nf-n You can't select an empty template when you generate a new subworkflow, so the template is based on nf-core. You will need to replace some of their sections for your use case: - Remove the different comment lines. -- Include your modules into your subworkflows (a subworkflow should include at least __two__ modules). Remove the modules `{ SAMTOOLS_SORT}` and `{ SAMTOOLS_INDEX }` then includes yours with the good pathway: +- Include your modules into your subworkflows (a subworkflow should include at least **two** modules). Remove the modules `{ SAMTOOLS_SORT}` and `{ SAMTOOLS_INDEX }` then includes yours with the good pathway: ``` include { } from '../../../modules/nf-neuro///main'