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
4 changes: 2 additions & 2 deletions .github/workflows/nf-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ concurrency:

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NFT_VER: "0.9.3"
NFT_VER: "0.9.5"
NFT_WORKDIR: "~"
NXF_ANSI_LOG: false
NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity
Expand Down Expand Up @@ -76,7 +76,7 @@ jobs:
- isMain: false
profile: "singularity"
NXF_VER:
- 25.10.0
- 26.04.0
- latest-everything
env:
NXF_ANSI_LOG: false
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@ testing*
null/
.nf-test*
test_fc
# pixi environments
.pixi/*
!.pixi/config.toml
1 change: 1 addition & 0 deletions .nf-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ lint:
- bin/cmgg_genelists
multiqc_config: false
nextflow_config: false
schema_params: false # TMP
template_strings:
- bin/cmgg_genelists
nf_test_content: false
Expand Down
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"markdown.styles": ["public/vscode_markdown.css"]
"markdown.styles": ["public/vscode_markdown.css"],
"nextflow.telemetry.enabled": false
}
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## 3.0.1dev

- Add parameter typing to make strict syntax runs work more properly
- Bumped minimal Nextflow version to 26.04.0 to allow for strict syntax and other improvements
- Fix an issue with `mosdepth` environment variables not being correctly set on GCP
- Bump `mosdepth` module to 0.3.14

Expand Down
12 changes: 11 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
[![GitHub Actions Linting Status](https://github.com/nf-cmgg/preprocessing/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-cmgg/preprocessing/actions/workflows/linting.yml)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)
[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)

[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.0-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)
[![Nextflow](https://img.shields.io/badge/version-%E2%89%A526.04.0-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)
[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.5.1-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.5.1)
[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)
[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)
Expand Down Expand Up @@ -59,6 +59,16 @@ nextflow run nf-cmgg/preprocessing \
> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_;
> see [docs](https://nf-co.re/usage/configuration#custom-configuration-files).

## Development environment

A [pixi](https://pixi.prefix.dev/latest/) development environment is available for this pipeline. Run the following command to install the environment:

```
pixi install
```

Then run `pixi shell` to enter the environment and start developing.

## Credits

nf-cmgg/preprocessing was originally written by the CMGG ICT team.
Expand Down
174 changes: 86 additions & 88 deletions conf/igenomes.config
Original file line number Diff line number Diff line change
Expand Up @@ -8,98 +8,96 @@
----------------------------------------------------------------------------------------
*/

