From 6f7d0d16930598500f4a3a3014ab8c3bb740ed56 Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Fri, 5 Apr 2024 16:42:47 +0200 Subject: [PATCH 1/4] Rip out the docs to put in the website repo --- README.md | 1227 +---------------- docs/images/nf-core-bump-version.svg | 187 --- docs/images/nf-core-create-logo.svg | 107 -- docs/images/nf-core-create.svg | 162 --- docs/images/nf-core-download-tree.svg | 190 --- docs/images/nf-core-download.svg | 139 -- docs/images/nf-core-launch-rnaseq.svg | 120 -- docs/images/nf-core-licences.svg | 107 -- docs/images/nf-core-lint.svg | 208 --- docs/images/nf-core-list-rna.svg | 172 --- docs/images/nf-core-list-stars.svg | 141 -- docs/images/nf-core-list.svg | 145 -- docs/images/nf-core-logo.png | Bin 17930 -> 0 bytes docs/images/nf-core-modules-bump-version.svg | 144 -- docs/images/nf-core-modules-create.svg | 123 -- docs/images/nf-core-modules-info.svg | 240 ---- docs/images/nf-core-modules-install.svg | 126 -- docs/images/nf-core-modules-lint.svg | 114 -- docs/images/nf-core-modules-list-local.svg | 155 --- docs/images/nf-core-modules-list-remote.svg | 169 --- docs/images/nf-core-modules-patch.svg | 193 --- docs/images/nf-core-modules-remove.svg | 110 -- docs/images/nf-core-modules-test.svg | 110 -- docs/images/nf-core-modules-update.svg | 122 -- docs/images/nf-core-schema-build.svg | 119 -- docs/images/nf-core-schema-lint.svg | 114 -- docs/images/nf-core-schema-validate.svg | 118 -- docs/images/nf-core-subworkflows-create.svg | 143 -- docs/images/nf-core-subworkflows-info.svg | 172 --- docs/images/nf-core-subworkflows-install.svg | 126 -- docs/images/nf-core-subworkflows-lint.svg | 341 ----- .../nf-core-subworkflows-list-local.svg | 168 --- .../nf-core-subworkflows-list-remote.svg | 169 --- docs/images/nf-core-subworkflows-remove.svg | 158 --- docs/images/nf-core-subworkflows-test.svg | 110 -- docs/images/nf-core-subworkflows-update.svg | 126 -- docs/images/nf-core-sync.svg | 145 -- docs/images/nfcore-tools_logo_dark.png | Bin 64937 -> 0 bytes docs/images/nfcore-tools_logo_light.png | Bin 64856 -> 0 bytes 39 files changed, 9 insertions(+), 6511 deletions(-) delete mode 100644 docs/images/nf-core-bump-version.svg delete mode 100644 docs/images/nf-core-create-logo.svg delete mode 100644 docs/images/nf-core-create.svg delete mode 100644 docs/images/nf-core-download-tree.svg delete mode 100644 docs/images/nf-core-download.svg delete mode 100644 docs/images/nf-core-launch-rnaseq.svg delete mode 100644 docs/images/nf-core-licences.svg delete mode 100644 docs/images/nf-core-lint.svg delete mode 100644 docs/images/nf-core-list-rna.svg delete mode 100644 docs/images/nf-core-list-stars.svg delete mode 100644 docs/images/nf-core-list.svg delete mode 100644 docs/images/nf-core-logo.png delete mode 100644 docs/images/nf-core-modules-bump-version.svg delete mode 100644 docs/images/nf-core-modules-create.svg delete mode 100644 docs/images/nf-core-modules-info.svg delete mode 100644 docs/images/nf-core-modules-install.svg delete mode 100644 docs/images/nf-core-modules-lint.svg delete mode 100644 docs/images/nf-core-modules-list-local.svg delete mode 100644 docs/images/nf-core-modules-list-remote.svg delete mode 100644 docs/images/nf-core-modules-patch.svg delete mode 100644 docs/images/nf-core-modules-remove.svg delete mode 100644 docs/images/nf-core-modules-test.svg delete mode 100644 docs/images/nf-core-modules-update.svg delete mode 100644 docs/images/nf-core-schema-build.svg delete mode 100644 docs/images/nf-core-schema-lint.svg delete mode 100644 docs/images/nf-core-schema-validate.svg delete mode 100644 docs/images/nf-core-subworkflows-create.svg delete mode 100644 docs/images/nf-core-subworkflows-info.svg delete mode 100644 docs/images/nf-core-subworkflows-install.svg delete mode 100644 docs/images/nf-core-subworkflows-lint.svg delete mode 100644 docs/images/nf-core-subworkflows-list-local.svg delete mode 100644 docs/images/nf-core-subworkflows-list-remote.svg delete mode 100644 docs/images/nf-core-subworkflows-remove.svg delete mode 100644 docs/images/nf-core-subworkflows-test.svg delete mode 100644 docs/images/nf-core-subworkflows-update.svg delete mode 100644 docs/images/nf-core-sync.svg delete mode 100644 docs/images/nfcore-tools_logo_dark.png delete mode 100644 docs/images/nfcore-tools_logo_light.png diff --git a/README.md b/README.md index a5e6799861..4ed5e63734 100644 --- a/README.md +++ b/README.md @@ -16,64 +16,17 @@ A python package with helper tools for the nf-core community. -> **Read this documentation on the nf-core website: [https://nf-co.re/tools](https://nf-co.re/tools)** - -## Table of contents - -- [`nf-core` tools installation](#installation) -- [`nf-core` tools update](#update-tools) -- [`nf-core list` - List available pipelines](#listing-pipelines) -- [`nf-core launch` - Run a pipeline with interactive parameter prompts](#launch-a-pipeline) -- [`nf-core create-params-file` - Create a parameter file](#create-a-parameter-file) -- [`nf-core download` - Download a pipeline for offline use](#downloading-pipelines-for-offline-use) -- [`nf-core licences` - List software licences in a pipeline](#pipeline-software-licences) -- [`nf-core create` - Create a new pipeline with the nf-core template](#creating-a-new-pipeline) -- [`nf-core lint` - Check pipeline code against nf-core guidelines](#linting-a-workflow) -- [`nf-core schema` - Work with pipeline schema files](#pipeline-schema) -- [`nf-core bump-version` - Update nf-core pipeline version number](#bumping-a-pipeline-version-number) -- [`nf-core sync` - Synchronise pipeline TEMPLATE branches](#sync-a-pipeline-with-the-template) -- [`nf-core create-logo` - Create an nf-core pipeline logo](#create-an-nf-core-pipeline-logo) -- [`nf-core tui` - Explore the nf-core command line graphically](#tools-cli-tui) -- [`nf-core modules` - commands for dealing with DSL2 modules](#modules) - - - [`modules list` - List available modules](#list-modules) - - [`modules list remote` - List remote modules](#list-remote-modules) - - [`modules list local` - List installed modules](#list-installed-modules) - - [`modules info` - Show information about a module](#show-information-about-a-module) - - [`modules install` - Install modules in a pipeline](#install-modules-in-a-pipeline) - - [`modules update` - Update modules in a pipeline](#update-modules-in-a-pipeline) - - [`modules remove` - Remove a module from a pipeline](#remove-a-module-from-a-pipeline) - - [`modules patch` - Create a patch file for a module](#create-a-patch-file-for-a-module) - - [`modules create` - Create a module from the template](#create-a-new-module) - - [`modules lint` - Check a module against nf-core guidelines](#check-a-module-against-nf-core-guidelines) - - [`modules test` - Run the tests for a module](#run-the-tests-for-a-module-using-pytest) - - [`modules bump-versions` - Bump software versions of modules](#bump-bioconda-and-container-versions-of-modules-in) - -- [`nf-core subworkflows` - commands for dealing with subworkflows](#subworkflows) - - [`subworkflows list` - List available subworkflows](#list-subworkflows) - - [`subworkflows list remote` - List remote subworkflows](#list-remote-subworkflows) - - [`subworkflows list local` - List installed subworkflows](#list-installed-subworkflows) - - [`subworkflows info` - Show information about a subworkflow](#show-information-about-a-subworkflow) - - [`subworkflows install` - Install subworkflows in a pipeline](#install-subworkflows-in-a-pipeline) - - [`subworkflows update` - Update subworkflows in a pipeline](#update-subworkflows-in-a-pipeline) - - [`subworkflows remove` - Remove a subworkflow from a pipeline](#remove-a-subworkflow-from-a-pipeline) - - [`subworkflows create` - Create a subworkflow from the template](#create-a-new-subworkflow) - - [`subworkflows lint` - Check a subworkflow against nf-core guidelines](#check-a-subworkflow-against-nf-core-guidelines) - - [`subworkflows test` - Run the tests for a subworkflow](#run-the-tests-for-a-subworkflow-using-pytest) -- [Citation](#citation) - The nf-core tools package is written in Python and can be imported and used within other packages. For documentation of the internal Python functions, please refer to the [Tools Python API docs](https://nf-co.re/tools/docs/). ## Installation -### Bioconda +For full installation instructions, please see the [nf-core documentation](https://nf-co.re/docs/usage/tools). +Below is a quick-start for those who know what they're doing: -You can install `nf-core/tools` from [bioconda](https://bioconda.github.io/recipes/nf-core/README.html). +### Bioconda -First, install conda and configure the channels to use bioconda -(see the [bioconda documentation](https://bioconda.github.io/index.html#usage)). -Then, just run the conda installation command: +Install [from Bioconda](https://bioconda.github.io/recipes/nf-core/README.html): ```bash conda install nf-core @@ -88,1191 +41,29 @@ conda activate nf-core ### Python Package Index -`nf-core/tools` can also be installed from [PyPI](https://pypi.python.org/pypi/nf-core/) using pip as follows: +Install [from PyPI](https://pypi.python.org/pypi/nf-core/): ```bash pip install nf-core ``` -### Docker image - -There is a docker image that you can use to run `nf-core/tools` that has all of the requirements packaged (including Nextflow) and so should work out of the box. It is called [`nfcore/tools`](https://hub.docker.com/r/nfcore/tools) _**(NB: no hyphen!)**_ - -You can use this container on the command line as follows: - -```bash -docker run -itv `pwd`:`pwd` -w `pwd` -u $(id -u):$(id -g) nfcore/tools -``` - -- `-i` and `-t` are needed for the interactive cli prompts to work (this tells Docker to use a pseudo-tty with stdin attached) -- The `-v` argument tells Docker to bind your current working directory (`pwd`) to the same path inside the container, so that files created there will be saved to your local file system outside of the container. -- `-w` sets the working directory in the container to this path, so that it's the same as your working directory outside of the container. -- `-u` sets your local user account as the user inside the container, so that any files created have the correct ownership permissions - -After the above base command, you can use the regular command line flags that you would use with other types of installation. -For example, to launch the `viralrecon` pipeline: - -```bash -docker run -itv `pwd`:`pwd` -w `pwd` -u $(id -u):$(id -g) nfcore/tools launch viralrecon -r 1.1.0 -``` - -If you use `$NXF_SINGULARITY_CACHEDIR` for downloads, you'll also need to make this folder and environment variable available to the continer: - -```bash -docker run -itv `pwd`:`pwd` -w `pwd` -u $(id -u):$(id -g) -v $NXF_SINGULARITY_CACHEDIR:$NXF_SINGULARITY_CACHEDIR -e NXF_SINGULARITY_CACHEDIR nfcore/tools launch viralrecon -r 1.1.0 -``` - -#### Docker bash alias - -The above base command is a bit of a mouthful to type, to say the least. -To make it easier to use, we highly recommend adding the following bash alias to your `~/.bashrc` file: - -```bash -alias nf-core="docker run -itv `pwd`:`pwd` -w `pwd` -u $(id -u):$(id -g) nfcore/tools" -``` - -Once applied (you may need to reload your shell) you can just use the `nf-core` command instead: - -```bash -nf-core list -``` - -#### Docker versions - -You can use docker image tags to specify the version you would like to use. For example, `nfcore/tools:dev` for the latest development version of the code, or `nfcore/tools:1.14` for version `1.14` of tools. -If you omit this, it will default to `:latest`, which should be the latest stable release. - -If you need a specific version of Nextflow inside the container, you can build an image yourself. -Clone the repo locally and check out whatever version of nf-core/tools that you need. -Then build using the `--build-arg NXF_VER` flag as follows: - -```bash -docker build -t nfcore/tools:dev . --build-arg NXF_VER=20.04.0 -``` - ### Development version -If you would like the latest development version of tools, the command is: - ```bash pip install --upgrade --force-reinstall git+https://github.com/nf-core/tools.git@dev ``` -If you intend to make edits to the code, first make a fork of the repository and then clone it locally. -Go to the cloned directory and install with pip (also installs development requirements): +If editing, fork and clone the repo, then install as follows: ```bash pip install --upgrade -r requirements-dev.txt -e . ``` -### Using a specific Python interpreter - -If you prefer, you can also run tools with a specific Python interpreter. -The command line usage and flags are then exactly the same as if you ran with the `nf-core` command. -Note that the module is `nf_core` with an underscore, not a hyphen like the console command. - -For example: - -```bash -python -m nf_core --help -python3 -m nf_core list -~/my_env/bin/python -m nf_core create --name mypipeline --description "This is a new skeleton pipeline" -``` - -### Using with your own Python scripts - -The tools functionality is written in such a way that you can import it into your own scripts. -For example, if you would like to get a list of all available nf-core pipelines: - -```python -import nf_core.list -wfs = nf_core.list.Workflows() -wfs.get_remote_workflows() -for wf in wfs.remote_workflows: - print(wf.full_name) -``` - -Please see [https://nf-co.re/tools/docs/](https://nf-co.re/tools/docs/) for the function documentation. - -### Automatic version check - -nf-core/tools automatically checks the web to see if there is a new version of nf-core/tools available. -If you would prefer to skip this check, set the environment variable `NFCORE_NO_VERSION_CHECK`. For example: - -```bash -export NFCORE_NO_VERSION_CHECK=1 -``` - -### Update tools - -It is advisable to keep nf-core/tools updated to the most recent version. The command to update depends on the system used to install it, for example if you have installed it with conda you can use: - -```bash -conda update nf-core -``` - -if you used pip: - -```bash -pip install --upgrade nf-core -``` - -Please refer to the respective documentation for further details to manage packages, as for example [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-pkgs.html#updating-packages) or [pip](https://packaging.python.org/en/latest/tutorials/installing-packages/#upgrading-packages). - -### Activate shell completions for nf-core/tools - -Auto-completion for the `nf-core` command is available for bash, zsh and fish. To activate it, add the following lines to the respective shell config files. - -| shell | shell config file | command | -| ----- | ----------------------------------------- | -------------------------------------------------- | -| bash | `~/.bashrc` | `eval "$(_NF_CORE_COMPLETE=bash_source nf-core)"` | -| zsh | `~/.zshrc` | `eval "$(_NF_CORE_COMPLETE=zsh_source nf-core)"` | -| fish | `~/.config/fish/completions/nf-core.fish` | `eval (env _NF_CORE_COMPLETE=fish_source nf-core)` | - -After a restart of the shell session you should have auto-completion for the `nf-core` command and all its sub-commands and options. - -> [!NOTE] -> The added line will run the command `nf-core` (which will also slow down startup time of your shell). You should therefore either have the nf-core/tools installed globally. -> You can also wrap it inside `if type nf-core > /dev/null; then ` \ `fi` for bash and zsh or `if command -v nf-core &> /dev/null eval (env _NF_CORE_COMPLETE=fish_source nf-core) end` for fish. You need to then source the config in your environment for the completions to be activated. - -> [!TIP] -> If you see the error `command not found compdef` , be sure that your config file contains the line `autoload -Uz compinit && compinit` before the eval line. - -## Listing pipelines - -The command `nf-core list` shows all available nf-core pipelines along with their latest version, when that was published and how recently the pipeline code was pulled to your local system (if at all). - -An example of the output from the command is as follows: - - - -![`nf-core list`](docs/images/nf-core-list.svg) - -To narrow down the list, supply one or more additional keywords to filter the pipelines based on matches in titles, descriptions and topics: - -![`nf-core list rna rna-seq`](docs/images/nf-core-list-rna.svg) - -You can sort the results by latest release (`-s release`, default), -when you last pulled a local copy (`-s pulled`), -alphabetically (`-s name`), -or number of GitHub stars (`-s stars`). - - - -![`nf-core list -s stars`](docs/images/nf-core-list-stars.svg) - -To return results as JSON output for downstream use, use the `--json` flag. - -Archived pipelines are not returned by default. To include them, use the `--show_archived` flag. - -## Launch a pipeline - -Some nextflow pipelines have a considerable number of command line flags that can be used. -To help with this, you can use the `nf-core launch` command. -You can choose between a web-based graphical interface or an interactive command-line wizard tool to enter the pipeline parameters for your run. -Both interfaces show documentation alongside each parameter and validate your inputs. - -The tool uses the `nextflow_schema.json` file from a pipeline to give parameter descriptions, defaults and grouping. -If no file for the pipeline is found, one will be automatically generated at runtime. - -Nextflow `params` variables are saved in to a JSON file called `nf-params.json` and used by nextflow with the `-params-file` flag. -This makes it easier to reuse these in the future. - -The command takes one argument - either the name of an nf-core pipeline which will be pulled automatically, -or the path to a directory containing a Nextflow pipeline _(can be any pipeline, doesn't have to be nf-core)_. - - - -![`nf-core launch rnaseq -r 3.8.1`](docs/images/nf-core-launch-rnaseq.svg) - -Once complete, the wizard will ask you if you want to launch the Nextflow run. -If not, you can copy and paste the Nextflow command with the `nf-params.json` file of your inputs. - -```console -INFO [✓] Input parameters look valid -INFO Nextflow command: - nextflow run nf-core/rnaseq -params-file "nf-params.json" - - -Do you want to run this command now? [y/n]: -``` - -### Launch tool options - -- `-r`, `--revision` - - Specify a pipeline release (or branch / git commit sha) of the project to run -- `-i`, `--id` - - You can use the web GUI for nf-core pipelines by clicking _"Launch"_ on the website. Once filled in you will be given an ID to use with this command which is used to retrieve your inputs. -- `-c`, `--command-only` - - If you prefer not to save your inputs in a JSON file and use `-params-file`, this option will specify all entered params directly in the nextflow command. -- `-p`, `--params-in PATH` - - To use values entered in a previous pipeline run, you can supply the `nf-params.json` file previously generated. - - This will overwrite the pipeline schema defaults before the wizard is launched. -- `-o`, `--params-out PATH` - - Path to save parameters JSON file to. (Default: `nf-params.json`) -- `-a`, `--save-all` - - Without this option the pipeline will ignore any values that match the pipeline schema defaults. - - This option saves _all_ parameters found to the JSON file. -- `-h`, `--show-hidden` - - A pipeline JSON schema can define some parameters as 'hidden' if they are rarely used or for internal pipeline use only. - - This option forces the wizard to show all parameters, including those labelled as 'hidden'. -- `--url` - - Change the URL used for the graphical interface, useful for development work on the website. - -## Create a parameter file - -Sometimes it is easier to manually edit a parameter file than to use the web interface or interactive commandline wizard -provided by `nf-core launch`, for example when running a pipeline with many options on a remote server without a graphical interface. - -You can create a parameter file with all parameters of a pipeline with the `nf-core create-params-file` command. -This file can then be passed to `nextflow` with the `-params-file` flag. - -This command takes one argument - either the name of a nf-core pipeline which will be pulled automatically, -or the path to a directory containing a Nextflow pipeline _(can be any pipeline, doesn't have to be nf-core)_. - -The generated YAML file contains all parameters set to the pipeline default value along with their description in comments. -This template can then be used by uncommenting and modifying the value of parameters you want to pass to a pipline run. - -Hidden options are not included by default, but can be included using the `-x`/`--show-hidden` flag. - -## Downloading pipelines for offline use - -Sometimes you may need to run an nf-core pipeline on a server or HPC system that has no internet connection. -In this case you will need to fetch the pipeline files first, then manually transfer them to your system. - -To make this process easier and ensure accurate retrieval of correctly versioned code and software containers, we have written a download helper tool. - -The `nf-core download` command will download both the pipeline code and the [institutional nf-core/configs](https://github.com/nf-core/configs) files. It can also optionally download any singularity image files that are required. - -If run without any arguments, the download tool will interactively prompt you for the required information. -Each option has a flag, if all are supplied then it will run without any user input needed. - - - -![`nf-core download rnaseq -r 3.8 --outdir nf-core-rnaseq -x none -s none -d`](docs/images/nf-core-download.svg) - -Once downloaded, you will see something like the following file structure for the downloaded pipeline: - - - -![`tree -L 2 nf-core-rnaseq/`](docs/images/nf-core-download-tree.svg) - -You can run the pipeline by simply providing the directory path for the `workflow` folder to your `nextflow run` command: - -```bash -nextflow run /path/to/download/nf-core-rnaseq-dev/workflow/ --input mydata.csv --outdir results # usual parameters here -``` - -> [!NOTE] -> If you downloaded Singularity container images, you will need to use `-profile singularity` or have it enabled in your config file. - -### Downloaded nf-core configs - -The pipeline files are automatically updated (`params.custom_config_base` is set to `../configs`), so that the local copy of institutional configs are available when running the pipeline. -So using `-profile ` should work if available within [nf-core/configs](https://github.com/nf-core/configs). - -> [!WARNING] -> This option is not available when downloading a pipeline for use with [Seqera Platform](#adapting-downloads-to-seqera-platform) because the application manages all configurations separately. - -### Downloading Apptainer containers - -If you're using [Singularity](https://apptainer.org) (Apptainer), the `nf-core download` command can also fetch the required container images for you. -To do this, select `singularity` in the prompt or specify `--container-system singularity` in the command. -Your archive / target output directory will then also include a separate folder `singularity-containers`. - -The downloaded workflow files are again edited to add the following line to the end of the pipeline's `nextflow.config` file: - -```nextflow -singularity.cacheDir = "${projectDir}/../singularity-images/" -``` - -This tells Nextflow to use the `singularity-containers` directory relative to the workflow for the singularity image cache directory. -All images should be downloaded there, so Nextflow will use them instead of trying to pull from the internet. - -#### Singularity cache directory - -We highly recommend setting the `$NXF_SINGULARITY_CACHEDIR` environment variable on your system, even if that is a different system to where you will be running Nextflow. - -If found, the tool will fetch the Singularity images to this directory first before copying to the target output archive / directory. -Any images previously fetched will be found there and copied directly - this includes images that may be shared with other pipelines or previous pipeline version downloads or download attempts. - -If you are running the download on the same system where you will be running the pipeline (eg. a shared filesystem where Nextflow won't have an internet connection at a later date), you can choose to _only_ use the cache via a prompt or cli options `--container-cache-utilisation amend`. This instructs `nf-core download` to fetch all Singularity images to the `$NXF_SINGULARITY_CACHEDIR` directory but does _not_ copy them to the workflow archive / directory. The workflow config file is _not_ edited. This means that when you later run the workflow, Nextflow will just use the cache folder directly. - -If you are downloading a workflow for a different system, you can provide information about the contents of its image cache to `nf-core download`. To avoid unnecessary container image downloads, choose `--container-cache-utilisation remote` and provide a list of already available images as plain text file to `--container-cache-index my_list_of_remotely_available_images.txt`. To generate this list on the remote system, run `find $NXF_SINGULARITY_CACHEDIR -name "*.img" > my_list_of_remotely_available_images.txt`. The tool will then only download and copy images into your output directory, which are missing on the remote system. - -#### How the Singularity image downloads work - -The Singularity image download finds containers using two methods: - -1. It runs `nextflow config` on the downloaded workflow to look for a `process.container` statement for the whole pipeline. - This is the typical method used for DSL1 pipelines. -2. It scrapes any files it finds with a `.nf` file extension in the workflow `modules` directory for lines - that look like `container = "xxx"`. This is the typical method for DSL2 pipelines, which have one container per process. - -Some DSL2 modules have container addresses for docker (eg. `biocontainers/fastqc:0.11.9--0`) and also URLs for direct downloads of a Singularity container (eg. `https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0`). -Where both are found, the download URL is preferred. - -Once a full list of containers is found, they are processed in the following order: - -1. If the target image already exists, nothing is done (eg. with `$NXF_SINGULARITY_CACHEDIR` and `--container-cache-utilisation amend` specified) -2. If found in `$NXF_SINGULARITY_CACHEDIR` and `--container-cache-utilisation copy` is specified, they are copied to the output directory -3. If they start with `http` they are downloaded directly within Python (default 4 at a time, you can customise this with `--parallel-downloads`) -4. If they look like a Docker image name, they are fetched using a `singularity pull` command. Choose the container libraries (registries) queried by providing one or multiple `--container-library` parameter(s). For example, if you call `nf-core download` with `-l quay.io -l ghcr.io -l docker.io`, every image will be pulled from `quay.io` unless an error is encountered. Subsequently, `ghcr.io` and then `docker.io` will be queried for any image that has failed before. - - This requires Singularity/Apptainer to be installed on the system and is substantially slower - -Note that compressing many GBs of binary files can be slow, so specifying `--compress none` is recommended when downloading Singularity images that are copied to the output directory. - -If the download speeds are much slower than your internet connection is capable of, you can set `--parallel-downloads` to a large number to download loads of images at once. - -### Adapting downloads to Seqera Platform - -[Seqera Platform](https://seqera.io/platform/) (formerly _"Nextflow Tower"_) provides a graphical user interface to oversee pipeline runs, gather statistics and configure compute resources. While pipelines added to _Seqera Platform_ are preferably hosted at a Git service, providing them as disconnected, self-reliant repositories is also possible for premises with restricted network access. Choosing the `--platform` flag will download the pipeline in an appropriate form. - -Subsequently, the `*.git` folder can be moved to it's final destination and linked with a pipeline in _Seqera Platform_ using the `file:/` prefix. - -> [!TIP] -> Also without access to Seqera Platform, pipelines downloaded with the `--platform` flag can be run if the _absolute_ path is specified: `nextflow run -r 2.5 file:/path/to/pipelinedownload.git`. Downloads in this format allow you to include multiple revisions of a pipeline in a single file, but require that the revision (e.g. `-r 2.5`) is always explicitly specified. - -## Pipeline software licences - -Sometimes it's useful to see the software licences of the tools used in a pipeline. -You can use the `licences` subcommand to fetch and print the software licence from each conda / PyPI package used in an nf-core pipeline. - -> [!WARNING] -> This command does not currently work for newer DSL2 pipelines. This will hopefully be addressed [soon](https://github.com/nf-core/tools/issues/1155). - - - -![`nf-core licences deepvariant`](docs/images/nf-core-licences.svg) - -## Creating a new pipeline - -The `create` subcommand makes a new pipeline using the nf-core base template. -With a given pipeline name, description and author, it makes a starter pipeline which follows nf-core best practices. - -After creating the files, the command initialises the folder as a git repository and makes an initial commit. -This first "vanilla" commit which is identical to the output from the templating tool is important, as it allows us to keep your pipeline in sync with the base template in the future. -See the [nf-core syncing docs](https://nf-co.re/developers/sync) for more information. - - - -![` nf-core create -n nextbigthing -d "This pipeline analyses data from the next big omics technique" -a "Big Steve" --plain`](docs/images/nf-core-create.svg) - -Once you have run the command, create a new empty repository on GitHub under your username (not the `nf-core` organisation, yet) and push the commits from your computer using the example commands in the above log. -You can then continue to edit, commit and push normally as you build your pipeline. - -Please see the [nf-core documentation](https://nf-co.re/developers/adding_pipelines) for a full walkthrough of how to create a new nf-core workflow. - -> [!TIP] -> As the log output says, remember to come and discuss your idea for a pipeline as early as possible! -> See the [documentation](https://nf-co.re/developers/adding_pipelines#join-the-community) for instructions. - -Note that if the required arguments for `nf-core create` are not given, it will interactively prompt for them. If you prefer, you can supply them as command line arguments. See `nf-core create --help` for more information. - -### Customizing the creation of a pipeline - -The `nf-core create` command comes with a number of options that allow you to customize the creation of a pipeline if you intend to not publish it as an -nf-core pipeline. This can be done in two ways: by using interactive prompts, or by supplying a `template.yml` file using the `--template-yaml ` option. -Both options allow you to specify a custom pipeline prefix to use instead of the common `nf-core`, as well as selecting parts of the template to be excluded during pipeline creation. -The interactive prompts will guide you through the pipeline creation process. An example of a `template.yml` file is shown below. - -```yaml -name: coolpipe -description: A cool pipeline -author: me -prefix: myorg -skip: - - github - - ci - - github_badges - - igenomes - - nf_core_configs -``` - -This will create a pipeline called `coolpipe` in the directory `myorg-coolpipe` (`-`) with `me` as the author. It will exclude all possible parts of the template: - -- `github`: removed all files required for GitHub hosting of the pipeline. Specifically, the `.github` folder and `.gitignore` file. -- `ci`: removes the GitHub continuous integration tests from the pipeline. Specifically, the `.github/workflows/` folder. -- `github_badges`: removes GitHub badges from the `README.md` file. -- `igenomes`: removes pipeline options related to iGenomes. Including the `conf/igenomes.config` file and all references to it. -- `nf_core_configs`: excludes `nf_core/configs` repository options, which make multiple config profiles for various institutional clusters available. - -To run the pipeline creation silently (i.e. without any prompts) with the nf-core template, you can use the `--plain` option. - -## Linting a workflow - -The `lint` subcommand checks a given pipeline for all nf-core community guidelines. -This is the same test that is used on the automated continuous integration tests. - -For example, the current version looks something like this: - - - -![`nf-core lint`](docs/images/nf-core-lint.svg) - -You can use the `-k` / `--key` flag to run only named tests for faster debugging, eg: `nf-core lint -k files_exist -k files_unchanged`. The `nf-core lint` command lints the current working directory by default, to specify another directory you can use `--dir `. - -### Linting documentation - -Each test result name on the left is a terminal hyperlink. -In most terminals you can ctrl + click ( cmd + click) these -links to open documentation specific to this test in your browser. - -Alternatively visit and find your test to read more. - -### Linting config - -It's sometimes desirable to disable certain lint tests, especially if you're using nf-core/tools with your -own pipeline that is outside of nf-core. - -To help with this, you can add a tools config file to your pipeline called `.nf-core.yml` in the pipeline root directory (previously: `.nf-core-lint.yml`). -Here you can list the names of any tests that you would like to disable and set them to `False`, for example: - -```yaml -lint: - actions_awsfulltest: False - pipeline_todos: False -``` - -Some lint tests allow greater granularity, for example skipping a test only for a specific file. -This is documented in the test-specific docs but generally involves passing a list, for example: - -```yaml -lint: - files_exist: - - CODE_OF_CONDUCT.md - files_unchanged: - - assets/email_template.html - - CODE_OF_CONDUCT.md -``` - -Note that you have to list all configurations for the `nf-core lint` command under the `lint:` field in the `.nf-core.yml` file, as this file is also used for configuration of other commands. - -### Automatically fix errors - -Some lint tests can try to automatically fix any issues they find. To enable this functionality, use the `--fix` flag. -The pipeline must be a `git` repository with no uncommitted changes for this to work. -This is so that any automated changes can then be reviewed and undone (`git checkout .`) if you disagree. - -### Lint results output - -The output from `nf-core lint` is designed to be viewed on the command line and is deliberately succinct. -You can view all passed tests with `--show-passed` or generate JSON / markdown results with the `--json` and `--markdown` flags. - -## Pipeline schema - -nf-core pipelines have a `nextflow_schema.json` file in their root which describes the different parameters used by the workflow. -These files allow automated validation of inputs when running the pipeline, are used to generate command line help and can be used to build interfaces to launch pipelines. -Pipeline schema files are built according to the [JSONSchema specification](https://json-schema.org/) (Draft 7). - -To help developers working with pipeline schema, nf-core tools has three `schema` sub-commands: - -- `nf-core schema validate` -- `nf-core schema build` -- `nf-core schema docs` -- `nf-core schema lint` - -### Validate pipeline parameters - -Nextflow can take input parameters in a JSON or YAML file when running a pipeline using the `-params-file` option. -This command validates such a file against the pipeline schema. - -Usage is `nf-core schema validate `. eg with the pipeline downloaded [above](#download-pipeline), you can run: - - - -![`nf-core schema validate nf-core-rnaseq/3_8 nf-params.json`](docs/images/nf-core-schema-validate.svg) - -The `pipeline` option can be a directory containing a pipeline, a path to a schema file or the name of an nf-core pipeline (which will be downloaded using `nextflow pull`). - -### Build a pipeline schema - -Manually building JSONSchema documents is not trivial and can be very error prone. -Instead, the `nf-core schema build` command collects your pipeline parameters and gives interactive prompts about any missing or unexpected params. -If no existing schema is found it will create one for you. - -Once built, the tool can send the schema to the nf-core website so that you can use a graphical interface to organise and fill in the schema. -The tool checks the status of your schema on the website and once complete, saves your changes locally. - -Usage is `nf-core schema build -d `, eg: - - - -![`nf-core schema build --no-prompts`](docs/images/nf-core-schema-build.svg) - -There are four flags that you can use with this command: - -- `--dir `: Specify a pipeline directory other than the current working directory -- `--no-prompts`: Make changes without prompting for confirmation each time. Does not launch web tool. -- `--web-only`: Skips comparison of the schema against the pipeline parameters and only launches the web tool. -- `--url `: Supply a custom URL for the online tool. Useful when testing locally. - -### Display the documentation for a pipeline schema - -To get an impression about the current pipeline schema you can display the content of the `nextflow_schema.json` with `nf-core schema docs `. This will print the content of your schema in Markdown format to the standard output. - -There are four flags that you can use with this command: - -- `--output `: Output filename. Defaults to standard out. -- `--format [markdown|html]`: Format to output docs in. -- `--force`: Overwrite existing files -- `--columns `: CSV list of columns to include in the parameter tables - -### Add new parameters to the pipeline schema - -If you want to add a parameter to the schema, you first have to add the parameter and its default value to the `nextflow.config` file with the `params` scope. Afterwards, you run the command `nf-core schema build` to add the parameters to your schema and open the graphical interface to easily modify the schema. - -The graphical interface is oganzised in groups and within the groups the single parameters are stored. For a better overview you can collapse all groups with the `Collapse groups` button, then your new parameters will be the only remaining one at the bottom of the page. Now you can either create a new group with the `Add group` button or drag and drop the paramters in an existing group. Therefor the group has to be expanded. The group title will be displayed, if you run your pipeline with the `--help` flag and its description apears on the parameter page of your pipeline. - -Now you can start to change the parameter itself. The `ID` of a new parameter should be defined in small letters without whitespaces. The description is a short free text explanation about the parameter, that appears if you run your pipeline with the `--help` flag. By clicking on the dictionary icon you can add a longer explanation for the parameter page of your pipeline. Usually, they contain a small paragraph about the parameter settings or a used datasource, like databases or references. If you want to specify some conditions for your parameter, like the file extension, you can use the nut icon to open the settings. This menu depends on the `type` you assigned to your parameter. For integers you can define a min and max value, and for strings the file extension can be specified. - -The `type` field is one of the most important points in your pipeline schema, since it defines the datatype of your input and how it will be interpreted. This allows extensive testing prior to starting the pipeline. - -The basic datatypes for a pipeline schema are: - -- `string` -- `number` -- `integer` -- `boolean` - -For the `string` type you have three different options in the settings (nut icon): `enumerated values`, `pattern` and `format`. The first option, `enumerated values`, allows you to specify a list of specific input values. The list has to be separated with a pipe. The `pattern` and `format` settings can depend on each other. The `format` has to be either a directory or a file path. Depending on the `format` setting selected, specifying the `pattern` setting can be the most efficient and time saving option, especially for `file paths`. The `number` and `integer` types share the same settings. Similarly to `string`, there is an `enumerated values` option with the possibility of specifying a `min` and `max` value. For the `boolean` there is no further settings and the default value is usually `false`. The `boolean` value can be switched to `true` by adding the flag to the command. This parameter type is often used to skip specific sections of a pipeline. - -After filling the schema, click on the `Finished` button in the top right corner, this will automatically update your `nextflow_schema.json`. If this is not working, the schema can be copied from the graphical interface and pasted in your `nextflow_schema.json` file. - -### Update existing pipeline schema - -It's important to change the default value of a parameter in the `nextflow.config` file first and then in the pipeline schema, because the value in the config file overwrites the value in the pipeline schema. To change any other parameter use `nf-core schema build --web-only` to open the graphical interface without rebuilding the pipeline schema. Now, the parameters can be changed as mentioned above but keep in mind that changing the parameter datatype depends on the default value specified in the `nextflow.config` file. - -### Linting a pipeline schema - -The pipeline schema is linted as part of the main pipeline `nf-core lint` command, -however sometimes it can be useful to quickly check the syntax of the JSONSchema without running a full lint run. - -Usage is `nf-core schema lint ` (defaulting to `nextflow_schema.json`), eg: - - - -![`nf-core schema lint`](docs/images/nf-core-schema-lint.svg) - -## Bumping a pipeline version number - -When releasing a new version of a nf-core pipeline, version numbers have to be updated in several different places. The helper command `nf-core bump-version` automates this for you to avoid manual errors (and frustration!). - -The command uses results from the linting process, so will only work with workflows that pass these tests. - -Usage is `nf-core bump-version `, eg: - - - -![`nf-core bump-version 1.1`](docs/images/nf-core-bump-version.svg) - -You can change the directory from the current working directory by specifying `--dir `. To change the required version of Nextflow instead of the pipeline version number, use the flag `--nextflow`. - -## Sync a pipeline with the template - -Over time, the main nf-core pipeline template is updated. To keep all nf-core pipelines up to date, -we synchronise these updates automatically when new versions of nf-core/tools are released. -This is done by maintaining a special `TEMPLATE` branch, containing a vanilla copy of the nf-core template -with only the variables used when it first ran (name, description etc.). This branch is updated and a -pull-request can be made with just the updates from the main template code. - -Note that pipeline synchronisation happens automatically each time nf-core/tools is released, creating an automated pull-request on each pipeline. -**As such, you do not normally need to run this command yourself!** - -This command takes a pipeline directory and attempts to run this synchronisation. -Usage is `nf-core sync`, eg: - - - -![`nf-core sync`](docs/images/nf-core-sync.svg) - -The sync command tries to check out the `TEMPLATE` branch from the `origin` remote or an existing local branch called `TEMPLATE`. -It will fail if it cannot do either of these things. -The `nf-core create` command should make this template automatically when you first start your pipeline. -Please see the [nf-core website sync documentation](https://nf-co.re/developers/sync) if you have difficulties. - -To specify a directory to sync other than the current working directory, use the `--dir `. - -By default, the tool will collect workflow variables from the current branch in your pipeline directory. -You can supply the `--from-branch` flag to specific a different branch. - -Finally, if you give the `--pull-request` flag, the command will push any changes to the remote and attempt to create a pull request using the GitHub API. -The GitHub username and repository name will be fetched from the remote url (see `git remote -v | grep origin`), or can be supplied with `--username` and `--github-repository`. - -To create the pull request, a personal access token is required for API authentication. -These can be created at [https://github.com/settings/tokens](https://github.com/settings/tokens). -Supply this using the `--auth-token` flag. - -## Create an nf-core pipeline logo - -The `nf-core create-logo` command creates a logo for your pipeline based on the nf-core template and the pipeline name. You can specify the width of the logo in pixels with the `--width` flag. Additionally, you can specify the output format to be either `png` or `svg` with the `--format` flag. The default format is `png`. - -Usage is `nf-core create-logo `, eg: - - - -![`nf-core create-logo nextbigthing`](docs/images/nf-core-create-logo.svg) - -## Tools CLI TUI - -_CLI:_ Command line interface -_TUI:_ Terminal user interface - -The `nf-core` command line interface is fairly large, with a lot of commands and options. -To make it easier to explore and use, run `nf-core tui` to launch a graphical terminal interface. - -This functionality works using [Textualize/trogon](https://github.com/Textualize/trogon) -and is based on the underlying CLI implementation that uses [Click](https://click.palletsprojects.com/). - -## Modules - -With the advent of [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html), we are creating a centralised repository of modules. -These are software tool process definitions that can be imported into any pipeline. -This allows multiple pipelines to use the same code for share tools and gives a greater degree of granulairy and unit testing. - -The nf-core DSL2 modules repository is at - -### Custom remote modules - -The modules supercommand comes with two flags for specifying a custom remote: - -- `--git-remote `: Specify the repository from which the modules should be fetched as a git URL. Defaults to the github repository of `nf-core/modules`. -- `--branch `: Specify the branch from which the modules should be fetched. Defaults to the default branch of your repository. - -For example, if you want to install the `fastqc` module from the repository `nf-core/modules-test` hosted at `gitlab.com`, you can use the following command: - -```terminal -nf-core modules --git-remote git@gitlab.com:nf-core/modules-test.git install fastqc -``` - -Note that a custom remote must follow a similar directory structure to that of `nf-core/moduleś` for the `nf-core modules` commands to work properly. - -The directory where modules are installed will be prompted or obtained from `org_path` in the `.nf-core.yml` file if available. If your modules are located at `modules/my-folder/TOOL/SUBTOOL` your `.nf-core.yml` should have: - -```yaml -org_path: my-folder -``` - -Please avoid installing the same tools from two different remotes, as this can lead to further errors. - -The modules commands will during initalisation try to pull changes from the remote repositories. If you want to disable this, for example -due to performance reason or if you want to run the commands offline, you can use the flag `--no-pull`. Note however that the commands will -still need to clone repositories that have previously not been used. - -### Private remote repositories - -You can use the modules command with private remote repositories. Make sure that your local `git` is correctly configured with your private remote -and then specify the remote the same way you would do with a public remote repository. - -### List modules - -The `nf-core modules list` command provides the subcommands `remote` and `local` for listing modules installed in a remote repository and in the local pipeline respectively. Both subcommands allow to use a pattern for filtering the modules by keywords eg: `nf-core modules list `. - -#### List remote modules - -To list all modules available on [nf-core/modules](https://github.com/nf-core/modules), you can use -`nf-core modules list remote`, which will print all available modules to the terminal. - - - -![`nf-core modules list remote`](docs/images/nf-core-modules-list-remote.svg) - -#### List installed modules - -To list modules installed in a local pipeline directory you can use `nf-core modules list local`. This will list the modules install in the current working directory by default. If you want to specify another directory, use the `--dir ` flag. - - - -![`nf-core modules list local`](docs/images/nf-core-modules-list-local.svg) - -## Show information about a module - -For quick help about how a module works, use `nf-core modules info `. -This shows documentation about the module on the command line, similar to what's available on the -[nf-core website](https://nf-co.re/modules). - - - -![`nf-core modules info abacas`](docs/images/nf-core-modules-info.svg) - -### Install modules in a pipeline - -You can install modules from [nf-core/modules](https://github.com/nf-core/modules) in your pipeline using `nf-core modules install`. -A module installed this way will be installed to the `./modules/nf-core/modules` directory. - - - -![`nf-core modules install abacas`](docs/images/nf-core-modules-install.svg) - -You can pass the module name as an optional argument to `nf-core modules install` instead of using the cli prompt, eg: `nf-core modules install fastqc`. You can specify a pipeline directory other than the current working directory by using the `--dir `. - -There are three additional flags that you can use when installing a module: - -- `--force`: Overwrite a previously installed version of the module. -- `--prompt`: Select the module version using a cli prompt. -- `--sha `: Install the module at a specific commit. - -### Update modules in a pipeline - -You can update modules installed from a remote repository in your pipeline using `nf-core modules update`. - - - -![`nf-core modules update --all --no-preview`](docs/images/nf-core-modules-update.svg) - -You can pass the module name as an optional argument to `nf-core modules update` instead of using the cli prompt, eg: `nf-core modules update fastqc`. You can specify a pipeline directory other than the current working directory by using the `--dir `. - -There are five additional flags that you can use with this command: - -- `--force`: Reinstall module even if it appears to be up to date -- `--prompt`: Select the module version using a cli prompt. -- `--sha `: Install the module at a specific commit from the `nf-core/modules` repository. -- `--preview/--no-preview`: Show the diff between the installed files and the new version before installing. -- `--save-diff `: Save diffs to a file instead of updating in place. The diffs can then be applied with `git apply `. -- `--all`: Use this flag to run the command on all modules in the pipeline. - -If you don't want to update certain modules or want to update them to specific versions, you can make use of the `.nf-core.yml` configuration file. For example, you can prevent the `star/align` module installed from `nf-core/modules` from being updated by adding the following to the `.nf-core.yml` file: - -```yaml -update: - https://github.com/nf-core/modules.git: - nf-core: - star/align: False -``` - -If you want this module to be updated only to a specific version (or downgraded), you could instead specifiy the version: - -```yaml -update: - https://github.com/nf-core/modules.git: - nf-core: - star/align: "e937c7950af70930d1f34bb961403d9d2aa81c7" -``` - -This also works at the repository level. For example, if you want to exclude all modules installed from `nf-core/modules` from being updated you could add: - -```yaml -update: - https://github.com/nf-core/modules.git: - nf-core: False -``` - -or if you want all modules in `nf-core/modules` at a specific version: - -```yaml -update: - https://github.com/nf-core/modules.git: - nf-core: "e937c7950af70930d1f34bb961403d9d2aa81c7" -``` - -Note that the module versions specified in the `.nf-core.yml` file has higher precedence than versions specified with the command line flags, thus aiding you in writing reproducible pipelines. - -### Remove a module from a pipeline - -To delete a module from your pipeline, run `nf-core modules remove`. - - - -![`nf-core modules remove abacas`](docs/images/nf-core-modules-remove.svg) - -You can pass the module name as an optional argument to `nf-core modules remove` instead of using the cli prompt, eg: `nf-core modules remove fastqc`. To specify the pipeline directory, use `--dir `. - -### Create a patch file for a module - -If you want to make a minor change to a locally installed module but still keep it up date with the remote version, you can create a patch file using `nf-core modules patch`. - - - -![`nf-core modules patch fastqc`](docs/images/nf-core-modules-patch.svg) - -The generated patches work with `nf-core modules update`: when you install a new version of the module, the command tries to apply -the patch automatically. The patch application fails if the new version of the module modifies the same lines as the patch. In this case, -the patch new version is installed but the old patch file is preserved. - -When linting a patched module, the linting command will check the validity of the patch. When running other lint tests the patch is applied in reverse, and the original files are linted. - -### Create a new module - -This command creates a new nf-core module from the nf-core module template. -This ensures that your module follows the nf-core guidelines. -The template contains extensive `TODO` messages to walk you through the changes you need to make to the template. - -You can create a new module using `nf-core modules create`. - -This command can be used both when writing a module for the shared [nf-core/modules](https://github.com/nf-core/modules) repository, -and also when creating local modules for a pipeline. - -Which type of repository you are working in is detected by the `repository_type` flag in a `.nf-core.yml` file in the root directory, -set to either `pipeline` or `modules`. -The command will automatically look through parent directories for this file to set the root path, so that you can run the command in a subdirectory. -It will start in the current working directory, or whatever is specified with `--dir `. - -The `nf-core modules create` command will prompt you with the relevant questions in order to create all of the necessary module files. - - - -![`cd modules && nf-core modules create fastqc --author @nf-core-bot --label process_low --meta --force`](docs/images/nf-core-modules-create.svg) - -### Check a module against nf-core guidelines - -Run the `nf-core modules lint` command to check modules in the current working directory (pipeline or nf-core/modules clone) against nf-core guidelines. - -Use the `--all` flag to run linting on all modules found. Use `--dir ` to specify another directory than the current working directory. - - - -![`nf-core modules lint multiqc`](docs/images/nf-core-modules-lint.svg) - -### Create a test for a module - -All modules on [nf-core/modules](https://github.com/nf-core/modules) have a strict requirement of being unit tested using minimal test data. We use [nf-test](https://code.askimed.com/nf-test/) as our testing framework. -Each module comes already with a template for the test file in `test/main.nf.test`. Replace the placeholder code in that file with your specific input, output and proces. In order to generate the corresponding snapshot after writing your test, you can use the `nf-core modules test` command. This command will run `nf-test test` twice, to also check for snapshot stability, i.e. that the same snapshot is generated on multiple runs. - -You can specify the module name in the form TOOL/SUBTOOL in the command or provide it later through interactive prompts. - - - -![`nf-core modules test fastqc --no-prompts`](docs/images/nf-core-modules-test.svg) - -In case you changed something in the test and want to update the snapshot, run - -```bash -nf-core modules test --update -``` - -If you want to run the test only once without checking for snapshot stability, you can use the `--once` flag. - -### Bump bioconda and container versions of modules in - -If you are contributing to the `nf-core/modules` repository and want to bump bioconda and container versions of certain modules, you can use the `nf-core modules bump-versions` helper tool. This will bump the bioconda version of a single or all modules to the latest version and also fetch the correct Docker and Singularity container tags. - - - -![`nf-core modules bump-versions fastqc`](docs/images/nf-core-modules-bump-version.svg) - -If you don't want to update certain modules or want to update them to specific versions, you can make use of the `.nf-core.yml` configuration file. For example, you can prevent the `star/align` module from being updated by adding the following to the `.nf-core.yml` file: - -```yaml -bump-versions: - star/align: False -``` - -If you want this module to be updated only to a specific version (or downgraded), you could instead specifiy the version: - -```yaml -bump-versions: - star/align: "2.6.1d" -``` - -## Subworkflows - -After the launch of nf-core modules, we can provide now also nf-core subworkflows to fully utilize the power of DSL2 modularization. -Subworkflows are chains of multiple module definitions that can be imported into any pipeline. -This allows multiple pipelines to use the same code for a the same tasks, and gives a greater degree of reusability and unit testing. - -To allow us to test modules and subworkflows together we put the nf-core DSL2 subworkflows into the `subworkflows` directory of the modules repository is at . - -### Custom remote subworkflows - -The subworkflows supercommand released in nf-core/tools version 2.7 comes with two flags for specifying a custom remote repository: - -- `--git-remote `: Specify the repository from which the subworkflows should be fetched as a git URL. Defaults to the github repository of `nf-core/modules`. -- `--branch `: Specify the branch from which the subworkflows should be fetched. Defaults to the default branch of your repository. - -For example, if you want to install the `bam_stats_samtools` subworkflow from the repository `nf-core/modules-test` hosted at `gitlab.com` in the branch `subworkflows`, you can use the following command: - -```bash -nf-core subworkflows --git-remote git@gitlab.com:nf-core/modules-test.git --branch subworkflows install bam_stats_samtools -``` - -Note that a custom remote must follow a similar directory structure to that of `nf-core/modules` for the `nf-core subworkflows` commands to work properly. - -The directory where subworkflows are installed will be prompted or obtained from `org_path` in the `.nf-core.yml` file if available. If your subworkflows are located at `subworkflows/my-folder/SUBWORKFLOW_NAME` your `.nf-core.yml` file should have: - -```yaml -org_path: my-folder -``` - -Please avoid installing the same tools from two different remotes, as this can lead to further errors. - -The subworkflows commands will during initalisation try to pull changes from the remote repositories. If you want to disable this, for example due to performance reason or if you want to run the commands offline, you can use the flag `--no-pull`. Note however that the commands will still need to clone repositories that have previously not been used. - -### Private remote repositories - -You can use the subworkflows command with private remote repositories. Make sure that your local `git` is correctly configured with your private remote -and then specify the remote the same way you would do with a public remote repository. - -### List subworkflows - -The `nf-core subworkflows list` command provides the subcommands `remote` and `local` for listing subworkflows installed in a remote repository and in the local pipeline respectively. Both subcommands allow to use a pattern for filtering the subworkflows by keywords eg: `nf-core subworkflows list `. - -#### List remote subworkflows - -To list all subworkflows available on [nf-core/modules](https://github.com/nf-core/modules), you can use -`nf-core subworkflows list remote`, which will print all available subworkflows to the terminal. - - - -![`nf-core subworkflows list remote`](docs/images/nf-core-subworkflows-list-remote.svg) - -#### List installed subworkflows - -To list subworkflows installed in a local pipeline directory you can use `nf-core subworkflows list local`. This will list the subworkflows install in the current working directory by default. If you want to specify another directory, use the `--dir ` flag. - - - -![`nf-core subworkflows list local`](docs/images/nf-core-subworkflows-list-local.svg) - -## Show information about a subworkflow - -For quick help about how a subworkflow works, use `nf-core subworkflows info `. -This shows documentation about the subworkflow on the command line, similar to what's available on the -[nf-core website](https://nf-co.re/subworkflows). - - - -![`nf-core subworkflows info bam_rseqc`](docs/images/nf-core-subworkflows-info.svg) - -### Install subworkflows in a pipeline - -You can install subworkflows from [nf-core/modules](https://github.com/nf-core/modules) in your pipeline using `nf-core subworkflows install`. -A subworkflow installed this way will be installed to the `./subworkflows/nf-core` directory. - - - -![`nf-core subworkflows install bam_rseqc`](docs/images/nf-core-subworkflows-install.svg) - -You can pass the subworkflow name as an optional argument to `nf-core subworkflows install` like above or select it from a list of available subworkflows by only running `nf-core subworkflows install`. - -There are four additional flags that you can use when installing a subworkflow: - -- `--dir`: Pipeline directory, the default is the current working directory. -- `--force`: Overwrite a previously installed version of the subworkflow. -- `--prompt`: Select the subworkflow version using a cli prompt. -- `--sha `: Install the subworkflow at a specific commit. - -### Update subworkflows in a pipeline - -You can update subworkflows installed from a remote repository in your pipeline using `nf-core subworkflows update`. - - - -![`nf-core subworkflows update --all --no-preview`](docs/images/nf-core-subworkflows-update.svg) - -You can pass the subworkflow name as an optional argument to `nf-core subworkflows update` like above or select it from the list of available subworkflows by only running `nf-core subworkflows update`. - -There are six additional flags that you can use with this command: - -- `--dir`: Pipeline directory, the default is the current working directory. -- `--force`: Reinstall subworkflow even if it appears to be up to date -- `--prompt`: Select the subworkflow version using a cli prompt. -- `--sha `: Install the subworkflow at a specific commit from the `nf-core/modules` repository. -- `--preview/--no-preview`: Show the diff between the installed files and the new version before installing. -- `--save-diff `: Save diffs to a file instead of updating in place. The diffs can then be applied with `git apply `. -- `--all`: Use this flag to run the command on all subworkflows in the pipeline. -- `--update-deps`: Use this flag to automatically update all dependencies of a subworkflow. - -If you don't want to update certain subworkflows or want to update them to specific versions, you can make use of the `.nf-core.yml` configuration file. For example, you can prevent the `bam_rseqc` subworkflow installed from `nf-core/modules` from being updated by adding the following to the `.nf-core.yml` file: - -```yaml -update: - https://github.com/nf-core/modules.git: - nf-core: - bam_rseqc: False -``` - -If you want this subworkflow to be updated only to a specific version (or downgraded), you could instead specifiy the version: - -```yaml -update: - https://github.com/nf-core/modules.git: - nf-core: - bam_rseqc: "36a77f7c6decf2d1fb9f639ae982bc148d6828aa" -``` - -This also works at the repository level. For example, if you want to exclude all modules and subworkflows installed from `nf-core/modules` from being updated you could add: - -```yaml -update: - https://github.com/nf-core/modules.git: - nf-core: False -``` - -or if you want all subworkflows in `nf-core/modules` at a specific version: - -```yaml -update: - https://github.com/nf-core/modules.git: - nf-core: "e937c7950af70930d1f34bb961403d9d2aa81c7" -``` - -Note that the subworkflow versions specified in the `.nf-core.yml` file has higher precedence than versions specified with the command line flags, thus aiding you in writing reproducible pipelines. - -### Remove a subworkflow from a pipeline - -To delete a subworkflow from your pipeline, run `nf-core subworkflows remove`. - - - -![`nf-core subworkflows remove bam_rseqc`](docs/images/nf-core-subworkflows-remove.svg) - -You can pass the subworkflow name as an optional argument to `nf-core subworkflows remove` like above or select it from the list of available subworkflows by only running `nf-core subworkflows remove`. To specify the pipeline directory, use `--dir `. - -### Create a new subworkflow - -This command creates a new nf-core subworkflow from the nf-core subworkflow template. -This ensures that your subworkflow follows the nf-core guidelines. -The template contains extensive `TODO` messages to walk you through the changes you need to make to the template. -See the [subworkflow documentation](https://nf-co.re/docs/contributing/subworkflows) for more details around creating a new subworkflow, including rules about nomenclature and a step-by-step guide. - -You can create a new subworkflow using `nf-core subworkflows create`. - -This command can be used both when writing a subworkflow for the shared [nf-core/modules](https://github.com/nf-core/modules) repository, -and also when creating local subworkflows for a pipeline. - -Which type of repository you are working in is detected by the `repository_type` flag in a `.nf-core.yml` file in the root directory, -set to either `pipeline` or `modules`. -The command will automatically look through parent directories for this file to set the root path, so that you can run the command in a subdirectory. -It will start in the current working directory, or whatever is specified with `--dir `. - -The `nf-core subworkflows create` command will prompt you with the relevant questions in order to create all of the necessary subworkflow files. - - - -![`nf-core subworkflows create bam_stats_samtools --author @nf-core-bot --force`](docs/images/nf-core-subworkflows-create.svg) - -### Create a test for a subworkflow - -All subworkflows on [nf-core/modules](https://github.com/nf-core/modules) have a strict requirement of being unit tested using minimal test data. We use [nf-test](https://code.askimed.com/nf-test/) as our testing framework. -Each subworkflow comes already with a template for the test file in `test/main.nf.test`. Replace the placeholder code in that file with your specific input, output and proces. In order to generate the corresponding snapshot after writing your test, you can use the `nf-core subworkflows test` command. This command will run `nf-test test` twice, to also check for snapshot stability, i.e. that the same snapshot is generated on multiple runs. - -You can specify the subworkflow name in the command or provide it later through interactive prompts. - - - -![`nf-core subworkflows test bam_rseqc --no-prompts`](docs/images/nf-core-subworkflows-test.svg) - -In case you changed something in the test and want to update the snapshot, run - -```bash -nf-core subworkflows test --update -``` - -If you want to run the test only once without checking for snapshot stability, you can use the `--once` flag. - -### Check a subworkflow against nf-core guidelines - -Run the `nf-core subworkflows lint` command to check subworkflows in the current working directory (a pipeline or a clone of nf-core/modules) against nf-core guidelines. - -Use the `--all` flag to run linting on all subworkflows found. Use `--dir ` to specify a different directory than the current working directory. +## Contributions and Support - +If you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md). -![`nf-core subworkflows lint bam_stats_samtools`](docs/images/nf-core-subworkflows-lint.svg) +For further information or help, don't hesitate to get in touch on the [Slack `#tools` channel](https://nfcore.slack.com/channels/tools) (you can join with [this invite](https://nf-co.re/join/slack)). ## Citation diff --git a/docs/images/nf-core-bump-version.svg b/docs/images/nf-core-bump-version.svg deleted file mode 100644 index 70171475d9..0000000000 --- a/docs/images/nf-core-bump-version.svg +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core bump-version 1.1 - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -INFO     Changing version number from '1.0dev' to '1.1' -INFO     Updated version in 'nextflow.config' - - version         = '1.0dev' - + version         = '1.1' - - -INFO     Updated version in 'assets/multiqc_config.yml' - - This report has been generated by the <a  -href="https://github.com/nf-core/nextbigthing/tree/dev" target="_blank">nf-core/nextbigthing</a> - + This report has been generated by the <a  -href="https://github.com/nf-core/nextbigthing/releases/tag/1.1"  -target="_blank">nf-core/nextbigthing</a> - - -INFO     Updated version in 'assets/multiqc_config.yml' - - <a href="https://nf-co.re/nextbigthing/dev/docs/output"  -target="_blank">documentation</a>. - + <a href="https://nf-co.re/nextbigthing/1.1/docs/output"  -target="_blank">documentation</a>. - - - - - - diff --git a/docs/images/nf-core-create-logo.svg b/docs/images/nf-core-create-logo.svg deleted file mode 100644 index c6e7269363..0000000000 --- a/docs/images/nf-core-create-logo.svg +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core create-logo nextbigthing - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -INFO     Created logo: nf-core-nextbigthing_logo_light.png - - - - diff --git a/docs/images/nf-core-create.svg b/docs/images/nf-core-create.svg deleted file mode 100644 index 422e6734ce..0000000000 --- a/docs/images/nf-core-create.svg +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core create -n nextbigthing -d "This pipeline analyses data from the next big omics technique"  --a "Big Steve" --plain - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -INFO     Creating new nf-core pipeline: 'nf-core/nextbigthing' -INFO     Initialising pipeline git repository                                                        -INFO     Done. Remember to add a remote and push to GitHub:                                          - cd /home/runner/work/tools/tools/tmp/nf-core-nextbigthing - git remote add origin git@github.com:USERNAME/REPO_NAME.git  - git push --all origin                                        -INFO     This will also push your newly created dev branch and the TEMPLATE branch for syncing.      -INFO    !!!!!! IMPORTANT !!!!!! - -If you are interested in adding your pipeline to the nf-core community, -PLEASE COME AND TALK TO US IN THE NF-CORE SLACK BEFORE WRITING ANY CODE! - -Please read: https://nf-co.re/developers/adding_pipelines#join-the-community - - - - diff --git a/docs/images/nf-core-download-tree.svg b/docs/images/nf-core-download-tree.svg deleted file mode 100644 index fc9585c8c9..0000000000 --- a/docs/images/nf-core-download-tree.svg +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ tree -L 2 nf-core-rnaseq/ -nf-core-rnaseq/ -├── 3_8 -│   ├── CHANGELOG.md -│   ├── CITATIONS.md -│   ├── CODE_OF_CONDUCT.md -│   ├── LICENSE -│   ├── README.md -│   ├── assets -│   ├── bin -│   ├── conf -│   ├── docs -│   ├── lib -│   ├── main.nf -│   ├── modules -│   ├── modules.json -│   ├── nextflow.config -│   ├── nextflow_schema.json -│   ├── subworkflows -│   ├── tower.yml -│   └── workflows -└── configs -    ├── CITATION.cff -    ├── LICENSE -    ├── README.md -    ├── bin -    ├── conf -    ├── configtest.nf -    ├── docs -    ├── nextflow.config -    ├── nfcore_custom.config -    └── pipeline - -14 directories, 16 files - - - - diff --git a/docs/images/nf-core-download.svg b/docs/images/nf-core-download.svg deleted file mode 100644 index 5594930fa7..0000000000 --- a/docs/images/nf-core-download.svg +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core download rnaseq -r 3.8 --outdir nf-core-rnaseq -x none -s none -d - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -WARNING  Could not find GitHub authentication token. Some API requests may fail.                     -INFO     Saving 'nf-core/rnaseq' -          Pipeline revision: '3.8' -          Use containers: 'none' -          Container library: 'quay.io' -          Output directory: 'nf-core-rnaseq' -          Include default institutional configuration: 'True' -INFO     Downloading centralised configs from GitHub                                                 -INFO     Downloading workflow files from GitHub                                                      - - - - diff --git a/docs/images/nf-core-launch-rnaseq.svg b/docs/images/nf-core-launch-rnaseq.svg deleted file mode 100644 index f2608fe76f..0000000000 --- a/docs/images/nf-core-launch-rnaseq.svg +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core launch rnaseq -r 3.8.1 - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -INFO     NOTE: This tool ignores any pipeline parameter defaults overwritten by Nextflow config      -         files or profiles                                                                           - -INFO     Downloading workflow: nf-core/rnaseq (3.8.1) - - - - diff --git a/docs/images/nf-core-licences.svg b/docs/images/nf-core-licences.svg deleted file mode 100644 index 8cc00c351b..0000000000 --- a/docs/images/nf-core-licences.svg +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core licences deepvariant - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -INFO     Fetching licence information for 8 tools                                                    - - - - diff --git a/docs/images/nf-core-lint.svg b/docs/images/nf-core-lint.svg deleted file mode 100644 index 2e55a7e11e..0000000000 --- a/docs/images/nf-core-lint.svg +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core lint - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Testing pipeline: . - - -╭─[?] 1 Pipeline Test Ignored────────────────────────────────────────────────────────────────────╮ - -pipeline_todos: pipeline_todos                                                                   - -╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ -╭─[!] 1 Pipeline Test Warning────────────────────────────────────────────────────────────────────╮ - -readme: README contains the placeholder zenodo.XXXXXXX. This should be replaced with the zenodo  -doi (after the first release).                                                                   - -╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ - - -╭──────────────────────╮ -LINT RESULTS SUMMARY -├──────────────────────┤ -[✔] 188 Tests Passed -[?]   1 Test Ignored -[!]   1 Test Warning -[✗]   0 Tests Failed -╰──────────────────────╯ - - - - diff --git a/docs/images/nf-core-list-rna.svg b/docs/images/nf-core-list-rna.svg deleted file mode 100644 index 643545c6fc..0000000000 --- a/docs/images/nf-core-list-rna.svg +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core list rna rna-seq - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓ -Have latest         -Pipeline Name       StarsLatest Release    ReleasedLast Pulledrelease?            -┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━┩ -│ rnaseq               │   742 │         3.14.0 │ 2 months ago │           - │ -                   │ -│ differentialabundan… │    38 │          1.4.0 │ 3 months ago │           - │ -                   │ -│ smrnaseq             │    64 │          2.3.0 │   6 days ago │           - │ -                   │ -│ rnasplice            │    25 │          1.0.3 │   6 days ago │           - │ -                   │ -│ circrna              │    34 │            dev │  1 weeks ago │           - │ -                   │ -│ scrnaseq             │   125 │          2.5.1 │ 1 months ago │           - │ -                   │ -│ rnafusion            │   126 │          3.0.1 │ 3 months ago │           - │ -                   │ -│ spatialtranscriptom… │    36 │            dev │  4 weeks ago │           - │ -                   │ -│ dualrnaseq           │    16 │          1.0.0 │  3 years ago │           - │ -                   │ -│ marsseq              │     5 │          1.0.3 │ 8 months ago │           - │ -                   │ -│ lncpipe              │    28 │            dev │  1 years ago │           - │ -                   │ -│ scflow               │    24 │            dev │  3 years ago │           - │ -                   │ -└──────────────────────┴───────┴────────────────┴──────────────┴─────────────┴─────────────────────┘ - - - - diff --git a/docs/images/nf-core-list-stars.svg b/docs/images/nf-core-list-stars.svg deleted file mode 100644 index 8ea120599f..0000000000 --- a/docs/images/nf-core-list-stars.svg +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core list -s stars - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓ -Have latest         -Pipeline Name      StarsLatest Release     ReleasedLast Pulledrelease?            -┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━┩ -│ rnaseq              │   742 │         3.14.0 │  2 months ago │           - │ -                   │ -│ sarek               │   320 │          3.4.0 │  4 months ago │           - │ -                   │ -│ mag                 │   175 │          2.5.4 │   2 weeks ago │           - │ -                   │ -│ chipseq             │   161 │          2.0.0 │   1 years ago │           - │ -                   │ -[..truncated..] - - - - diff --git a/docs/images/nf-core-list.svg b/docs/images/nf-core-list.svg deleted file mode 100644 index 5e4939f746..0000000000 --- a/docs/images/nf-core-list.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core list - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓ -Have latest         -Pipeline Name      StarsLatest Release     ReleasedLast Pulledrelease?            -┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━┩ -│ raredisease         │    65 │          1.1.1 │  7 months ago │           - │ -                   │ -│ fetchngs            │   101 │         1.11.0 │  4 months ago │           - │ -                   │ -│ sarek               │   320 │          3.4.0 │  4 months ago │           - │ -                   │ -│ methylseq           │   126 │          2.6.0 │  2 months ago │           - │ -                   │ -│ rnaseq              │   742 │         3.14.0 │  2 months ago │           - │ -                   │ -[..truncated..] - - - - diff --git a/docs/images/nf-core-logo.png b/docs/images/nf-core-logo.png deleted file mode 100644 index 95a519194b5d59677304317ce84d9a2d72abf4ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17930 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 I&MBb@0Dk*Wz5oCK diff --git a/docs/images/nf-core-modules-bump-version.svg b/docs/images/nf-core-modules-bump-version.svg deleted file mode 100644 index 093a0cebc6..0000000000 --- a/docs/images/nf-core-modules-bump-version.svg +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core modules bump-versions fastqc - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - - -╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ -[!] 1 Module version up to date. -╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ -╭──────────────────────────────────────────┬───────────────────────────────────────────────────────╮ -Module name                             Update Message                                        -├──────────────────────────────────────────┼───────────────────────────────────────────────────────┤ - fastqc                                    Module version up to date: fastqc                      -╰──────────────────────────────────────────┴───────────────────────────────────────────────────────╯ - - - - diff --git a/docs/images/nf-core-modules-create.svg b/docs/images/nf-core-modules-create.svg deleted file mode 100644 index caa9c389f0..0000000000 --- a/docs/images/nf-core-modules-create.svg +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core modules create fastqc --author @nf-core-bot  --label process_low --meta --force - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Repository type: modules -INFO    Press enter to use default values (shown in brackets)or type your own responses.  -ctrl+click underlined text to open links. -INFO     Using Bioconda package: 'bioconda::fastqc=0.12.1' - - - - diff --git a/docs/images/nf-core-modules-info.svg b/docs/images/nf-core-modules-info.svg deleted file mode 100644 index 255c595e7c..0000000000 --- a/docs/images/nf-core-modules-info.svg +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core modules info abacas - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -╭─ Module: abacas  ────────────────────────────────────────────────────────────────────────────────╮ -│ 🌐 Repository: https://github.com/nf-core/modules.git                                            │ -│ 🔧 Tools: abacas                                                                                 │ -│ 📖 Description: contiguate draft genome assembly                                                 │ -╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ -                  ╷                                                                   ╷              -📥 Inputs        Description                                                             Pattern -╺━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━╸ - meta  (map)     │Groovy Map containing sample information e.g. [ id:'test',         │ -                  │single_end:false ]                                                 │ -╶─────────────────┼───────────────────────────────────────────────────────────────────┼────────────╴ - scaffold  (file)│Fasta file containing scaffold                                     │*.{fasta,fa} -╶─────────────────┼───────────────────────────────────────────────────────────────────┼────────────╴ - fasta  (file)   │FASTA reference file                                               │*.{fasta,fa} -                  ╵                                                                   ╵              -                  ╷                                                                   ╷              -📤 Outputs       Description                                                             Pattern -╺━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━╸ - meta  (map)     │Groovy Map containing sample information e.g. [ id:'test',         │ -                  │single_end:false ]                                                 │ -╶─────────────────┼───────────────────────────────────────────────────────────────────┼────────────╴ - results  (file) │List containing abacas output files [ 'test.abacas.bin',           │ *.{abacas}* -                  │'test.abacas.fasta', 'test.abacas.gaps', 'test.abacas.gaps.tab',   │ -                  │'test.abacas.nucmer.delta', 'test.abacas.nucmer.filtered.delta',   │ -                  │'test.abacas.nucmer.tiling', 'test.abacas.tab',                    │ -                  │'test.abacas.unused.contigs.out', 'test.abacas.MULTIFASTA.fa' ]    │ -╶─────────────────┼───────────────────────────────────────────────────────────────────┼────────────╴ - versions  (file)│File containing software versions                                  │versions.yml -                  ╵                                                                   ╵              - - 💻  Installation command: nf-core modules install abacas - - - - - diff --git a/docs/images/nf-core-modules-install.svg b/docs/images/nf-core-modules-install.svg deleted file mode 100644 index 2b0331bcaa..0000000000 --- a/docs/images/nf-core-modules-install.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core modules install abacas - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Installing 'abacas' -INFO     Use the following statement to include this module:                                         - - include { ABACAS } from '../modules/nf-core/abacas/main'                                            - - - - - diff --git a/docs/images/nf-core-modules-lint.svg b/docs/images/nf-core-modules-lint.svg deleted file mode 100644 index 2809eeee22..0000000000 --- a/docs/images/nf-core-modules-lint.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core modules lint multiqc - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Linting modules repo: '.' -INFO     Linting module: 'multiqc' - - - - diff --git a/docs/images/nf-core-modules-list-local.svg b/docs/images/nf-core-modules-list-local.svg deleted file mode 100644 index ecb9ed499a..0000000000 --- a/docs/images/nf-core-modules-list-local.svg +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core modules list local - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Modules installed in '.':                                                                   - -self.repo_type='pipeline' -┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓ -Module NameRepository           Version SHA          Message              Date       -┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩ -│ fastqc      │ https://github.com/n… │ f4ae1d942bd50c5c0b9b… │ Update FASTQC to use  │ 2024-01-31 │ -│             │                       │                       │ unique names for      │            │ -│             │                       │                       │ snapshots (#4825)     │            │ -│ multiqc     │ https://github.com/n… │ b7ebe95761cd389603f9… │ Update MQC container  │ 2024-02-29 │ -│             │                       │                       │ (#5006)               │            │ -└─────────────┴───────────────────────┴───────────────────────┴───────────────────────┴────────────┘ - - - - diff --git a/docs/images/nf-core-modules-list-remote.svg b/docs/images/nf-core-modules-list-remote.svg deleted file mode 100644 index 138be73068..0000000000 --- a/docs/images/nf-core-modules-list-remote.svg +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core modules list remote - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Modules available from https://github.com/nf-core/modules.git(master):                     - -┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ -Module Name                                           -┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ -│ abacas                                                │ -│ abricate/run                                          │ -│ abricate/summary                                      │ -│ abritamr/run                                          │ -│ adapterremoval                                        │ -│ adapterremovalfixprefix                               │ -│ admixture                                             │ -│ affy/justrma                                          │ -│ agat/convertspgff2gtf                                 │ -[..truncated..] - - - - diff --git a/docs/images/nf-core-modules-patch.svg b/docs/images/nf-core-modules-patch.svg deleted file mode 100644 index 5ed5e2f4d1..0000000000 --- a/docs/images/nf-core-modules-patch.svg +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core modules patch fastqc - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Changes in module 'nf-core/fastqc' -INFO    'modules/nf-core/fastqc/environment.yml' is unchanged                                       -INFO    'modules/nf-core/fastqc/meta.yml' is unchanged                                              -INFO     Changes in 'fastqc/main.nf':                                                                - ---- modules/nf-core/fastqc/main.nf -+++ modules/nf-core/fastqc/main.nf -@@ -1,6 +1,6 @@ -process FASTQC {                                                                                   -    tag "$meta.id"                                                                                 --    label 'process_medium' -+    label 'process_low' - -    conda "${moduleDir}/environment.yml"                                                           -    container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_  - - -INFO    'modules/nf-core/fastqc/tests/tags.yml' is unchanged                                        -INFO    'modules/nf-core/fastqc/tests/main.nf.test' is unchanged                                    -INFO    'modules/nf-core/fastqc/tests/main.nf.test.snap' is unchanged                               -INFO     Patch file of 'modules/nf-core/fastqc' written to 'modules/nf-core/fastqc/fastqc.diff' - - - - diff --git a/docs/images/nf-core-modules-remove.svg b/docs/images/nf-core-modules-remove.svg deleted file mode 100644 index 91f7020043..0000000000 --- a/docs/images/nf-core-modules-remove.svg +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core modules remove abacas - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Removed files for 'abacas' and its dependencies 'abacas'.                                   - - - - diff --git a/docs/images/nf-core-modules-test.svg b/docs/images/nf-core-modules-test.svg deleted file mode 100644 index 52e86ba826..0000000000 --- a/docs/images/nf-core-modules-test.svg +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core modules test fastqc --no-prompts - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Generating nf-test snapshot                                                                 - - - - diff --git a/docs/images/nf-core-modules-update.svg b/docs/images/nf-core-modules-update.svg deleted file mode 100644 index 23d9931ce2..0000000000 --- a/docs/images/nf-core-modules-update.svg +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core modules update --all --no-preview - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO    'modules/nf-core/abacas' is already up to date                                              -INFO    'modules/nf-core/fastqc' is already up to date                                              -INFO    'modules/nf-core/multiqc' is already up to date                                             -INFO     Updates complete ✨                                                                         - - - - diff --git a/docs/images/nf-core-schema-build.svg b/docs/images/nf-core-schema-build.svg deleted file mode 100644 index 7236440a0d..0000000000 --- a/docs/images/nf-core-schema-build.svg +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core schema build --no-prompts - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -INFO    [] Default parameters match schema validation -INFO    [] Pipeline schema looks valid(found 30 params) -INFO     Writing schema with 31 params: 'nextflow_schema.json' - - - - diff --git a/docs/images/nf-core-schema-lint.svg b/docs/images/nf-core-schema-lint.svg deleted file mode 100644 index d08a01144b..0000000000 --- a/docs/images/nf-core-schema-lint.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core schema lint - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -INFO    [] Default parameters match schema validation -INFO    [] Pipeline schema looks valid(found 31 params) - - - - diff --git a/docs/images/nf-core-schema-validate.svg b/docs/images/nf-core-schema-validate.svg deleted file mode 100644 index 33984ccbeb..0000000000 --- a/docs/images/nf-core-schema-validate.svg +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core schema validate nf-core-rnaseq/3_8 nf-params.json - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -INFO    [] Default parameters match schema validation -INFO    [] Pipeline schema looks valid(found 93 params) -INFO    [] Input parameters look valid - - - - diff --git a/docs/images/nf-core-subworkflows-create.svg b/docs/images/nf-core-subworkflows-create.svg deleted file mode 100644 index fd20914cfe..0000000000 --- a/docs/images/nf-core-subworkflows-create.svg +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core subworkflows create bam_stats_samtools --author @nf-core-bot --force - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Repository type: modules -INFO    Press enter to use default values (shown in brackets)or type your own responses.  -ctrl+click underlined text to open links. -INFO     Created component template: 'bam_stats_samtools' -INFO     Created following files:                                                                    -           subworkflows/nf-core/bam_stats_samtools/main.nf                                           -           subworkflows/nf-core/bam_stats_samtools/meta.yml                                          -           subworkflows/nf-core/bam_stats_samtools/tests/tags.yml                                    -           subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test                                - - - - diff --git a/docs/images/nf-core-subworkflows-info.svg b/docs/images/nf-core-subworkflows-info.svg deleted file mode 100644 index b3f4f38ed3..0000000000 --- a/docs/images/nf-core-subworkflows-info.svg +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core subworkflows info bam_rseqc - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -╭─ Subworkflow: bam_rseqc  ────────────────────────────────────────────────────────────────────────╮ -│ 🌐 Repository: https://github.com/nf-core/modules.git                                            │ -│ 📖 Description: Subworkflow to run multiple commands in the RSeqC package                        │ -╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ -[..truncated..] - readduplication_rscript  (file)    │script to reproduce the plot       │                      *.R -╶────────────────────────────────────┼───────────────────────────────────┼─────────────────────────╴ - tin_txt  (file)                    │TXT file containing tin.py results │                    *.txt -                                     │summary                            │ -╶────────────────────────────────────┼───────────────────────────────────┼─────────────────────────╴ - versions  (file)                   │File containing software versions  │             versions.yml -                                     ╵                                   ╵                           - - 💻  Installation command: nf-core subworkflows install bam_rseqc - - - - - diff --git a/docs/images/nf-core-subworkflows-install.svg b/docs/images/nf-core-subworkflows-install.svg deleted file mode 100644 index 8c86c3a7e4..0000000000 --- a/docs/images/nf-core-subworkflows-install.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core subworkflows install bam_rseqc - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Installing 'bam_rseqc' -INFO     Use the following statement to include this subworkflow:                                    - - include { BAM_RSEQC } from '../subworkflows/nf-core/bam_rseqc/main'                                 - - - - - diff --git a/docs/images/nf-core-subworkflows-lint.svg b/docs/images/nf-core-subworkflows-lint.svg deleted file mode 100644 index 7e827661ac..0000000000 --- a/docs/images/nf-core-subworkflows-lint.svg +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core subworkflows lint bam_stats_samtools - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Linting modules repo: '.' -INFO     Linting subworkflow: 'bam_stats_samtools' - -╭─[!] 14 Subworkflow Test Warnings───────────────────────────────────────────────────────────────╮ -                     ╷                                     ╷                                       -Subworkflow name   File path                          Test message                         -╶────────────────────┼─────────────────────────────────────┼─────────────────────────────────────╴ -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in main.nf.test//Add  -all required assertions to verify  -the test output. -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in main.nf.testAdd  -tags for all modules used within  -this subworkflow. Example: -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in main.nf.testChange  -the test name preferably indicating  -the test-data and file-format used -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in main.nf.testOnce  -you have added the required tests,  -please run the following command to  -build this file: -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in main.nf.testdefine  -inputs of the workflow here.  -Example: -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in main.nf -subworkflow SHOULD import at least  -two modules -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in main.nfIf in doubt  -look at other nf-core/subworkflows  -to see how we are doing things! :) -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in main.nfedit emitted -channels -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in main.nfedit input  -(take) channels -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in main.nfsubstitute  -modules here for the modules of your -subworkflow -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in meta.yml#Add a  -description of the subworkflow and  -list keywords -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in meta.yml#Add a list -of the modules and/or subworkflows  -used in the subworkflow -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in meta.yml#List all  -of the channels used as input with a -description and their structure -bam_stats_samtools subworkflows/nf-core/bam_stats_sam…TODO string in meta.yml#List all  -of the channels used as output with  -a descriptions and their structure -                     ╵                                     ╵                                       -╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ -╭───────────────────────╮ -LINT RESULTS SUMMARY -├───────────────────────┤ -[✔]  42 Tests Passed  -[!]  14 Test Warnings -[✗]   0 Tests Failed  -╰───────────────────────╯ - - - - diff --git a/docs/images/nf-core-subworkflows-list-local.svg b/docs/images/nf-core-subworkflows-list-local.svg deleted file mode 100644 index 6bec883e1f..0000000000 --- a/docs/images/nf-core-subworkflows-list-local.svg +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core subworkflows list local - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Subworkflows installed in '.':                                                              - -self.repo_type='pipeline' -┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓ -Subworkflow Name   Repository        Version SHA        Message           Date       -┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩ -│ utils_nextflow_pip… │ https://github.co… │ 5caf7640a9ef1d18d7… │ remove             │ 2024-02-28 │ -│                     │                    │                     │ params.outdir from │            │ -│                     │                    │                     │ modules and        │            │ -│                     │                    │                     │ subworfklows tests │            │ -│                     │                    │                     │ (#5007)            │            │ -│ utils_nfcore_pipel… │ https://github.co… │ 5caf7640a9ef1d18d7… │ remove             │ 2024-02-28 │ -│                     │                    │                     │ params.outdir from │            │ -│                     │                    │                     │ modules and        │            │ -[..truncated..] - - - - diff --git a/docs/images/nf-core-subworkflows-list-remote.svg b/docs/images/nf-core-subworkflows-list-remote.svg deleted file mode 100644 index 704c2e9a45..0000000000 --- a/docs/images/nf-core-subworkflows-list-remote.svg +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core subworkflows list remote - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Subworkflows available from https://github.com/nf-core/modules.git(master):                - -┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ -Subworkflow Name                              -┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ -│ bam_cnv_wisecondorx                           │ -│ bam_create_som_pon_gatk                       │ -│ bam_dedup_stats_samtools_umitools             │ -│ bam_docounts_contamination_angsd              │ -│ bam_markduplicates_picard                     │ -│ bam_markduplicates_samtools                   │ -│ bam_ngscheckmate                              │ -│ bam_qc_picard                                 │ -│ bam_rseqc                                     │ -[..truncated..] - - - - diff --git a/docs/images/nf-core-subworkflows-remove.svg b/docs/images/nf-core-subworkflows-remove.svg deleted file mode 100644 index 42c576f4c5..0000000000 --- a/docs/images/nf-core-subworkflows-remove.svg +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core subworkflows remove bam_rseqc - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Removed files for 'rseqc/bamstat' and its dependencies 'rseqc/bamstat'.                     -INFO     Removed files for 'rseqc/inferexperiment' and its dependencies 'rseqc/inferexperiment'.     -INFO     Removed files for 'rseqc/innerdistance' and its dependencies 'rseqc/innerdistance'.         -INFO     Removed files for 'rseqc/junctionannotation' and its dependencies                           -'rseqc/junctionannotation'.                                                                 -INFO     Removed files for 'rseqc/junctionsaturation' and its dependencies                           -'rseqc/junctionsaturation'.                                                                 -INFO     Removed files for 'rseqc/readdistribution' and its dependencies 'rseqc/readdistribution'.   -INFO     Removed files for 'rseqc/readduplication' and its dependencies 'rseqc/readduplication'.     -INFO     Removed files for 'rseqc/tin' and its dependencies 'rseqc/tin'.                             -INFO     Removed files for 'bam_rseqc' and its dependencies 'bam_rseqc, rseqc_bamstat,  -rseqc_inferexperiment, rseqc_innerdistance, rseqc_junctionannotation,  -rseqc_junctionsaturation, rseqc_readdistribution, rseqc_readduplication, rseqc_tin'.        - - - - diff --git a/docs/images/nf-core-subworkflows-test.svg b/docs/images/nf-core-subworkflows-test.svg deleted file mode 100644 index 9cda6beda6..0000000000 --- a/docs/images/nf-core-subworkflows-test.svg +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core subworkflows test bam_rseqc --no-prompts - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO     Generating nf-test snapshot                                                                 - - - - diff --git a/docs/images/nf-core-subworkflows-update.svg b/docs/images/nf-core-subworkflows-update.svg deleted file mode 100644 index 3398899b7e..0000000000 --- a/docs/images/nf-core-subworkflows-update.svg +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core subworkflows update --all --no-preview - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - - -INFO    'subworkflows/nf-core/bam_rseqc' is already up to date                                      -INFO    'subworkflows/nf-core/utils_nextflow_pipeline' is already up to date                        -INFO    'subworkflows/nf-core/utils_nfcore_pipeline' is already up to date                          -INFO    'subworkflows/nf-core/utils_nfvalidation_plugin' is already up to date                      -INFO     Updates complete ✨                                                                         - - - - diff --git a/docs/images/nf-core-sync.svg b/docs/images/nf-core-sync.svg deleted file mode 100644 index b2c6d734fc..0000000000 --- a/docs/images/nf-core-sync.svg +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $ nf-core sync - -                                          ,--./,-. -          ___     __   __   __   ___     /,-._.--~\ -    |\ | |__  __ /  ` /  \ |__) |__         }  { -    | \| |       \__, \__/ |  \ |___     \`-._,-`-, -                                          `._,._,' - -    nf-core/tools version 2.13.1 - https://nf-co.re - - -WARNING  Could not find GitHub authentication token. Some API requests may fail.                     -INFO     Pipeline directory: /home/runner/work/tools/tools/tmp/nf-core-nextbigthing -INFO     Original pipeline repository branch is 'master' -INFO     Deleting all files in 'TEMPLATE' branch                                                     -INFO     Making a new template pipeline using pipeline variables                                     -INFO     Committed changes to 'TEMPLATE' branch                                                      -INFO     Checking out original branch: 'master' -INFO     Now try to merge the updates in to your pipeline:                                           -           cd /home/runner/work/tools/tools/tmp/nf-core-nextbigthing -           git merge TEMPLATE                                                                        - - - - diff --git a/docs/images/nfcore-tools_logo_dark.png b/docs/images/nfcore-tools_logo_dark.png deleted file mode 100644 index 1b9cc02b17522232a22912d2e069f87db0ed823e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64937 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%0D6Aha9ZZvy3Owj0R@{kHIA1_W(q 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 diff --git a/docs/images/nfcore-tools_logo_light.png b/docs/images/nfcore-tools_logo_light.png deleted file mode 100644 index cc4ccea1cb12e60311b513bc7de0c339ebd591cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64856 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�ev`Q}H7y#R1zKkC5n?0_OP7^FqWWeXhX0t0pNK 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

)bNtXB<>| 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 From 961a17b1fc223bdd3a07cca42f6bbfdb0c147636 Mon Sep 17 00:00:00 2001 From: mashehu Date: Mon, 13 May 2024 11:44:35 +0200 Subject: [PATCH 2/4] fix links in api_ref index page --- docs/api/_src/index.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/api/_src/index.md b/docs/api/_src/index.md index 17bf2407f5..af3813bc51 100644 --- a/docs/api/_src/index.md +++ b/docs/api/_src/index.md @@ -16,7 +16,6 @@ This documentation is for the `nf-core/tools` package. ## Contents -- [Pipeline code lint tests](pipeline_lint_tests/index.md) (run by `nf-core lint`) -- [Module code lint tests](module_lint_tests/index.md) (run by `nf-core modules lint`) -- [Subworkflow code lint tests](subworkflow_lint_tests/index.md) (run by `nf-core subworkflows lint`) -- [nf-core/tools Python package API reference](api/index.md) +- [Pipeline code lint tests](pipeline_lint_tests/) (run by `nf-core lint`) +- [Module code lint tests](module_lint_tests/) (run by `nf-core modules lint`) +- [Subworkflow code lint tests](subworkflow_lint_tests/) (run by `nf-core subworkflows lint`) From 25c6ff47e000a18d2e59f343a26f183a7789c583 Mon Sep 17 00:00:00 2001 From: mashehu Date: Mon, 13 May 2024 15:01:38 +0200 Subject: [PATCH 3/4] update getting started link --- nf_core/create.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nf_core/create.py b/nf_core/create.py index b420b1c86d..59db7fa4af 100644 --- a/nf_core/create.py +++ b/nf_core/create.py @@ -259,8 +259,8 @@ def init_pipeline(self): "[green bold]!!!!!! IMPORTANT !!!!!!\n\n" "[green not bold]If you are interested in adding your pipeline to the nf-core community,\n" "PLEASE COME AND TALK TO US IN THE NF-CORE SLACK BEFORE WRITING ANY CODE!\n\n" - "[default]Please read: [link=https://nf-co.re/developers/adding_pipelines#join-the-community]" - "https://nf-co.re/developers/adding_pipelines#join-the-community[/link]" + "[default]Please read: [link=https://nf-co.re/docs/tutorials/adding_a_pipeline/overview#join-the-community]" + "https://nf-co.re/docs/tutorials/adding_a_pipeline/overview#join-the-community[/link]" ) def render_template(self): From 0fa391d2e8c846514d430776afdb8a1739708900 Mon Sep 17 00:00:00 2001 From: mirpedrol Date: Mon, 20 May 2024 16:32:48 +0200 Subject: [PATCH 4/4] fix contributing sentence --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4ed5e63734..85b608bf77 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ pip install --upgrade -r requirements-dev.txt -e . ## Contributions and Support -If you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md). +If you would like to contribute to this package, please see the [contributing guidelines](.github/CONTRIBUTING.md). For further information or help, don't hesitate to get in touch on the [Slack `#tools` channel](https://nfcore.slack.com/channels/tools) (you can join with [this invite](https://nf-co.re/join/slack)).