diff --git a/.editorconfig b/.editorconfig index 835c83d..70c7a9a 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,5 +8,5 @@ trim_trailing_whitespace = true indent_size = 4 indent_style = space -[*.{md,yml,yaml}] +[*.{md,yml,yaml,cff}] indent_size = 2 diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000..4533e2f --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,56 @@ +cff-version: 1.2.0 +message: "If you use `nf-core tools` in your work, please cite the `nf-core` publication" +authors: + - family-names: Ewels + given-names: Philip + - family-names: Peltzer + given-names: Alexander + - family-names: Fillinger + given-names: Sven + - family-names: Patel + given-names: Harshil + - family-names: Alneberg + given-names: Johannes + - family-names: Wilm + given-names: Andreas + - family-names: Ulysse Garcia + given-names: Maxime + - family-names: Di Tommaso + given-names: Paolo + - family-names: Nahnsen + given-names: Sven +title: "The nf-core framework for community-curated bioinformatics pipelines." +version: 2.4.1 +doi: 10.1038/s41587-020-0439-x +date-released: 2022-05-16 +url: https://github.com/nf-core/tools +prefered-citation: + type: article + authors: + - family-names: Ewels + given-names: Philip + - family-names: Peltzer + given-names: Alexander + - family-names: Fillinger + given-names: Sven + - family-names: Patel + given-names: Harshil + - family-names: Alneberg + given-names: Johannes + - family-names: Wilm + given-names: Andreas + - family-names: Ulysse Garcia + given-names: Maxime + - family-names: Di Tommaso + given-names: Paolo + - family-names: Nahnsen + given-names: Sven + doi: 10.1038/s41587-020-0439-x + journal: nature biotechnology + start: 276 + end: 278 + title: "The nf-core framework for community-curated bioinformatics pipelines." + issue: 3 + volume: 38 + year: 2020 + url: https://dx.doi.org/10.1038/s41587-020-0439-x diff --git a/README.md b/README.md index 918ab0c..875c5b4 100644 --- a/README.md +++ b/README.md @@ -199,6 +199,7 @@ Currently documentation is available for the following pipelines within specific - mag - [EVA](docs/pipeline/mag/eva.md) - rnafusion + - [HASTA](docs/pipeline/rnafusion/hasta.md) - [MUNIN](docs/pipeline/rnafusion/munin.md) - rnavar - [MUNIN](docs/pipeline/rnavar/munin.md) diff --git a/conf/cheaha.config b/conf/cheaha.config index 323a625..578259c 100644 --- a/conf/cheaha.config +++ b/conf/cheaha.config @@ -5,9 +5,15 @@ params { config_profile_url = 'https://www.uab.edu/cores/ircp/bds' } +env { + TMPDIR="$USER_SCRATCH" + SINGULARITY_TMPDIR="$USER_SCRATCH" +} + singularity { enabled = true autoMounts = true + runOptions = "--contain --workdir $USER_SCRATCH" } process { diff --git a/conf/google.config b/conf/google.config index 41f0e1f..6e8a45a 100644 --- a/conf/google.config +++ b/conf/google.config @@ -19,4 +19,6 @@ google.lifeSciences.preemptible = params.google_preemptible if (google.lifeSciences.preemptible) { process.errorStrategy = { task.exitStatus in [8,10,14] ? 'retry' : 'terminate' } process.maxRetries = 5 -} \ No newline at end of file +} + +process.machineType = { task.memory > task.cpus * 6.GB ? ['custom', task.cpus, task.cpus * 6656].join('-') : null } diff --git a/conf/hasta.config b/conf/hasta.config index 7e97e5a..c8c1f01 100644 --- a/conf/hasta.config +++ b/conf/hasta.config @@ -16,19 +16,29 @@ singularity { params { max_memory = 180.GB max_cpus = 36 - max_time = 336.h + max_time = 336.h } process { executor = 'slurm' - clusterOptions = { "-A $params.priority ${params.clusterOptions ?: ''}" } + clusterOptions = { "-A $params.priority ${params.clusterOptions ?: ''}" } } profiles { - dev_prio { + stub_prio { params { priority = 'development' clusterOptions = "--qos=low" + max_memory = 6.GB + max_cpus = 1 + max_time = 1.h + } + } + + dev_prio { + params { + priority = 'development' + clusterOptions = "--qos=low" } } diff --git a/conf/pipeline/raredisease/hasta.config b/conf/pipeline/raredisease/hasta.config index a076dbc..4c4d15e 100644 --- a/conf/pipeline/raredisease/hasta.config +++ b/conf/pipeline/raredisease/hasta.config @@ -1,5 +1,5 @@ process { - + withName:'PICARD_MARKDUPLICATES' { memory = { check_max( 90.GB * task.attempt, 'memory' ) } } @@ -7,7 +7,26 @@ process { cpus = { check_max( 16 * task.attempt, 'cpus' ) } memory = { check_max( 80.GB * task.attempt, 'memory' ) } } - withName:'QUALIMAP_BAMQC' { - ext.args = { "--java-mem-size=${task.memory.giga / 1.15 as long}G" } + withLabel:'sentieon' { + beforeScript = { "export PATH=\$PATH:\$SENTIEON_INSTALL_DIR/sentieon-genomics-202112.02/bin" } } -} \ No newline at end of file + withName: 'BCFTOOLS_VIEW' { + if (params.genome == 'GRCh37') { + ext.args = '--output-type z --apply-filters PASS --exclude "INFO/clinical_genomics_mipAF > 0.40 | INFO/swegenAF > 0.40 | INFO/clingen_ngiAF > 0.40 | INFO/gnomad_svAF > 0.40 "' + } else if (params.genome == 'GRCh38') { + ext.args = '--output-type z --apply-filters PASS --exclude "INFO/swegen_FRQ > 0.40"' + } + publishDir = [ + enabled: false, + ] + } + + // Java memory fixes + withName:'QUALIMAP_BAMQC' { + clusterOptions = { "-A $params.priority ${params.clusterOptions ?: ''} ${task.memory ? "--mem ${task.memory.mega * 1.15 as long}M" : ''}" } + } + withName:'PICARD_MARKDUPLICATES' { + clusterOptions = { "-A $params.priority ${params.clusterOptions ?: ''} ${task.memory ? "--mem ${task.memory.mega * 1.15 as long}M" : ''}" } + } + +} diff --git a/conf/pipeline/rnafusion/hasta.config b/conf/pipeline/rnafusion/hasta.config new file mode 100644 index 0000000..fdd7475 --- /dev/null +++ b/conf/pipeline/rnafusion/hasta.config @@ -0,0 +1,7 @@ +// rnafusion/hasta specific profile config for Clinical Genomics Stockholm usage + +params { + all = true + trim = true + fusioninspector_filter = true +} diff --git a/conf/pipeline/viralrecon/genomes.config b/conf/pipeline/viralrecon/genomes.config index 0d5e754..06c8577 100644 --- a/conf/pipeline/viralrecon/genomes.config +++ b/conf/pipeline/viralrecon/genomes.config @@ -8,6 +8,8 @@ params { // Genome reference file paths genomes { + + // SARS-CoV-2 'NC_045512.2' { // This version of the reference has been kept here for backwards compatibility. // Please use 'MN908947.3' if possible because all primer sets are available / have been pre-prepared relative to that assembly @@ -18,6 +20,8 @@ params { nextclade_dataset_reference = 'MN908947' nextclade_dataset_tag = '2022-06-14T12:00:00Z' } + + // SARS-CoV-2 'MN908947.3' { fasta = 'https://github.com/nf-core/test-datasets/raw/viralrecon/genome/MN908947.3/GCA_009858895.3_ASM985889v3_genomic.200409.fna.gz' gff = 'https://github.com/nf-core/test-datasets/raw/viralrecon/genome/MN908947.3/GCA_009858895.3_ASM985889v3_genomic.200409.gff.gz' @@ -66,5 +70,28 @@ params { } } } + + // Monkeypox + 'NC_063383.1' { + fasta = 'https://github.com/nf-core/test-datasets/raw/viralrecon/genome/NC_063383.1/GCF_014621545.1_ASM1462154v1_genomic.220824.fna.gz' + gff = 'https://github.com/nf-core/test-datasets/raw/viralrecon/genome/NC_063383.1/GCF_014621545.1_ASM1462154v1_genomic.220824.gff.gz' + nextclade_dataset = 'https://github.com/nf-core/test-datasets/raw/viralrecon/genome/NC_063383.1/nextclade_hMPXV_NC_063383.1_2022-08-19T12_00_00Z.tar.gz' + nextclade_dataset_name = 'hMPXV' + nextclade_dataset_reference = 'NC_063383.1' + nextclade_dataset_tag = '2022-08-19T12:00:00Z' + } + + // Monkeypox + 'ON563414.3' { + fasta = 'https://github.com/nf-core/test-datasets/raw/viralrecon/genome/ON563414.3/GCA_023516015.3_ASM2351601v1_genomic.220824.fna.gz' + gff = 'https://github.com/nf-core/test-datasets/raw/viralrecon/genome/ON563414.3/GCA_023516015.3_ASM2351601v1_genomic.220824.gff.gz' + } + + // Monkeypox + 'MT903344.1' { + fasta = 'https://github.com/nf-core/test-datasets/raw/viralrecon/genome/MT903344.1/GCA_014621585.1_ASM1462158v1_genomic.220824.fna.gz' + gff = 'https://github.com/nf-core/test-datasets/raw/viralrecon/genome/MT903344.1/GCA_014621585.1_ASM1462158v1_genomic.220824.gff.gz' + } + } } diff --git a/docs/cheaha.md b/docs/cheaha.md index 9d871c3..fb04c88 100644 --- a/docs/cheaha.md +++ b/docs/cheaha.md @@ -13,6 +13,8 @@ module load Singularity module load Nextflow ``` +Various tasks will be run inside of Singularity containers and all temp files typically written to `/tmp` and `/var/tmp` are instead written to the path pointed to by the `USER_SCRATCH` environment variable. This means that these temp files are stored in a user specific location, making them inaccessible to other users for pipeline reruns. Some of these temp files can be large and cleanup is also the responsibility of the user. + All of the intermediate files required to run the pipeline will be stored in the `work/` directory. It is recommended to delete this directory after the pipeline has finished successfully because it can get quite large, and all of the main output files will be saved in the `results/` directory anyway. > NB: You will need an account to use the HPC cluster on Cheaha in order to run the pipeline. If in doubt contact UAB IT Research Computing.