params {
genomes {
GRCh38 {
// Genome reference
fai = "${params.igenomes_base}/Hsapiens/GRCh38/seq/GCA_000001405.15_GRCh38_full_plus_hs38d1_analysis_set.fna.fai"
fasta = "${params.igenomes_base}/Hsapiens/GRCh38/seq/GCA_000001405.15_GRCh38_full_plus_hs38d1_analysis_set.fna"
dict = "${params.igenomes_base}/Hsapiens/GRCh38/seq/GCA_000001405.15_GRCh38_full_plus_hs38d1_analysis_set.dict"
gtf = "${params.igenomes_base}/Hsapiens/GRCh38/seq/GCA_000001405.15_GRCh38_full_analysis_set.refseq_annotation.gtf"
params.genomes = [
GRCh38: [
// Genome reference
fai : "${params.igenomes_base}/Hsapiens/GRCh38/seq/GCA_000001405.15_GRCh38_full_plus_hs38d1_analysis_set.fna.fai",
fasta : "${params.igenomes_base}/Hsapiens/GRCh38/seq/GCA_000001405.15_GRCh38_full_plus_hs38d1_analysis_set.fna",
dict : "${params.igenomes_base}/Hsapiens/GRCh38/seq/GCA_000001405.15_GRCh38_full_plus_hs38d1_analysis_set.dict",
gtf : "${params.igenomes_base}/Hsapiens/GRCh38/seq/GCA_000001405.15_GRCh38_full_analysis_set.refseq_annotation.gtf",

// Aligner reference
bowtie2 = "${params.igenomes_base}/Hsapiens/GRCh38/bowtie2"
bwamem = "${params.igenomes_base}/Hsapiens/GRCh38/bwa"
bwamem2 = "${params.igenomes_base}/Hsapiens/GRCh38/bwamem2"
dragmap = "${params.igenomes_base}/Hsapiens/GRCh38/dragmap"
snap = "${params.igenomes_base}/Hsapiens/GRCh38/snapaligner"
star = "${params.igenomes_base}/Hsapiens/GRCh38/star"
// Aligner reference
bowtie2 : "${params.igenomes_base}/Hsapiens/GRCh38/bowtie2",
bwamem : "${params.igenomes_base}/Hsapiens/GRCh38/bwa",
bwamem2 : "${params.igenomes_base}/Hsapiens/GRCh38/bwamem2",
dragmap : "${params.igenomes_base}/Hsapiens/GRCh38/dragmap",
snap : "${params.igenomes_base}/Hsapiens/GRCh38/snapaligner",
star : "${params.igenomes_base}/Hsapiens/GRCh38/star",

// ROI's
roi_copgt = "${params.igenomes_base}/Hsapiens/GRCh38/regions/CMGG_coPGT-M_analyses_ROI_v1.bed"
roi_wes = "${params.igenomes_base}/Hsapiens/GRCh38/regions/CMGG_WES_analysis_ROI_v7.bed"
}
GRCm39 {
// Genome reference
fai = "${params.igenomes_base}/Mmusculus/GRCm39/seq/GCF_000001635.27_GRCm39_genomic.fna.fai"
fasta = "${params.igenomes_base}/Mmusculus/GRCm39/seq/GCF_000001635.27_GRCm39_genomic.fna"
dict = "${params.igenomes_base}/Mmusculus/GRCm39/seq/GCF_000001635.27_GRCm39_genomic.dict"
gtf = "${params.igenomes_base}/Mmusculus/GRCm39/seq/GCF_000001635.27_GRCm39_genomic.gtf"
// ROI's
roi_copgt : "${params.igenomes_base}/Hsapiens/GRCh38/regions/CMGG_coPGT-M_analyses_ROI_v1.bed",
roi_wes : "${params.igenomes_base}/Hsapiens/GRCh38/regions/CMGG_WES_analysis_ROI_v7.bed",
],
GRCm39: [
// Genome reference
fai : "${params.igenomes_base}/Mmusculus/GRCm39/seq/GCF_000001635.27_GRCm39_genomic.fna.fai",
fasta : "${params.igenomes_base}/Mmusculus/GRCm39/seq/GCF_000001635.27_GRCm39_genomic.fna",
dict : "${params.igenomes_base}/Mmusculus/GRCm39/seq/GCF_000001635.27_GRCm39_genomic.dict",
gtf : "${params.igenomes_base}/Mmusculus/GRCm39/seq/GCF_000001635.27_GRCm39_genomic.gtf",

// Aligner reference
bowtie2 = "${params.igenomes_base}/Mmusculus/GRCm39/bowtie2"
bwamem = "${params.igenomes_base}/Mmusculus/GRCm39/bwa"
bwamem2 = "${params.igenomes_base}/Mmusculus/GRCm39/bwamem2"
dragmap = "${params.igenomes_base}/Mmusculus/GRCm39/dragmap"
snap = "${params.igenomes_base}/Mmusculus/GRCm39/snapaligner"
star = "${params.igenomes_base}/Mmusculus/GRCm39/star"
}
mm10 {
// Genome reference
fai = "${params.igenomes_base}/Mmusculus/mm10/seq/mm10.fa.fai"
fasta = "${params.igenomes_base}/Mmusculus/mm10/seq/mm10.fa"
dict = "${params.igenomes_base}/Mmusculus/mm10/seq/mm10.dict"
gtf = "${params.igenomes_base}/Mmusculus/mm10/seq/Mus_musculus.GRCm38.102.chr.gtf"
// Aligner reference
bowtie2 : "${params.igenomes_base}/Mmusculus/GRCm39/bowtie2",
bwamem : "${params.igenomes_base}/Mmusculus/GRCm39/bwa",
bwamem2 : "${params.igenomes_base}/Mmusculus/GRCm39/bwamem2",
dragmap : "${params.igenomes_base}/Mmusculus/GRCm39/dragmap",
snap : "${params.igenomes_base}/Mmusculus/GRCm39/snapaligner",
star : "${params.igenomes_base}/Mmusculus/GRCm39/star",
],
mm10: [
// Genome reference
fai : "${params.igenomes_base}/Mmusculus/mm10/seq/mm10.fa.fai",
fasta : "${params.igenomes_base}/Mmusculus/mm10/seq/mm10.fa",
dict : "${params.igenomes_base}/Mmusculus/mm10/seq/mm10.dict",
gtf : "${params.igenomes_base}/Mmusculus/mm10/seq/Mus_musculus.GRCm38.102.chr.gtf",

// Aligner reference
bowtie2 = "${params.igenomes_base}/Mmusculus/mm10/bowtie2"
bwamem = "${params.igenomes_base}/Mmusculus/mm10/bwa"
bwamem2 = "${params.igenomes_base}/Mmusculus/mm10/bwamem2"
dragmap = "${params.igenomes_base}/Mmusculus/mm10/dragmap"
snap = "${params.igenomes_base}/Mmusculus/mm10/snapaligner"
star = "${params.igenomes_base}/Mmusculus/mm10/star"
}
GRCz11 {
// Genome reference
fai = "${params.igenomes_base}/Drerio/GRCz11/seq/GCF_000002035.6_GRCz11_genomic.fna.fai"
fasta = "${params.igenomes_base}/Drerio/GRCz11/seq/GCF_000002035.6_GRCz11_genomic.fna"
dict = "${params.igenomes_base}/Drerio/GRCz11/seq/GCF_000002035.6_GRCz11_genomic.dict"
gtf = "${params.igenomes_base}/Drerio/GRCz11/seq/GCF_000002035.6_GRCz11_genomic.gtf"
// Aligner reference
bowtie2 : "${params.igenomes_base}/Mmusculus/mm10/bowtie2",
bwamem : "${params.igenomes_base}/Mmusculus/mm10/bwa",
bwamem2 : "${params.igenomes_base}/Mmusculus/mm10/bwamem2",
dragmap : "${params.igenomes_base}/Mmusculus/mm10/dragmap",
snap : "${params.igenomes_base}/Mmusculus/mm10/snapaligner",
star : "${params.igenomes_base}/Mmusculus/mm10/star",
],
GRCz11: [
// Genome reference
fai : "${params.igenomes_base}/Drerio/GRCz11/seq/GCF_000002035.6_GRCz11_genomic.fna.fai",
fasta : "${params.igenomes_base}/Drerio/GRCz11/seq/GCF_000002035.6_GRCz11_genomic.fna",
dict : "${params.igenomes_base}/Drerio/GRCz11/seq/GCF_000002035.6_GRCz11_genomic.dict",
gtf : "${params.igenomes_base}/Drerio/GRCz11/seq/GCF_000002035.6_GRCz11_genomic.gtf",

// Aligner reference
bowtie2 = "${params.igenomes_base}/Drerio/GRCz11/bowtie2"
bwamem = "${params.igenomes_base}/Drerio/GRCz11/bwa"
bwamem2 = "${params.igenomes_base}/Drerio/GRCz11/bwamem2"
dragmap = "${params.igenomes_base}/Drerio/GRCz11/dragmap"
snap = "${params.igenomes_base}/Drerio/GRCz11/snapaligner"
star = "${params.igenomes_base}/Drerio/GRCz11/star"
}
// Legacy bcbio references
hg38 {
fai = "${params.igenomes_base}/Hsapiens/hg38/seq/hg38.fa.fai"
fasta = "${params.igenomes_base}/Hsapiens/hg38/seq/hg38.fa"
dict = "${params.igenomes_base}/Hsapiens/hg38/seq/hg38.dict"
gtf = "${params.igenomes_base}/Hsapiens/hg38/seq/hg38.gtf"
// Aligner reference
bowtie2 : "${params.igenomes_base}/Drerio/GRCz11/bowtie2",
bwamem : "${params.igenomes_base}/Drerio/GRCz11/bwa",
bwamem2 : "${params.igenomes_base}/Drerio/GRCz11/bwamem2",
dragmap : "${params.igenomes_base}/Drerio/GRCz11/dragmap",
snap : "${params.igenomes_base}/Drerio/GRCz11/snapaligner",
star : "${params.igenomes_base}/Drerio/GRCz11/star",
],
// Legacy bcbio references
hg38: [
fai : "${params.igenomes_base}/Hsapiens/hg38/seq/hg38.fa.fai",
fasta : "${params.igenomes_base}/Hsapiens/hg38/seq/hg38.fa",
dict : "${params.igenomes_base}/Hsapiens/hg38/seq/hg38.dict",
gtf : "${params.igenomes_base}/Hsapiens/hg38/seq/hg38.gtf",

bowtie2 = "${params.igenomes_base}/Hsapiens/hg38/bowtie2"
bwamem = "${params.igenomes_base}/Hsapiens/hg38/bwa"
bwamem2 = "${params.igenomes_base}/Hsapiens/hg38/bwamem2"
dragmap = "${params.igenomes_base}/Hsapiens/hg38/dragmap"
snap = "${params.igenomes_base}/Hsapiens/hg38/snapaligner"
star = "${params.igenomes_base}/Hsapiens/hg38/star"
}
'hg38-noalt' {
fai = "${params.igenomes_base}/Hsapiens/hg38-noalt/seq/hg38-noalt.fa.fai"
fasta = "${params.igenomes_base}/Hsapiens/hg38-noalt/seq/hg38-noalt.fa"
dict = "${params.igenomes_base}/Hsapiens/hg38-noalt/seq/hg38-noalt.dict"
gtf = "${params.igenomes_base}/Hsapiens/hg38-noalt/seq/hg38-noalt.gtf"
bowtie2 : "${params.igenomes_base}/Hsapiens/hg38/bowtie2",
bwamem : "${params.igenomes_base}/Hsapiens/hg38/bwa",
bwamem2 : "${params.igenomes_base}/Hsapiens/hg38/bwamem2",
dragmap : "${params.igenomes_base}/Hsapiens/hg38/dragmap",
snap : "${params.igenomes_base}/Hsapiens/hg38/snapaligner",
star : "${params.igenomes_base}/Hsapiens/hg38/star",
],
'hg38-noalt': [
fai : "${params.igenomes_base}/Hsapiens/hg38-noalt/seq/hg38-noalt.fa.fai",
fasta : "${params.igenomes_base}/Hsapiens/hg38-noalt/seq/hg38-noalt.fa",
dict : "${params.igenomes_base}/Hsapiens/hg38-noalt/seq/hg38-noalt.dict",
gtf : "${params.igenomes_base}/Hsapiens/hg38-noalt/seq/hg38-noalt.gtf",

bowtie2 = "${params.igenomes_base}/Hsapiens/hg38-noalt/bowtie2"
bwamem = "${params.igenomes_base}/Hsapiens/hg38-noalt/bwa"
bwamem2 = "${params.igenomes_base}/Hsapiens/hg38-noalt/bwamem2"
dragmap = "${params.igenomes_base}/Hsapiens/hg38-noalt/dragmap"
snap = "${params.igenomes_base}/Hsapiens/hg38-noalt/snapaligner"
star = "${params.igenomes_base}/Hsapiens/hg38-noalt/star"
}
}
}
bowtie2 : "${params.igenomes_base}/Hsapiens/hg38-noalt/bowtie2",
bwamem : "${params.igenomes_base}/Hsapiens/hg38-noalt/bwa",
bwamem2 : "${params.igenomes_base}/Hsapiens/hg38-noalt/bwamem2",
dragmap : "${params.igenomes_base}/Hsapiens/hg38-noalt/dragmap",
snap : "${params.igenomes_base}/Hsapiens/hg38-noalt/snapaligner",
star : "${params.igenomes_base}/Hsapiens/hg38-noalt/star",
],
]
109 changes: 104 additions & 5 deletions main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,104 @@ include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_prep
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/

