Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Special thanks to the following for their contributions to the release:
- [PR #1624](https://github.com/nf-core/rnaseq/pull/1624) - Document RSeQC inner_distance limitation for genomes with large chromosomes (>500 Mb), such as plant genomes
- [PR #1625](https://github.com/nf-core/rnaseq/pull/1625) - Add documentation warning about Qualimap read counting bug ([#1273](https://github.com/nf-core/rnaseq/issues/1273))
- [PR #1628](https://github.com/nf-core/rnaseq/pull/1628) - Template update for nf-core/tools v3.5.1
- [PR #1630](https://github.com/nf-core/rnaseq/pull/1630) - Fix arm64 profile to use pre-built ARM containers and update documentation
- [PR #1631](https://github.com/nf-core/rnaseq/pull/1631) - Fix bbsplit index staging by using symlinks instead of full copy

## [[3.21.0](https://github.com/nf-core/rnaseq/releases/tag/3.21.0)] - 2025-09-18
Expand Down
12 changes: 10 additions & 2 deletions conf/arm.config
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ process {
container = { workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/b0/b00189d4f7eed55199354a3dff8a9a535e1dfb3a2f4c97f5d0bf9e388105795e/data' : 'community.wave.seqera.io/library/fq:0.12.0--ad6857b304869ce9' }
}

withName: 'FQ_LINT' {
container = { workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/b0/b00189d4f7eed55199354a3dff8a9a535e1dfb3a2f4c97f5d0bf9e388105795e/data' : 'community.wave.seqera.io/library/fq:0.12.0--ad6857b304869ce9' }
}

withName: 'GFFREAD' {
container = { workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/9e/9e6db95013607b07689e38ee37a654d029236de77fdfde97fe1866f45d01e064/data' : 'community.wave.seqera.io/library/gffread:0.12.7--1577aa7c95340d9f' }
}
Expand Down Expand Up @@ -197,11 +201,11 @@ process {
}

withName: 'STAR_ALIGN' {
container = { workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/40/40d803371e50330de0773c7cc50315e2c3b4b41dcf123823adeb0a07d71654c1/data' : 'community.wave.seqera.io/library/htslib_samtools_star_gawk:ae438e9a604351a4' }
container = { workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/10/101ea47973178f85ff66a34de6a7462aaf99d947d3924c27ce8a2d5a63009065/data' : 'community.wave.seqera.io/library/htslib_samtools_star_gawk:de8c848656c2c4c5' }
}

withName: 'STAR_GENOMEGENERATE' {
container = { workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/40/40d803371e50330de0773c7cc50315e2c3b4b41dcf123823adeb0a07d71654c1/data' : 'community.wave.seqera.io/library/htslib_samtools_star_gawk:ae438e9a604351a4' }
container = { workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/10/101ea47973178f85ff66a34de6a7462aaf99d947d3924c27ce8a2d5a63009065/data' : 'community.wave.seqera.io/library/htslib_samtools_star_gawk:de8c848656c2c4c5' }
}

withName: 'STRINGTIE_STRINGTIE' {
Expand Down Expand Up @@ -232,6 +236,10 @@ process {
container = { workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/38/389312a4a6022c5f5d2510dfa9bedb0491b36c8a27e8d842c05de00bc3b5be76/data' : 'community.wave.seqera.io/library/ucsc-bedgraphtobigwig:469--1db18e1b19f8e5f1' }
}

withName: 'UMICOLLAPSE' {
container = { workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/4c/4c8b7641b14c16d52ea08c1ced6a8be4a686c9502de648228dc406d9642a9572/data' : 'community.wave.seqera.io/library/umicollapse:1.1.0--d406900dbf84ec60' }
}

withName: 'UMITOOLS_DEDUP' {
container = { workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/ba/ba7c02244236db73a56ff1eb880b16c2dd53679834e1b72bb096e1f633e35644/data' : 'community.wave.seqera.io/library/umi_tools:1.1.5--b2721816f7a92564' }
}
Expand Down
16 changes: 4 additions & 12 deletions docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,10 +181,6 @@ If you would like to reduce the number of reads used in the analysis, for exampl

## Alignment options

:::note
The `--aligner hisat2` option is not currently supported using ARM architecture ('-profile arm')
:::

By default, the pipeline uses [STAR](https://github.com/alexdobin/STAR) (i.e. `--aligner star_salmon`) to map the raw FastQ reads to the reference genome, project the alignments onto the transcriptome and to perform the downstream BAM-level quantification with [Salmon](https://salmon.readthedocs.io/en/latest/salmon.html). STAR is fast but requires a lot of memory to run, typically around 38GB for the Human GRCh37 reference genome. Both `--aligner star_salmon` and `--aligner star_rsem` use STAR for alignment, so you should use the [HISAT2](https://ccb.jhu.edu/software/hisat2/index.shtml) aligner (i.e. `--aligner hisat2`) if you have memory limitations.

You also have the option to pseudoalign and quantify your data directly with [Salmon](https://salmon.readthedocs.io/en/latest/salmon.html) or [Kallisto](https://pachterlab.github.io/kallisto/) by specifying `salmon` or `kallisto` to the `--pseudo_aligner` parameter. The selected pseudoaligner will then be run in addition to the standard alignment workflow defined by `--aligner`, mainly because it allows you to obtain QC metrics with respect to the genomic alignments. However, you can provide the `--skip_alignment` parameter if you would like to run Salmon or Kallisto in isolation. By default, the pipeline will use the genome fasta and gtf file to generate the transcripts fasta file, and then to build the Salmon index. You can override these parameters using the `--transcript_fasta` and `--salmon_index` parameters, respectively.
Expand Down Expand Up @@ -414,10 +410,6 @@ By default, the input GTF file will be filtered to ensure that sequence names co

## Contamination screening options

:::note
The `--contaminant_screening` option is not currently available using ARM architecture ('-profile arm')
:::

The pipeline provides the option to scan unaligned reads for contamination from other species using [Kraken2](https://ccb.jhu.edu/software/kraken2/), with the possibility of applying corrections from [Bracken](https://ccb.jhu.edu/software/bracken/). Since running Bracken is not computationally expensive, we recommend always using it to refine the abundance estimates generated by Kraken2.

It is important to note that the accuracy of Kraken2 is [highly dependent on the database](https://doi.org/10.1099/mgen.0.000949) used. Specifically, it is [crucial](https://doi.org/10.1128/mbio.01607-23) to ensure that the host genome is included in the database. If you are particularly concerned about certain contaminants, it may be beneficial to use a smaller, more focused database containing primarily those contaminants instead of the full standard database. Various pre-built databases [are available for download](https://benlangmead.github.io/aws-indexes/k2), and instructions for building a custom database can be found in the [Kraken2 documentation](https://github.com/DerrickWood/kraken2/blob/master/docs/MANUAL.markdown). Additionally, genomes of contaminants detected in previous sequencing experiments are available on the [OpenContami website](https://openlooper.hgc.jp/opencontami/help/help_oct.php).
Expand Down Expand Up @@ -496,7 +488,7 @@ You can also generate such `YAML`/`JSON` files via [nf-core/launch](https://nf-c
### Running on Linux ARM architectures

:::warning
Please note that the ARM profile is experimental. It is expected to function correctly in all cases unless explicitly indicated otherwise—currently, exceptions include the use of the hisat2 aligner and contaminant screening via kraken2. However, because testing is presently conducted manually, we cannot guarantee its reliability.
Please note that the ARM profile is experimental. However, because testing is presently conducted manually, we cannot guarantee its reliability.
:::

The pipeline can be executed in an ARM compatible mode by specifying the ARM profile, for example:
Expand All @@ -508,7 +500,7 @@ nextflow run \
--outdir <OUTDIR> \
--gtf <GTF> \
--fasta <GENOME FASTA> \
-profile docker,arm
-profile docker,arm64
```

This will use ARM-compatible containers, and apply a small number of overrides to Conda definitions to support ARM operations.
Expand Down Expand Up @@ -574,8 +566,8 @@ If `-profile` is not specified, the pipeline will run locally and expect all sof
- A generic configuration profile to enable [Wave](https://seqera.io/wave/) containers. Use together with one of the above (requires Nextflow ` 24.03.0-edge` or later).
- `conda`
- A generic configuration profile to be used with [Conda](https://conda.io/docs/). Please only use Conda as a last resort i.e. when it's not possible to run the pipeline with Docker, Singularity, Podman, Shifter, Charliecloud, or Apptainer.
- `arm`
- A configuration profile that will set `docker.runOptions` appropriately for ARM architectures, and apply overrides supplying ARM-compatible containers and Conda environments. See [Running on Linux ARM architectures](#running-on-linux-arm-architectures).
- `arm64`
- A configuration profile that applies overrides supplying ARM-compatible containers and Conda environments. See [Running on Linux ARM architectures](#running-on-linux-arm-architectures).

### `-resume`

Expand Down
11 changes: 2 additions & 9 deletions nextflow.config
Original file line number Diff line number Diff line change
Expand Up @@ -193,18 +193,11 @@ profiles {
}
arm64 {
process.arch = 'arm64'
// TODO https://github.com/nf-core/modules/issues/6694
// For now if you're using arm64 you have to use wave for the sake of the maintainers
// wave profile
apptainer.ociAutoPull = true
singularity.ociAutoPull = true
wave.enabled = true
wave.freeze = true
wave.strategy = 'conda,container'
includeConfig 'conf/arm.config'
}
emulate_amd64 {
// Run AMD64 containers on ARM hardware using emulation (slower but more compatible)
docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64'
includeConfig 'conf/arm.config'
}
singularity {
singularity.enabled = true
Expand Down