diff --git a/docs/pipeline/rnafusion/hasta.md b/docs/pipeline/rnafusion/hasta.md new file mode 100644 index 0000000..9f7813d --- /dev/null +++ b/docs/pipeline/rnafusion/hasta.md @@ -0,0 +1,19 @@ +# nf-core/configs: HASTA rnafusion specific configuration + +Extra specific configuration for rnafusion pipeline + +## Usage + +To use, run the pipeline with `-profile hasta`. + +This will download and launch the rnafusion specific [`hasta.config`](../../../conf/pipeline/rnafusion/munin.config) which has been pre-configured with a setup suitable for the `HASTA` cluster. + +Example: `nextflow run nf-core/rnafusion -profile hasta` + +## rnafusion specific configurations for HASTA + +Specific configurations for `HASTA` has been made for rnafusion. + +- Always run all the analysis steps (all = true) +- Use trimming (trim = true) +- Take the fusions identified by at least 2 fusion detection tools to the fusioninspector analysis (fusioninspector_filter = true) diff --git a/pipeline/rnafusion.config b/pipeline/rnafusion.config index 2d86d89..894f6ab 100644 --- a/pipeline/rnafusion.config +++ b/pipeline/rnafusion.config @@ -9,5 +9,6 @@ */ profiles { + hasta { includeConfig "${params.custom_config_base}/conf/pipeline/rnafusion/hasta.config" } munin { includeConfig "${params.custom_config_base}/conf/pipeline/rnafusion/munin.config" } -} \ No newline at end of file +}