params {

// Path to comma-separated or yaml file containing information about the samples in the experiment.
input: Path

// The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.
outdir: Path

// Email address for completion summary.
email: String?

// MultiQC report title. Printed as page header, used for filename if not otherwise specified.
multiqc_title: String?

genomes: Map = [:]

// Specify how many reads each split of a FastQ file contains. Set 0 to turn off splitting at all.
split_fastq: Integer = 100000000

// Directory containing gene list bed files for granular coverage analysis
genelists: Path?

// Git commit id for Institutional configs.
custom_config_version: String = 'main'

// Base directory for custom configs.
custom_config_base: String = 'https://raw.githubusercontent.com/nf-cmgg/configs/main'

// Institutional config name.
config_profile_name: String?

// Institutional config description.
config_profile_description: String?

// Institutional config contact information.
config_profile_contact: String?

// Institutional config URL link.
config_profile_url: String?

// Display version and exit.
version: Boolean = false

// Method used to save pipeline results to output directory.
publish_dir_mode: String = 'copy'

// Email address for completion summary, only when pipeline fails.
email_on_fail: String?

// Send plain-text email instead of HTML.
plaintext_email: Boolean = false

// File size limit when attaching MultiQC reports to summary emails.
max_multiqc_email_size: String = '25.MB'

// Do not use coloured log outputs.
monochrome_logs: Boolean = false

// Incoming hook URL for messaging service
hook_url: String?

// Custom config file to supply to MultiQC.
multiqc_config: Path?

// Custom logo file to supply to MultiQC. File name must also be set in the MultiQC config file
multiqc_logo: Path?

// Custom MultiQC yaml file containing HTML including a methods description.
multiqc_methods_description: Path?

// Boolean whether to validate parameters against the schema at runtime
validate_params: Boolean = true

// Base URL or local path to location of pipeline test dataset files
pipelines_testdata_base_path: String = 'https://raw.githubusercontent.com/nf-core/test-datasets/'

// Suffix to add to the trace report filename. Default is the date and time in the format yyyy-MM-dd_HH-mm-ss.
trace_report_suffix: String

// Display the help message.
help = false

// Display the full detailed help message.
help_full: Boolean = false

// Display hidden parameters in the help message (only works when --help or --help_full are provided).
show_hidden: Boolean = false

// Directory / URL base for iGenomes references.
igenomes_base: String = '/references/'

// Do not load the iGenomes reference config.
igenomes_ignore: Boolean = false

// Name of iGenomes reference.
genome: String?
}

