Skip to content

Command Line Arguments

When launching the pipeline, several options are available to further configure the execution through command-line arguments. These settings (excluding Nextflow-specific arguments starting with - instead of --) can also be defined in the Params-file, which can be used to document execution more thoroughly. However, if you prefer to keep the params-file minimal, using command-line arguments is a valid approach.

Available Arguments

Profiles

Profiles are a powerful tool for customizing how the pipeline is executed. They can be used to adjust the execution environment, such as utilizing HPC systems or enabling containerization for processes. There are three preconfigured profiles: singularity, slurm and standard which can be enabled using the -profile flag when launching Nextflow. You can also combine multiple profiles like so:

nextflow run ... -profile <profile1>,<profile2>,<...>

You can also define your own profiles by changing the nextflow.config. Read the Nextflow documentation about profiles if you are interested in doing so.

Singularity

To ensure consistent and reproducible results, use the singularity profile, which runs pipeline processes in containers. The containers are pulled at runtime as needed, and they come prepackaged with all necessary dependencies for each process. Using the singularity profile is the recommended method as it provides consistency and avoids version conflicts.

Slurm

The slurm profile enables the pipeline to use the Slurm workload manager for distributing processes across a cluster environment. The actual distribution of processes is handled by Nextflow. However, note that the default resource values for processes may not work for your environment. Make sure to adjust them in the nextflow.config file accordingly.

Standard

The standard profile simply instructs Nextflow to run the pipeline locally, which is the default behavior. It also expects all required binaries to be in $PATH so no containers are used. This profile is enabled by default.

Quality Control

If desired, it is possible to skip the Quality Control (QC) steps (or individual subprocesses) during the pipeline execution. The following flags are available for skipping specific QC steps:

  • --skip_fastqc - Flag to skip FastQC

  • --skip_fastq_screen - Flag to skip FastQ Screen

  • --skip_multiqc - Flag to skip MultiQC

  • --skip_qc - Flag to skip all QC steps entirely

Config files

The processes MULTIQC and FASTQ_SCREEN need configuration files to run properly. By default, they use the files defined in assets/config but they can be changed with their respective parameters

  • --multiqc_config <path>

  • --fastq_screen_config <path>

Important: Working with FastQ-Screen databases within Nextflow can be tricky because you cannot access files outside of the project directory without staging them first. Because of this you have to move the databases into the assets/fastqs_databases directory and reference them relative to the project directory with the ${projectDir} variable which is substituted at runtime (Using other variables will not work). See the default config assets/config/fastqs_config.conf for an example.

Experimental features

CellRanger allows you to use a job scheduler like Slurm to distribute the subprocesses spawned by their pipelines. This can be used to significantly reduce runtime of the slow CELLRANGER_MULTI process. This feature is experimental and may cause pipelines running indefinitely without failing or processes being killed prematurely. For more information about cluster mode read this and this.

  • --cellranger_disable_ui - Flag to disable the Web-UI provided by the CellRanger processes (Safe to use)
  • --cellranger_enable_cluster - Flag to enable cluster mode
  • --cellranger_cluster_template <path> - Path to a .template file for your respective workload manager - default: assets/cluster_templates/slurm.template
  • --cellranger_max_jobs - Maximum amount of jobs that can be spawned by a single instance of the CellRanger process - default: 4
  • --cellranger_mem_per_core - Maximum amount of memory consumed per CPU