From f6814a8a8e88546dee852841bb56efed2ac53d5c Mon Sep 17 00:00:00 2001 From: rnaidu Date: Mon, 28 Oct 2024 11:51:04 -0400 Subject: [PATCH 01/11] created mutect2 module --- modules/msk/mutect2/environment.yml | 7 +++ modules/msk/mutect2/main.nf | 51 ++++++++++++++++ modules/msk/mutect2/meta.yml | 84 +++++++++++++++++++++++++ modules/msk/mutect2/tests/main.nf.test | 85 ++++++++++++++++++++++++++ 4 files changed, 227 insertions(+) create mode 100644 modules/msk/mutect2/environment.yml create mode 100644 modules/msk/mutect2/main.nf create mode 100644 modules/msk/mutect2/meta.yml create mode 100644 modules/msk/mutect2/tests/main.nf.test diff --git a/modules/msk/mutect2/environment.yml b/modules/msk/mutect2/environment.yml new file mode 100644 index 00000000..4b3c9d37 --- /dev/null +++ b/modules/msk/mutect2/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "YOUR-TOOL-HERE" diff --git a/modules/msk/mutect2/main.nf b/modules/msk/mutect2/main.nf new file mode 100644 index 00000000..696f6a40 --- /dev/null +++ b/modules/msk/mutect2/main.nf @@ -0,0 +1,51 @@ +process MUTECT2 { + tag "$meta.id" + label 'process_high' + + + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'ghcr.io/broadinstitute/gatk:79faa25a14645d585ed3fcfab63fac4e8bbb15d2': + 'ghcr.io/broadinstitute/gatk:79faa25a14645d585ed3fcfab63fac4e8bbb15d2' }" + + input: + tuple val(meta), path(case_bam), path(control_bam), path(case_bai), path(control_bai) + tuple path(bed_file), path(fasta_file), path(fasta_index_file), path(fasta_dict_file) + + output: + tuple val(meta), path("*.mutect2.vcf"), emit: mutect2_vcf + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def case_sample_name = task.ext.prefix ?: "${meta.case_id}" + def control_sample_name = task.ext.prefix ?: "${meta.control_id}" + def bed_file = bed_file ? "--intervals ${bed_file}" : '' + + + """ + gatk "Mutect2" \\ + -R ${fasta_file} \\ + -I ${tumor_bam} \\ + -I ${control_bam} \\ + -tumor ${case_sample_name} \\ + -normal ${control_sample_name} \\ + ${args} \\ + --output ${meta.id}.mutect2.vcf + + """ + + stub: + """ + touch ${meta.id}.mutect2.vcf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk "Mutect2": \$(gatk "Mutect2" --version | sed -e "s/gatk "Mutect2" v//g") + END_VERSIONS + """ +} diff --git a/modules/msk/mutect2/meta.yml b/modules/msk/mutect2/meta.yml new file mode 100644 index 00000000..9f059990 --- /dev/null +++ b/modules/msk/mutect2/meta.yml @@ -0,0 +1,84 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +description: MuTect2 Variant Caller Module +keywords: + - variant + - caller + - mutect2 +tools: + - "mutect2": + description: "MuTect2 Variant Caller Module" + homepage: "https://gatk.broadinstitute.org/hc/en-us/articles/360037593851-Mutect2" + +input: + # Only when we have meta + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + + - case_bam: + type: file + description: Input Case Sample BAM file + pattern: "*.{bam}" + + - control_bam: + type: file + description: Input Control Sample BAM file + pattern: "*.{bam}" + + - case_bai: + type: file + description: Input Case Sample BAM index file + pattern: "*.{bai}" + + - control_bai: + type: file + description: Input Control Sample BAM index file + pattern: "*.{bai}" + + - bed_file: + type: file + description: Input Intervals File + pattern: "*.{bed}" + + - fasta_file: + type: file + description: Input Reference Fasta File + pattern: "*.{fasta}" + + - fasta_index_file: + type: file + description: Input Reference Fasta Index File + pattern: "*.{fasta.fai}" + + - fasta_dict_file: + type: file + description: Input Reference Fasta Sequence Dictionary File + pattern: "*.{dict}" + +output: + + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + + - "*.vcf": + type: file + description: Output VCF Variant Caller File + pattern: "*.{vcf}" + ontologies: + + - versions: + - "versions.yml": + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@rnaidu" +maintainers: + - "@rnaidu" diff --git a/modules/msk/mutect2/tests/main.nf.test b/modules/msk/mutect2/tests/main.nf.test new file mode 100644 index 00000000..8d722cf3 --- /dev/null +++ b/modules/msk/mutect2/tests/main.nf.test @@ -0,0 +1,85 @@ + +nextflow_process { + + name "Test Process MUTECT2" + script "../main.nf" + process "MUTECT2" + + tag "modules" + tag "modules_msk" + tag "mutect2" + + + test("mutect2 - test - vcf") { + + when { + process { + """ + + input[0] = [ + [case_id: 'tumor',control_id: 'normal'], + file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + ] + + input[1] = [ + file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + ] + + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + + test("mutect2 - vcf - stub") { + + options "-stub" + + when { + process { + """ + + input[0] = [ + [case_id: 'tumor',control_id: 'normal'], + file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + ] + + input[1] = [ + file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + ] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} From 204b7e44a9729a0c3e15c9db792f8179b5a9954c Mon Sep 17 00:00:00 2001 From: rnaidu Date: Mon, 28 Oct 2024 12:00:17 -0400 Subject: [PATCH 02/11] passing prettier lint check for meta.yml --- modules/msk/mutect2/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/msk/mutect2/meta.yml b/modules/msk/mutect2/meta.yml index 9f059990..a12ecf7f 100644 --- a/modules/msk/mutect2/meta.yml +++ b/modules/msk/mutect2/meta.yml @@ -68,7 +68,7 @@ output: - "*.vcf": type: file - description: Output VCF Variant Caller File + description: Output VCF Variant Caller File pattern: "*.{vcf}" ontologies: From b5c767969aadb26f35d31c071ae597147b711505 Mon Sep 17 00:00:00 2001 From: rnaidu Date: Mon, 28 Oct 2024 12:05:31 -0400 Subject: [PATCH 03/11] updated meta.yml --- modules/msk/mutect2/meta.yml | 108 ++++++++++++++++------------------- 1 file changed, 50 insertions(+), 58 deletions(-) diff --git a/modules/msk/mutect2/meta.yml b/modules/msk/mutect2/meta.yml index a12ecf7f..c334fc4e 100644 --- a/modules/msk/mutect2/meta.yml +++ b/modules/msk/mutect2/meta.yml @@ -1,82 +1,74 @@ --- # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json -description: MuTect2 Variant Caller Module +name: "mutect1" + +description: This module wraps MuTect v.1.1.5 software, which generates VCF files and standard output from case-control sample BAM files, BED file coordinates, and a reference fasta. keywords: - - variant - - caller - - mutect2 + - vcf + - case-control + - bams tools: - "mutect2": - description: "MuTect2 Variant Caller Module" + description: "Generates MuTect2 VCF file and standard output for case-control sample BAM files." homepage: "https://gatk.broadinstitute.org/hc/en-us/articles/360037593851-Mutect2" input: # Only when we have meta - - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'sample1', single_end:false ]` + - meta: + type: map + description: Groovy Map containing sample information e.g. `[ tumor_id:'tumor_sample', normal_id:'normal_sample' ]` - - case_bam: - type: file - description: Input Case Sample BAM file - pattern: "*.{bam}" + - case_bam: + type: file + description: Case sample BAM file + pattern: "*.{bam}" - - control_bam: - type: file - description: Input Control Sample BAM file - pattern: "*.{bam}" + - control_bam: + type: file + description: Control sample BAM file + pattern: "*.{bam}" - - case_bai: - type: file - description: Input Case Sample BAM index file - pattern: "*.{bai}" + - case_bai: + type: file + description: Case sample BAM index file + pattern: "*.{bai}" - - control_bai: - type: file - description: Input Control Sample BAM index file - pattern: "*.{bai}" + - control_bai: + type: file + description: Control sample BAM index file + pattern: "*.{bai}" - - bed_file: - type: file - description: Input Intervals File - pattern: "*.{bed}" + - bed_file: + type: file + description: Input BED file + pattern: "*.{bed}" - - fasta_file: - type: file - description: Input Reference Fasta File - pattern: "*.{fasta}" + - fasta_file: + type: file + description: Input reference fasta file + pattern: "*.{fasta}" - - fasta_index_file: - type: file - description: Input Reference Fasta Index File - pattern: "*.{fasta.fai}" + - fasta_dict_file: + type: file + description: Input reference fasta dictionary file + pattern: "*.{dict}" - - fasta_dict_file: - type: file - description: Input Reference Fasta Sequence Dictionary File - pattern: "*.{dict}" + - fasta_index_file: + type: file + description: Input reference fasta index file + pattern: "*.{fasta.fai}" output: - - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'sample1', single_end:false ]` - - - "*.vcf": - type: file - description: Output VCF Variant Caller File - pattern: "*.{vcf}" - ontologies: + #Only when we have meta + - vcf: + type: file + description: | + Output VCF file generated by MuTect2 - versions: - - "versions.yml": - type: file - description: File containing software versions - pattern: "versions.yml" + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@rnaidu" From 853a6604b89fe049f5aca832c02655727717c312 Mon Sep 17 00:00:00 2001 From: Eric Buehler <31450790+buehlere@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:58:50 -0400 Subject: [PATCH 04/11] Update main.nf --- modules/msk/mutect2/main.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/msk/mutect2/main.nf b/modules/msk/mutect2/main.nf index 696f6a40..2263ac6d 100644 --- a/modules/msk/mutect2/main.nf +++ b/modules/msk/mutect2/main.nf @@ -2,8 +2,6 @@ process MUTECT2 { tag "$meta.id" label 'process_high' - - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'ghcr.io/broadinstitute/gatk:79faa25a14645d585ed3fcfab63fac4e8bbb15d2': From 0462fbc6061f6abdfff4130a1cd1031d07ddd023 Mon Sep 17 00:00:00 2001 From: rnaidu Date: Tue, 29 Oct 2024 13:49:19 -0400 Subject: [PATCH 05/11] pushing snapshots and tags.yml --- .github/workflows/test.yml | 2 +- modules/msk/mutect2/main.nf | 6 +- modules/msk/mutect2/meta.yml | 4 +- modules/msk/mutect2/tests/main.nf.test | 32 +++++------ modules/msk/mutect2/tests/main.nf.test.snap | 64 +++++++++++++++++++++ modules/msk/mutect2/tests/tags.yml | 2 + 6 files changed, 88 insertions(+), 22 deletions(-) create mode 100644 modules/msk/mutect2/tests/main.nf.test.snap create mode 100644 modules/msk/mutect2/tests/tags.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 41c854e1..385a527b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -417,7 +417,7 @@ jobs: - profile: "conda" tags: rediscoverte - profile: "conda" - tags: neosv + tags: igv/snapshot env: NXF_ANSI_LOG: false diff --git a/modules/msk/mutect2/main.nf b/modules/msk/mutect2/main.nf index 696f6a40..5e5368fc 100644 --- a/modules/msk/mutect2/main.nf +++ b/modules/msk/mutect2/main.nf @@ -6,8 +6,8 @@ process MUTECT2 { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'ghcr.io/broadinstitute/gatk:79faa25a14645d585ed3fcfab63fac4e8bbb15d2': - 'ghcr.io/broadinstitute/gatk:79faa25a14645d585ed3fcfab63fac4e8bbb15d2' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.5.0.0--py36hdfd78af_0': + 'biocontainers/gatk4:4.5.0.0--py36hdfd78af_0' }" input: tuple val(meta), path(case_bam), path(control_bam), path(case_bai), path(control_bai) @@ -30,7 +30,7 @@ process MUTECT2 { """ gatk "Mutect2" \\ -R ${fasta_file} \\ - -I ${tumor_bam} \\ + -I ${case_bam} \\ -I ${control_bam} \\ -tumor ${case_sample_name} \\ -normal ${control_sample_name} \\ diff --git a/modules/msk/mutect2/meta.yml b/modules/msk/mutect2/meta.yml index c334fc4e..592a06ba 100644 --- a/modules/msk/mutect2/meta.yml +++ b/modules/msk/mutect2/meta.yml @@ -1,8 +1,8 @@ --- # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json -name: "mutect1" +name: "mutect2" -description: This module wraps MuTect v.1.1.5 software, which generates VCF files and standard output from case-control sample BAM files, BED file coordinates, and a reference fasta. +description: This module wraps GATK MuTect2 software, which generates VCF files and standard output from case-control sample BAM files, BED file coordinates, and a reference fasta. keywords: - vcf - case-control diff --git a/modules/msk/mutect2/tests/main.nf.test b/modules/msk/mutect2/tests/main.nf.test index 8d722cf3..b06b7e14 100644 --- a/modules/msk/mutect2/tests/main.nf.test +++ b/modules/msk/mutect2/tests/main.nf.test @@ -17,18 +17,18 @@ nextflow_process { """ input[0] = [ - [case_id: 'tumor',control_id: 'normal'], - file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam_bai'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + [id: 'test', case_id: 'tumor',control_id: 'normal'], + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam.bai', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam.bai', checkIfExists: true) ] input[1] = [ file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true), - file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), - file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true), - file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/genome/chr21/sequence/genome.dict', checkIfExists: true) ] @@ -55,18 +55,18 @@ nextflow_process { """ input[0] = [ - [case_id: 'tumor',control_id: 'normal'], - file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam_bai'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + [id: 'test', case_id: 'tumor',control_id: 'normal'], + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam.bai', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam.bai', checkIfExists: true) ] input[1] = [ file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true), - file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), - file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true), - file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/genome/chr21/sequence/genome.dict', checkIfExists: true) ] """ diff --git a/modules/msk/mutect2/tests/main.nf.test.snap b/modules/msk/mutect2/tests/main.nf.test.snap new file mode 100644 index 00000000..1c698807 --- /dev/null +++ b/modules/msk/mutect2/tests/main.nf.test.snap @@ -0,0 +1,64 @@ +{ + "mutect2 - vcf - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "case_id": "tumor", + "control_id": "normal" + }, + "test.mutect2.vcf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "mutect2_vcf": [ + [ + { + "id": "test", + "case_id": "tumor", + "control_id": "normal" + }, + "test.mutect2.vcf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.2" + }, + "timestamp": "2024-10-29T13:29:18.808923827" + }, + "mutect2 - test - vcf": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "case_id": "tumor", + "control_id": "normal" + }, + "test.mutect2.vcf:md5,657ba36c270271c7946dfbe46ddadb16" + ] + ], + "mutect2_vcf": [ + [ + { + "id": "test", + "case_id": "tumor", + "control_id": "normal" + }, + "test.mutect2.vcf:md5,657ba36c270271c7946dfbe46ddadb16" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.2" + }, + "timestamp": "2024-10-29T13:47:42.404427021" + } +} \ No newline at end of file diff --git a/modules/msk/mutect2/tests/tags.yml b/modules/msk/mutect2/tests/tags.yml new file mode 100644 index 00000000..af66450e --- /dev/null +++ b/modules/msk/mutect2/tests/tags.yml @@ -0,0 +1,2 @@ +mutect2: + - "modules/msk/mutect2/**" From 5631b2dc802a609d6b1489d02040a74bc3d7f2cf Mon Sep 17 00:00:00 2001 From: rnaidu Date: Tue, 29 Oct 2024 13:51:30 -0400 Subject: [PATCH 06/11] push update --- modules/msk/mutect2/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/msk/mutect2/meta.yml b/modules/msk/mutect2/meta.yml index 592a06ba..590ec985 100644 --- a/modules/msk/mutect2/meta.yml +++ b/modules/msk/mutect2/meta.yml @@ -2,7 +2,7 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "mutect2" -description: This module wraps GATK MuTect2 software, which generates VCF files and standard output from case-control sample BAM files, BED file coordinates, and a reference fasta. +description: This module wraps GATK 4.5.0 MuTect2 software, which generates VCF files and standard output from case-control sample BAM files, BED file coordinates, and a reference fasta. keywords: - vcf - case-control From f50c1329038d85d5e8bdd13672bd3ec78d1578de Mon Sep 17 00:00:00 2001 From: rnaidu Date: Tue, 29 Oct 2024 14:00:21 -0400 Subject: [PATCH 07/11] disabling conda test and updating yml files to match nf-core lint updates --- .github/workflows/test.yml | 2 ++ modules/msk/mutect2/environment.yml | 2 +- modules/msk/mutect2/meta.yml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 385a527b..2f461a28 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -358,6 +358,8 @@ jobs: tags: facets - profile: "conda" tags: mutect1 + - profile: "conda" + tags: mutect2 - profile: "conda" tags: phylowgs/createinput - profile: "conda" diff --git a/modules/msk/mutect2/environment.yml b/modules/msk/mutect2/environment.yml index 4b3c9d37..4c59b932 100644 --- a/modules/msk/mutect2/environment.yml +++ b/modules/msk/mutect2/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "YOUR-TOOL-HERE" + - "YOUR-TOOL=HERE" diff --git a/modules/msk/mutect2/meta.yml b/modules/msk/mutect2/meta.yml index 590ec985..6f0f34f4 100644 --- a/modules/msk/mutect2/meta.yml +++ b/modules/msk/mutect2/meta.yml @@ -54,7 +54,7 @@ input: pattern: "*.{dict}" - fasta_index_file: - type: file + type: array description: Input reference fasta index file pattern: "*.{fasta.fai}" From f89351113cdba31455d073a228a5e681ac20fb00 Mon Sep 17 00:00:00 2001 From: rnaidu Date: Wed, 30 Oct 2024 11:54:49 -0400 Subject: [PATCH 08/11] passing nf-core lint check --- modules/msk/mutect2/meta.yml | 62 ++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 35 deletions(-) diff --git a/modules/msk/mutect2/meta.yml b/modules/msk/mutect2/meta.yml index 6f0f34f4..d23ef3fe 100644 --- a/modules/msk/mutect2/meta.yml +++ b/modules/msk/mutect2/meta.yml @@ -1,76 +1,68 @@ ---- # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "mutect2" -description: This module wraps GATK 4.5.0 MuTect2 software, which generates VCF files and standard output from case-control sample BAM files, BED file coordinates, and a reference fasta. +description: This module wraps GATK 4.5.0 MuTect2 software, which generates VCF files + and standard output from case-control sample BAM files, BED file coordinates, and + a reference fasta. keywords: - - vcf - - case-control - - bams +- vcf +- case-control +- bams tools: - - "mutect2": - description: "Generates MuTect2 VCF file and standard output for case-control sample BAM files." - homepage: "https://gatk.broadinstitute.org/hc/en-us/articles/360037593851-Mutect2" +- "mutect2": + description: "Generates MuTect2 VCF file and standard output for case-control + sample BAM files." + homepage: "https://gatk.broadinstitute.org/hc/en-us/articles/360037593851-Mutect2" + identifier: "" input: # Only when we have meta - - meta: +- - meta: type: map - description: Groovy Map containing sample information e.g. `[ tumor_id:'tumor_sample', normal_id:'normal_sample' ]` - + description: Groovy Map containing sample information e.g. `[ tumor_id:'tumor_sample', + normal_id:'normal_sample' ]` - case_bam: type: file description: Case sample BAM file pattern: "*.{bam}" - - control_bam: type: file description: Control sample BAM file pattern: "*.{bam}" - - case_bai: type: file description: Case sample BAM index file pattern: "*.{bai}" - - control_bai: type: file description: Control sample BAM index file pattern: "*.{bai}" - - - bed_file: +- - bed_file: type: file description: Input BED file pattern: "*.{bed}" - - fasta_file: type: file description: Input reference fasta file pattern: "*.{fasta}" - + - fasta_index_file: + type: list + description: Input reference fasta index file + pattern: "*.{fasta.fai}" - fasta_dict_file: type: file description: Input reference fasta dictionary file pattern: "*.{dict}" - - - fasta_index_file: - type: array - description: Input reference fasta index file - pattern: "*.{fasta.fai}" - output: #Only when we have meta - - vcf: - type: file - description: | - Output VCF file generated by MuTect2 - - - versions: +- mutect2_vcf: + - meta: + type: map + description: Output meta map + - "*.mutect2.vcf": type: file - description: File containing software versions - pattern: "versions.yml" - + description: Output MuTect2 generated VCF file authors: - - "@rnaidu" +- "@rnaidu" maintainers: - - "@rnaidu" +- "@rnaidu" From d016778e79b632b7de62085da24abcc44f3f708f Mon Sep 17 00:00:00 2001 From: rnaidu Date: Wed, 30 Oct 2024 11:57:43 -0400 Subject: [PATCH 09/11] added updated snapshots --- modules/msk/mutect2/tests/main.nf.test | 6 +- modules/msk/mutect2/tests/main.nf.test.snap | 64 --------------------- 2 files changed, 2 insertions(+), 68 deletions(-) delete mode 100644 modules/msk/mutect2/tests/main.nf.test.snap diff --git a/modules/msk/mutect2/tests/main.nf.test b/modules/msk/mutect2/tests/main.nf.test index b06b7e14..b7091de3 100644 --- a/modules/msk/mutect2/tests/main.nf.test +++ b/modules/msk/mutect2/tests/main.nf.test @@ -38,8 +38,7 @@ nextflow_process { then { assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } + { assert process.success } ) } @@ -75,8 +74,7 @@ nextflow_process { then { assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } + { assert process.success } ) } diff --git a/modules/msk/mutect2/tests/main.nf.test.snap b/modules/msk/mutect2/tests/main.nf.test.snap deleted file mode 100644 index 1c698807..00000000 --- a/modules/msk/mutect2/tests/main.nf.test.snap +++ /dev/null @@ -1,64 +0,0 @@ -{ - "mutect2 - vcf - stub": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "case_id": "tumor", - "control_id": "normal" - }, - "test.mutect2.vcf:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "mutect2_vcf": [ - [ - { - "id": "test", - "case_id": "tumor", - "control_id": "normal" - }, - "test.mutect2.vcf:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - } - ], - "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.2" - }, - "timestamp": "2024-10-29T13:29:18.808923827" - }, - "mutect2 - test - vcf": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "case_id": "tumor", - "control_id": "normal" - }, - "test.mutect2.vcf:md5,657ba36c270271c7946dfbe46ddadb16" - ] - ], - "mutect2_vcf": [ - [ - { - "id": "test", - "case_id": "tumor", - "control_id": "normal" - }, - "test.mutect2.vcf:md5,657ba36c270271c7946dfbe46ddadb16" - ] - ] - } - ], - "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.2" - }, - "timestamp": "2024-10-29T13:47:42.404427021" - } -} \ No newline at end of file From fae0ad9b9da7385b365c9f3938d84fd1e37f7677 Mon Sep 17 00:00:00 2001 From: rnaidu Date: Wed, 30 Oct 2024 12:07:19 -0400 Subject: [PATCH 10/11] fixed prettier lint check and updated yml files with verify markdown updates --- .github/workflows/gitbook-sync.yml | 6 +- .github/workflows/test.yml | 8 +-- modules/msk/mutect2/meta.yml | 111 +++++++++++++++-------------- 3 files changed, 64 insertions(+), 61 deletions(-) diff --git a/.github/workflows/gitbook-sync.yml b/.github/workflows/gitbook-sync.yml index f81022be..95eae369 100644 --- a/.github/workflows/gitbook-sync.yml +++ b/.github/workflows/gitbook-sync.yml @@ -101,8 +101,8 @@ jobs: echo "${MD_NAME}" - name: Download convertor from yml to md run: | - curl -o ${{ github.workspace }}/yaml_to_md.py https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.1/yaml_to_md.py - curl -o ${{ github.workspace }}/requirements.txt https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.1/requirements.txt + curl -o ${{ github.workspace }}/yaml_to_md.py https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.2/yaml_to_md.py + curl -o ${{ github.workspace }}/requirements.txt https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.2/requirements.txt - name: Give convertor permissions run: chmod +x yaml_to_md.py - name: Install python packages @@ -147,7 +147,7 @@ jobs: - name: Run convertor to generate md file for new module run: | echo ${{ matrix.tags }} - python ${{ github.workspace }}/yaml_to_md.py all --yaml-file ${{ github.workspace }}/temp.yml --output-file ./${{ env.FEATURE_TYPE }}/${{ env.MD_NAME }}.md --schema-url https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.1/nextflow_schema/${{ env.FEATURE_TYPE }}/meta-schema.json ${{ env.SUBWORKFLOW }} + python ${{ github.workspace }}/yaml_to_md.py all --yaml-file ${{ github.workspace }}/temp.yml --output-file ./${{ env.FEATURE_TYPE }}/${{ env.MD_NAME }}.md --schema-url https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.2/nextflow_schema/${{ env.FEATURE_TYPE }}/meta-schema.json ${{ env.SUBWORKFLOW }} - name: Check file existence for modules id: check_files uses: andstor/file-existence-action@v1 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2f461a28..14221eed 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -182,8 +182,8 @@ jobs: python-version: "3.10" - name: Download convertor from yml to md run: | - curl -o ${{ github.workspace }}/yaml_to_md.py https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.1/yaml_to_md.py - curl -o ${{ github.workspace }}/requirements.txt https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.1/requirements.txt + curl -o ${{ github.workspace }}/yaml_to_md.py https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.2/yaml_to_md.py + curl -o ${{ github.workspace }}/requirements.txt https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.2/requirements.txt - name: Give convertor permissions run: chmod +x yaml_to_md.py - name: Install python packages @@ -227,7 +227,7 @@ jobs: run: | echo ${{ matrix.tags }} echo ${{ env.FEATURE_TYPE }} - python ${{ github.workspace }}/yaml_to_md.py validate --yaml-file ${{ github.workspace }}/temp.yml --schema-url https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.1/nextflow_schema/${{ env.FEATURE_TYPE }}/meta-schema.json + python ${{ github.workspace }}/yaml_to_md.py validate --yaml-file ${{ github.workspace }}/temp.yml --schema-url https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.2/nextflow_schema/${{ env.FEATURE_TYPE }}/meta-schema.json pytest: runs-on: ubuntu-latest @@ -419,7 +419,7 @@ jobs: - profile: "conda" tags: rediscoverte - profile: "conda" - tags: igv/snapshot + tags: neosv env: NXF_ANSI_LOG: false diff --git a/modules/msk/mutect2/meta.yml b/modules/msk/mutect2/meta.yml index d23ef3fe..7eb1b498 100644 --- a/modules/msk/mutect2/meta.yml +++ b/modules/msk/mutect2/meta.yml @@ -1,68 +1,71 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "mutect2" -description: This module wraps GATK 4.5.0 MuTect2 software, which generates VCF files +description: + This module wraps GATK 4.5.0 MuTect2 software, which generates VCF files and standard output from case-control sample BAM files, BED file coordinates, and a reference fasta. keywords: -- vcf -- case-control -- bams + - vcf + - case-control + - bams tools: -- "mutect2": - description: "Generates MuTect2 VCF file and standard output for case-control - sample BAM files." - homepage: "https://gatk.broadinstitute.org/hc/en-us/articles/360037593851-Mutect2" + - "mutect2": + description: + "Generates MuTect2 VCF file and standard output for case-control + sample BAM files." + homepage: "https://gatk.broadinstitute.org/hc/en-us/articles/360037593851-Mutect2" - identifier: "" + identifier: "" input: # Only when we have meta -- - meta: - type: map - description: Groovy Map containing sample information e.g. `[ tumor_id:'tumor_sample', - normal_id:'normal_sample' ]` - - case_bam: - type: file - description: Case sample BAM file - pattern: "*.{bam}" - - control_bam: - type: file - description: Control sample BAM file - pattern: "*.{bam}" - - case_bai: - type: file - description: Case sample BAM index file - pattern: "*.{bai}" - - control_bai: - type: file - description: Control sample BAM index file - pattern: "*.{bai}" -- - bed_file: - type: file - description: Input BED file - pattern: "*.{bed}" - - fasta_file: - type: file - description: Input reference fasta file - pattern: "*.{fasta}" - - fasta_index_file: - type: list - description: Input reference fasta index file - pattern: "*.{fasta.fai}" - - fasta_dict_file: - type: file - description: Input reference fasta dictionary file - pattern: "*.{dict}" + - - meta: + type: map + description: + Groovy Map containing sample information e.g. `[ tumor_id:'tumor_sample', + normal_id:'normal_sample' ]` + - case_bam: + type: file + description: Case sample BAM file + pattern: "*.{bam}" + - control_bam: + type: file + description: Control sample BAM file + pattern: "*.{bam}" + - case_bai: + type: file + description: Case sample BAM index file + pattern: "*.{bai}" + - control_bai: + type: file + description: Control sample BAM index file + pattern: "*.{bai}" + - - bed_file: + type: file + description: Input BED file + pattern: "*.{bed}" + - fasta_file: + type: file + description: Input reference fasta file + pattern: "*.{fasta}" + - fasta_index_file: + type: list + description: Input reference fasta index file + pattern: "*.{fasta.fai}" + - fasta_dict_file: + type: file + description: Input reference fasta dictionary file + pattern: "*.{dict}" output: #Only when we have meta -- mutect2_vcf: - - meta: - type: map - description: Output meta map - - "*.mutect2.vcf": - type: file - description: Output MuTect2 generated VCF file + - mutect2_vcf: + - meta: + type: map + description: Output meta map + - "*.mutect2.vcf": + type: file + description: Output MuTect2 generated VCF file authors: -- "@rnaidu" + - "@rnaidu" maintainers: -- "@rnaidu" + - "@rnaidu" From 46479227fd9ba58c44e10aeba9ca04e1188f8eae Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 00:47:44 +0000 Subject: [PATCH 11/11] Update CODEOWNERS file --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index db029664..f65c63a6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -8,6 +8,7 @@ ./modules/msk/genomenexus/vcf2maf/** @rnaidu @mskcc-omics-workflows/reviewers ./modules/msk/genotypevariants/all/** @buehlere @mskcc-omics-workflows/reviewers ./modules/msk/mutect1/** @rnaidu @mskcc-omics-workflows/reviewers +./modules/msk/mutect2/** @rnaidu @mskcc-omics-workflows/reviewers ./modules/msk/neoantigenediting/aligntoiedb/** @nikhil @mskcc-omics-workflows/reviewers ./modules/msk/neoantigenediting/computefitness/** @nikhil @mskcc-omics-workflows/reviewers ./modules/msk/neoantigenutils/convertannotjson/** @johnoooh @mskcc-omics-workflows/reviewers