workflow {

main:
Expand All @@ -47,10 +145,11 @@ workflow {
params.genomes,
params.genelists,
params.multiqc_config
? [file("${projectDir}/assets/multiqc_config.yml", checkIfExists: true), file(params.multiqc_config, checkIfExists: true)]
? [file("${projectDir}/assets/multiqc_config.yml", checkIfExists: true), params.multiqc_config]
: [file("${projectDir}/assets/multiqc_config.yml", checkIfExists: true)],
params.multiqc_logo ? file(params.multiqc_logo, checkIfExists: true) : [],
params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("${projectDir}/assets/methods_description_template.yml", checkIfExists: true),
params.multiqc_logo ? params.multiqc_logo : [],
params.multiqc_methods_description ? params.multiqc_methods_description : file("${projectDir}/assets/methods_description_template.yml", checkIfExists: true),
params.outdir
)

//
Expand All @@ -70,8 +169,8 @@ workflow {
demultiplex_logs = PREPROCESSING.out.demultiplex_logs.transpose()
demultiplex_fastq = PREPROCESSING.out.demultiplex_fastq.transpose()
demultiplex_interop = PREPROCESSING.out.demultiplex_interop.transpose(by: 1)
falco_html = PREPROCESSING.out.falco_html
falco_txt = PREPROCESSING.out.falco_txt
falco_html = PREPROCESSING.out.falco_html.transpose()
falco_txt = PREPROCESSING.out.falco_txt.transpose()
fastp_json = PREPROCESSING.out.fastp_json
fastp_html = PREPROCESSING.out.fastp_html
crams = PREPROCESSING.out.crams
Expand Down
Loading
Loading