From 0de7e297234270e7902307d1e136d640e94dbac1 Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Tue, 26 May 2020 12:29:33 +0200 Subject: [PATCH 01/16] Refactor --- NextflowModules | 2 +- WES.nf | 122 ++++++++++++++++++++++++------------------------ 2 files changed, 61 insertions(+), 63 deletions(-) diff --git a/NextflowModules b/NextflowModules index 5baa4a6..cb7e1e1 160000 --- a/NextflowModules +++ b/NextflowModules @@ -1 +1 @@ -Subproject commit 5baa4a6396effe63e823ed17e277db3a43ec7a4c +Subproject commit cb7e1e1fdb8465755f2e2557096276a6a628fefd diff --git a/WES.nf b/WES.nf index bb5f135..1110096 100644 --- a/WES.nf +++ b/WES.nf @@ -94,14 +94,12 @@ workflow { Sambamba_Flagstat(Sambamba_Merge.out) GetStatsFromFlagstat(Sambamba_Flagstat.out.collect()) - MultiQC( - Channel.empty().mix( - FastQC.out.flatten().map{file -> [analysis_id, file]}, - PICARD_CollectMultipleMetrics.out.flatten().map{file -> [analysis_id, file]}, - PICARD_EstimateLibraryComplexity.out.map{file -> [analysis_id, file]}, - PICARD_CollectHsMetrics.out.map{file -> [analysis_id, file]} - ).groupTuple() - ) + MultiQC(analysis_id, Channel.empty().mix( + FastQC.out.collect(), + PICARD_CollectMultipleMetrics.out.collect(), + PICARD_EstimateLibraryComplexity.out.collect(), + PICARD_CollectHsMetrics.out.collect() + )) TrendAnalysisTool( GATK_CombineVariants.out.map{id, vcf_file, idx_file -> [id, vcf_file]} @@ -111,7 +109,7 @@ workflow { ) //SavePedFile - SavePedFile() + SavePedFile() // Repository versions VersionLog() @@ -146,13 +144,13 @@ process ExonCov { shell = ['/bin/bash', '-eo', 'pipefail'] input: - tuple analysis_id, sample_id, file(bam_file), file(bai_file) + tuple(analysis_id, sample_id, path(bam_file), path(bai_file)) script: - """ - source ${params.exoncov_path}/venv/bin/activate - python ${params.exoncov_path}/ExonCov.py import_bam --threads ${task.cpus} --overwrite --exon_bed ${params.dxtracks_path}/${params.exoncov_bed} ${analysis_id} ${bam_file} - """ + """ + source ${params.exoncov_path}/venv/bin/activate + python ${params.exoncov_path}/ExonCov.py import_bam --threads ${task.cpus} --overwrite --exon_bed ${params.dxtracks_path}/${params.exoncov_bed} ${analysis_id} ${bam_file} + """ } process ExomeDepth { @@ -162,16 +160,16 @@ process ExomeDepth { shell = ['/bin/bash', '-eo', 'pipefail'] input: - tuple analysis_id, sample_id, file(bam_file), file(bai_file), refset + tuple(analysis_id, sample_id, path(bam_file), path(bai_file), refset) output: - tuple sample_id, refset, file("UMCU_${refset}_${sample_id}*.vcf"), file("HC_${refset}_${sample_id}*.vcf"), file("${sample_id}*.xml"), file("UMCU_${refset}_${sample_id}*.log"), file("HC_${refset}_${sample_id}*.log"), file("UMCU_${refset}_${sample_id}*.igv"), file("HC_${refset}_${sample_id}*.igv") + tuple(sample_id, refset, path("UMCU_${refset}_${sample_id}*.vcf"), path("HC_${refset}_${sample_id}*.vcf"), path("${sample_id}*.xml"), path("UMCU_${refset}_${sample_id}*.log"), path("HC_${refset}_${sample_id}*.log"), path("UMCU_${refset}_${sample_id}*.igv"), path("HC_${refset}_${sample_id}*.igv")) script: - """ - source ${params.exomedepth_path}/venv/bin/activate - python ${params.exomedepth_path}/run_ExomeDepth.py callcnv ./ ${bam_file} ${analysis_id} ${sample_id} ${refset} - """ + """ + source ${params.exomedepth_path}/venv/bin/activate + python ${params.exomedepth_path}/run_ExomeDepth.py callcnv ./ ${bam_file} ${analysis_id} ${sample_id} ${refset} + """ } @@ -186,19 +184,19 @@ process Kinship { shell = ['/bin/bash', '-euo', 'pipefail'] input: - tuple analysis_id, file(vcf_file), file(vcf_index) + tuple(analysis_id, path(vcf_file), path(vcf_index)) output: - tuple analysis_id, file("${analysis_id}.kinship"), file("${analysis_id}.kinship_check.out") + tuple(analysis_id, path("${analysis_id}.kinship"), path("${analysis_id}.kinship_check.out")) script: - """ - ${params.vcftools_path}/vcftools --vcf ${vcf_file} --plink - ${params.plink_path}/plink --file out --make-bed --noweb - ${params.king_path}/king -b plink.bed --kinship - cp king.kin0 ${analysis_id}.kinship - python ${baseDir}/assets/check_kinship.py ${analysis_id}.kinship ${ped_file} > ${analysis_id}.kinship_check.out - """ + """ + ${params.vcftools_path}/vcftools --vcf ${vcf_file} --plink + ${params.plink_path}/plink --file out --make-bed --noweb + ${params.king_path}/king -b plink.bed --kinship + cp king.kin0 ${analysis_id}.kinship + python ${baseDir}/assets/check_kinship.py ${analysis_id}.kinship ${ped_file} > ${analysis_id}.kinship_check.out + """ } process GetStatsFromFlagstat { @@ -208,15 +206,15 @@ process GetStatsFromFlagstat { shell = ['/bin/bash', '-euo', 'pipefail'] input: - file(flagstat_files: "*") + path(flagstat_files) output: - file('run_stats.txt') + path('run_stats.txt') - script: - """ - python ${baseDir}/assets/get_stats_from_flagstat.py ${flagstat_files} > run_stats.txt - """ + script: + """ + python ${baseDir}/assets/get_stats_from_flagstat.py ${flagstat_files} > run_stats.txt + """ } process CreateHSmetricsSummary { @@ -226,15 +224,15 @@ process CreateHSmetricsSummary { shell = ['/bin/bash', '-euo', 'pipefail'] input: - file(hsmetrics_files: "*") + path(hsmetrics_files) output: - file('HSMetrics_summary.txt') + path('HSMetrics_summary.txt') script: - """ - python ${baseDir}/assets/create_hsmetrics_summary.py ${hsmetrics_files} > HSMetrics_summary.txt - """ + """ + python ${baseDir}/assets/create_hsmetrics_summary.py ${hsmetrics_files} > HSMetrics_summary.txt + """ } process TrendAnalysisTool { @@ -244,13 +242,13 @@ process TrendAnalysisTool { shell = ['/bin/bash', '-eo', 'pipefail'] input: - tuple analysis_id, file(input_files: "*") + tuple(analysis_id, path(input_files)) script: - """ - source ${params.trend_analysis_path}/venv/bin/activate - python ${params.trend_analysis_path}/trend_analysis.py upload processed_data ${analysis_id} . - """ + """ + source ${params.trend_analysis_path}/venv/bin/activate + python ${params.trend_analysis_path}/trend_analysis.py upload processed_data ${analysis_id} . + """ } process SavePedFile { @@ -259,12 +257,12 @@ process SavePedFile { shell = ['/bin/bash', '-euo', 'pipefail'] output: - file("*.ped") + path("*.ped") script: - """ - cp ${ped_file} ./ - """ + """ + cp ${ped_file} ./ + """ } process VersionLog { @@ -274,23 +272,23 @@ process VersionLog { shell = ['/bin/bash', '-eo', 'pipefail'] output: - file('repository_version.log') + path('repository_version.log') script: - """ - echo 'DxNextflowWes' > repository_version.log - git --git-dir=${workflow.projectDir}/.git log --pretty=oneline --decorate -n 2 >> repository_version.log + """ + echo 'DxNextflowWes' > repository_version.log + git --git-dir=${workflow.projectDir}/.git log --pretty=oneline --decorate -n 2 >> repository_version.log - echo 'Dx_tracks' >> repository_version.log - git --git-dir=${params.dxtracks_path}/.git log --pretty=oneline --decorate -n 2 >> repository_version.log + echo 'Dx_tracks' >> repository_version.log + git --git-dir=${params.dxtracks_path}/.git log --pretty=oneline --decorate -n 2 >> repository_version.log - echo 'ExonCov' >> repository_version.log - git --git-dir=${params.exoncov_path}/.git log --pretty=oneline --decorate -n 2 >> repository_version.log + echo 'ExonCov' >> repository_version.log + git --git-dir=${params.exoncov_path}/.git log --pretty=oneline --decorate -n 2 >> repository_version.log - echo 'ExomeDepth' >> repository_version.log - git --git-dir=${params.exomedepth_path}/../.git log --pretty=oneline --decorate -n 2 >> repository_version.log + echo 'ExomeDepth' >> repository_version.log + git --git-dir=${params.exomedepth_path}/../.git log --pretty=oneline --decorate -n 2 >> repository_version.log - echo 'TrendAnalysis' >> repository_version.log - git --git-dir=${params.trend_analysis_path}/.git log --pretty=oneline --decorate -n 2 >> repository_version.log - """ + echo 'TrendAnalysis' >> repository_version.log + git --git-dir=${params.trend_analysis_path}/.git log --pretty=oneline --decorate -n 2 >> repository_version.log + """ } From 4f6a6017509d899f5f38672627428ea0763735ae Mon Sep 17 00:00:00 2001 From: rernst Date: Wed, 27 May 2020 11:04:02 +0200 Subject: [PATCH 02/16] Update modules --- NextflowModules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NextflowModules b/NextflowModules index cb7e1e1..1e85be9 160000 --- a/NextflowModules +++ b/NextflowModules @@ -1 +1 @@ -Subproject commit cb7e1e1fdb8465755f2e2557096276a6a628fefd +Subproject commit 1e85be9da95db3205cb1479d67519b100a115272 From 12fe065fcc452459735e44f9c2d12340671842a8 Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Wed, 27 May 2020 11:50:51 +0200 Subject: [PATCH 03/16] Fix spacing --- WES.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WES.nf b/WES.nf index 1110096..4c51ba3 100644 --- a/WES.nf +++ b/WES.nf @@ -211,7 +211,7 @@ process GetStatsFromFlagstat { output: path('run_stats.txt') - script: + script: """ python ${baseDir}/assets/get_stats_from_flagstat.py ${flagstat_files} > run_stats.txt """ From fc465082b326b4e024dcc5f825e6f4ed27bc5651 Mon Sep 17 00:00:00 2001 From: melferink Date: Thu, 2 Jul 2020 16:34:48 +0200 Subject: [PATCH 04/16] changed ExomeDepth reference set default --- WES.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WES.config b/WES.config index 6c62a2f..173c6a4 100644 --- a/WES.config +++ b/WES.config @@ -19,7 +19,7 @@ params { exoncov_bed = 'Tracks/ENSEMBL_UCSC_merged_collapsed_sorted_v3_20bpflank.bed' exomedepth_path= '/hpc/diaggen/software/production/Dx_resources/ExomeDepth/' - exomedepth_refset = 'Jan2020' + exomedepth_refset = 'May2020v2' picard_bait = 'Tracks/SureSelect_CREv2_elidS30409818_Covered.list' picard_target = 'Tracks/ENSEMBL_UCSC_merged_collapsed_sorted_v3_20bpflank.list' From 5d9e4f6482385f504fcea04c3d41a98b6dabbaea Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Wed, 8 Jul 2020 12:07:03 +0200 Subject: [PATCH 05/16] Combined bwa and samtools container, solves #12 --- NextflowModules | 2 +- WES.config | 7 ------- WES.nf | 8 +++----- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/NextflowModules b/NextflowModules index 1e85be9..75592c8 160000 --- a/NextflowModules +++ b/NextflowModules @@ -1 +1 @@ -Subproject commit 1e85be9da95db3205cb1479d67519b100a115272 +Subproject commit 75592c866a60af12489838cf1a3b424dc0e6fe8e diff --git a/WES.config b/WES.config index 173c6a4..17ebbf5 100644 --- a/WES.config +++ b/WES.config @@ -54,13 +54,6 @@ process { time = '180m' } - withLabel: Sambamba_0_7_0_ViewSort { - cpus = 10 - memory = '40G' - time = '40m' - clusterOptions = "$params.cluster_options --gres=tmpspace:10G" - } - withLabel: Sambamba_0_7_0_MarkdupMerge { cpus = 8 memory = '5G' diff --git a/WES.nf b/WES.nf index 4c51ba3..59d3de0 100644 --- a/WES.nf +++ b/WES.nf @@ -4,8 +4,7 @@ nextflow.preview.dsl=2 include extractFastqPairFromDir from './NextflowModules/Utils/fastq.nf' // Mapping modules -include MEM as BWA_MEM from './NextflowModules/BWA/0.7.17/MEM.nf' params(genome:"$params.genome", optional: '-c 100 -M') -include ViewSort as Sambamba_ViewSort from './NextflowModules/Sambamba/0.7.0/ViewSort.nf' +include BWAMapping from './NextflowModules/BWA-Mapping/bwa-0.7.17_samtools-1.9/Mapping.nf' params(genome_fasta: "$params.genome", optional: '-c 100 -M') include MarkdupMerge as Sambamba_MarkdupMerge from './NextflowModules/Sambamba/0.7.0/Markdup.nf' // IndelRealignment modules @@ -50,10 +49,9 @@ if (!ped_file.exists()) { workflow { // Mapping - BWA_MEM(fastq_files) - Sambamba_ViewSort(BWA_MEM.out) + BWAMapping(fastq_files) Sambamba_MarkdupMerge( - Sambamba_ViewSort.out.map{ + BWAMapping.out.map{ sample_id, rg_id, bam_file, bai_file -> [sample_id, bam_file] }.groupTuple() ) From 4a027196f32f3a095ec20aa44bf636503534e6aa Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Wed, 8 Jul 2020 12:08:17 +0200 Subject: [PATCH 06/16] Print kinship check settings, solves #5 --- assets/check_kinship.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/assets/check_kinship.py b/assets/check_kinship.py index 17e43a9..82c23dc 100644 --- a/assets/check_kinship.py +++ b/assets/check_kinship.py @@ -27,8 +27,7 @@ def parse_ped(ped_file): return samples -def check_kinship(kinship_file, samples): - kinship_setting = [0.177, 0.354] +def check_kinship(kinship_file, samples, kinship_setting): kinship_errors = False print_kinship('sample_1', 'sample_2', 'kinship', 'related', 'type', 'status') # header for line in kinship_file: @@ -83,12 +82,16 @@ def print_kinship(sample_1, sample_2, kinship, fam_status, relation_status, kins parser.add_argument('ped_file', type=argparse.FileType('r'), help='PED file') arguments = parser.parse_args() + # settings + kinship_setting = [0.177, 0.354] + # Parse ped file and check kinship samples = parse_ped(arguments.ped_file) - kinship_errors = check_kinship(arguments.kinship_file, samples) + kinship_errors = check_kinship(arguments.kinship_file, samples, kinship_setting) # Print summary if kinship_errors: print("\n# WARNING: Kinship errors found.") else: print("\n# No kinship errors found.") + print("# Used kinship check settings: {0}".format(kinship_setting)) From a04f3b6af47af2a944498d1469e519fc87813533 Mon Sep 17 00:00:00 2001 From: rernst Date: Thu, 23 Jul 2020 16:27:45 +0200 Subject: [PATCH 07/16] Update modules --- NextflowModules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NextflowModules b/NextflowModules index 75592c8..f2cd2ce 160000 --- a/NextflowModules +++ b/NextflowModules @@ -1 +1 @@ -Subproject commit 75592c866a60af12489838cf1a3b424dc0e6fe8e +Subproject commit f2cd2cea8cb879ba3596a11cbc11ef29faf0fd2f From 32a472697764f1259fb5535c9b9a66fa51aa1317 Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Fri, 24 Jul 2020 10:33:40 +0200 Subject: [PATCH 08/16] Add (empty) optional param to IntervalListTools. --- WES.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WES.nf b/WES.nf index 59d3de0..18ffaee 100644 --- a/WES.nf +++ b/WES.nf @@ -14,7 +14,7 @@ include ViewUnmapped as Sambamba_ViewUnmapped from './NextflowModules/Sambamba/0 include Merge as Sambamba_Merge from './NextflowModules/Sambamba/0.7.0/Merge.nf' // HaplotypeCaller modules -include IntervalListTools as PICARD_IntervalListTools from './NextflowModules/Picard/2.22.0/IntervalListTools.nf' params(scatter_count:'500') +include IntervalListTools as PICARD_IntervalListTools from './NextflowModules/Picard/2.22.0/IntervalListTools.nf' params(scatter_count:"500", , optional: "") include HaplotypeCaller as GATK_HaplotypeCaller from './NextflowModules/GATK/3.8-1-0-gf15c1c3ef/HaplotypeCaller.nf' params(gatk_path: "$params.gatk_path", genome:"$params.genome", optional: "$params.gatk_hc_options") include VariantFiltrationSnpIndel as GATK_VariantFiltration from './NextflowModules/GATK/3.8-1-0-gf15c1c3ef/VariantFiltration.nf' params( gatk_path: "$params.gatk_path", genome:"$params.genome", snp_filter: "$params.gatk_snp_filter", snp_cluster: "$params.gatk_snp_cluster", indel_filter: "$params.gatk_indel_filter" From 52fe9ea15ec8396c83041a086320e10b55db5ca2 Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Fri, 24 Jul 2020 12:33:35 +0200 Subject: [PATCH 09/16] Update config --- NextflowModules | 2 +- WES.config | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/NextflowModules b/NextflowModules index f2cd2ce..086ec31 160000 --- a/NextflowModules +++ b/NextflowModules @@ -1 +1 @@ -Subproject commit f2cd2cea8cb879ba3596a11cbc11ef29faf0fd2f +Subproject commit 086ec317d3c6e46ea81a80bc1bceedec02d0cd5d diff --git a/WES.config b/WES.config index 17ebbf5..ee23595 100644 --- a/WES.config +++ b/WES.config @@ -51,7 +51,7 @@ process { withLabel: BWA_0_7_17_MEM { cpus = 10 memory = '10G' - time = '180m' + time = '3h' } withLabel: Sambamba_0_7_0_MarkdupMerge { From 0528f0eca1c6d8e9a556db692319d302544f08b8 Mon Sep 17 00:00:00 2001 From: rernst Date: Fri, 24 Jul 2020 12:37:29 +0200 Subject: [PATCH 10/16] Update config --- WES.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WES.config b/WES.config index ee23595..f387c50 100644 --- a/WES.config +++ b/WES.config @@ -15,7 +15,7 @@ params { fingerprint_target = 'fingerprint/81SNP_design.vcf' - exoncov_path = '/hpc/diaggen/software/production/ExonCov' + exoncov_path = '/hpc/diaggen/software/development/ExonCov' exoncov_bed = 'Tracks/ENSEMBL_UCSC_merged_collapsed_sorted_v3_20bpflank.bed' exomedepth_path= '/hpc/diaggen/software/production/Dx_resources/ExomeDepth/' @@ -48,7 +48,7 @@ process { } } - withLabel: BWA_0_7_17_MEM { + withLabel: BWA_0_7_17_Mem { cpus = 10 memory = '10G' time = '3h' From c362c2aed3064bd6f2a052648c39aa3eff0fbd8f Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Mon, 27 Jul 2020 13:50:49 +0200 Subject: [PATCH 11/16] Update cleanup of work dir. --- run_nextflow_wes.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/run_nextflow_wes.sh b/run_nextflow_wes.sh index b63766c..2effe53 100755 --- a/run_nextflow_wes.sh +++ b/run_nextflow_wes.sh @@ -40,11 +40,11 @@ module load Java/1.8.0_60 if [ \$? -eq 0 ]; then echo "Nextflow done." - echo "Running Nextflow clean" - /hpc/diaggen/software/tools/nextflow clean -f -k -q - echo "Zip work directory" - zip -r -m -q work.zip work + find work -type f | egrep "\.(command|exitcode)" | zip -@ -q work.zip + + echo "Remove work directory" + rm -r work echo "Creating md5sum" find -type f -not -iname 'md5sum.txt' -exec md5sum {} \; > md5sum.txt From c9e761eec46655c746c95a5dde56dc56dc279c31 Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Mon, 27 Jul 2020 13:55:35 +0200 Subject: [PATCH 12/16] Revert exoncov path --- WES.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WES.config b/WES.config index f387c50..f06a184 100644 --- a/WES.config +++ b/WES.config @@ -15,7 +15,7 @@ params { fingerprint_target = 'fingerprint/81SNP_design.vcf' - exoncov_path = '/hpc/diaggen/software/development/ExonCov' + exoncov_path = '/hpc/diaggen/software/production/ExonCov' exoncov_bed = 'Tracks/ENSEMBL_UCSC_merged_collapsed_sorted_v3_20bpflank.bed' exomedepth_path= '/hpc/diaggen/software/production/Dx_resources/ExomeDepth/' From 08fad1b28b90152fb2662b4349d01b5e7737539e Mon Sep 17 00:00:00 2001 From: rernst Date: Wed, 29 Jul 2020 12:47:36 +0200 Subject: [PATCH 13/16] Set modules to 0.2.0 --- NextflowModules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NextflowModules b/NextflowModules index 086ec31..3890843 160000 --- a/NextflowModules +++ b/NextflowModules @@ -1 +1 @@ -Subproject commit 086ec317d3c6e46ea81a80bc1bceedec02d0cd5d +Subproject commit 3890843e528a14ada068294c21df731db7126c21 From 3a8c60f497b73155642b371c7913d1f3592d713c Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Thu, 30 Jul 2020 15:34:23 +0200 Subject: [PATCH 14/16] Add WES Fingerprint workflow. --- README.md | 5 +++++ WES_Fingerprint.nf | 55 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 WES_Fingerprint.nf diff --git a/README.md b/README.md index aeb4546..b677b99 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,11 @@ curl -s https://get.nextflow.io | bash nextflow run WES.nf -c WES.config --fastq_path --outdir [-profile slurm|mac] ``` +#### Running WES Fingerprint workflow +```bash +nextflow run WES_Fingerprint.nf -c WES.config --bam_path --outdir [-profile slurm|mac] +``` + #### Create Kinship container ```bash guixr pack -f squashfs -RR -S /bin=bin king plink-ng vcftools@0.1.14 bash glibc-utf8-locales tzdata coreutils procps grep sed bootstrap-binaries diff --git a/WES_Fingerprint.nf b/WES_Fingerprint.nf new file mode 100644 index 0000000..3e89fc4 --- /dev/null +++ b/WES_Fingerprint.nf @@ -0,0 +1,55 @@ +#!/usr/bin/env nextflow +nextflow.preview.dsl=2 + +include extractBamFromDir from './NextflowModules/Utils/bam.nf' + +// Fingerprint modules +include UnifiedGenotyper as GATK_UnifiedGenotyper from './NextflowModules/GATK/3.8-1-0-gf15c1c3ef/UnifiedGenotyper.nf' params(gatk_path: "$params.gatk_path", genome:"$params.genome", optional: "--intervals $params.dxtracks_path/$params.fingerprint_target --output_mode EMIT_ALL_SITES") + +def bam_files = extractBamFromDir(params.bam_path) +def analysis_id = params.outdir.split('/')[-1] + +workflow { + // GATK UnifiedGenotyper (fingerprint) + GATK_UnifiedGenotyper(bam_files) +} + +// Workflow completion notification +workflow.onComplete { + // HTML Template + def template = new File("$baseDir/assets/workflow_complete.html") + def binding = [ + runName: analysis_id, + workflow: workflow + ] + def engine = new groovy.text.GStringTemplateEngine() + def email_html = engine.createTemplate(template).make(binding).toString() + + // Send email + if (workflow.success) { + def subject = "WES Fingerprint Workflow Successful: ${analysis_id}" + sendMail(to: params.email, subject: subject, body: email_html) + } else { + def subject = "WES Fingerprint Workflow Failed: ${analysis_id}" + sendMail(to: params.email, subject: subject, body: email_html) + } +} + +process VersionLog { + // Custom process to log repository versions + tag {"VersionLog ${analysis_id}"} + label 'VersionLog' + shell = ['/bin/bash', '-eo', 'pipefail'] + + output: + path('repository_version.log') + + script: + """ + echo 'DxNextflowWes' > repository_version.log + git --git-dir=${workflow.projectDir}/.git log --pretty=oneline --decorate -n 2 >> repository_version.log + + echo 'Dx_tracks' >> repository_version.log + git --git-dir=${params.dxtracks_path}/.git log --pretty=oneline --decorate -n 2 >> repository_version.log + """ +} From 08df310c42fa25279e8403939d0f777833c141e5 Mon Sep 17 00:00:00 2001 From: Robert Ernst Date: Fri, 31 Jul 2020 12:03:07 +0200 Subject: [PATCH 15/16] Add fingerprint bash script. --- README.md | 4 +-- run_nextflow_wes_fingerprint.sh | 63 +++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100755 run_nextflow_wes_fingerprint.sh diff --git a/README.md b/README.md index b677b99..5fd0d14 100644 --- a/README.md +++ b/README.md @@ -14,12 +14,12 @@ curl -s https://get.nextflow.io | bash #### Running WES workflow ```bash -nextflow run WES.nf -c WES.config --fastq_path --outdir [-profile slurm|mac] +nextflow run WES.nf -c WES.config --fastq_path --outdir --email [-profile slurm|mac] ``` #### Running WES Fingerprint workflow ```bash -nextflow run WES_Fingerprint.nf -c WES.config --bam_path --outdir [-profile slurm|mac] +nextflow run WES_Fingerprint.nf -c WES.config --bam_path --outdir --email [-profile slurm|mac] ``` #### Create Kinship container diff --git a/run_nextflow_wes_fingerprint.sh b/run_nextflow_wes_fingerprint.sh new file mode 100755 index 0000000..6356c8a --- /dev/null +++ b/run_nextflow_wes_fingerprint.sh @@ -0,0 +1,63 @@ +#!/bin/bash +set -euo pipefail + +workflow_path='/hpc/diaggen/software/production/DxNextflowWES' + +# Set input and output dirs +input=`realpath -e $1` +output=`realpath $2` +email=$3 +mkdir -p $output && cd $output +mkdir -p log + +if ! { [ -f 'workflow.running' ] || [ -f 'workflow.done' ] || [ -f 'workflow.failed' ]; }; then +touch workflow.running + +sbatch < Date: Mon, 10 Aug 2020 17:26:08 +0200 Subject: [PATCH 16/16] Update WES.nf Fix copy paste error. --- WES.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WES.nf b/WES.nf index 18ffaee..21fb483 100644 --- a/WES.nf +++ b/WES.nf @@ -14,7 +14,7 @@ include ViewUnmapped as Sambamba_ViewUnmapped from './NextflowModules/Sambamba/0 include Merge as Sambamba_Merge from './NextflowModules/Sambamba/0.7.0/Merge.nf' // HaplotypeCaller modules -include IntervalListTools as PICARD_IntervalListTools from './NextflowModules/Picard/2.22.0/IntervalListTools.nf' params(scatter_count:"500", , optional: "") +include IntervalListTools as PICARD_IntervalListTools from './NextflowModules/Picard/2.22.0/IntervalListTools.nf' params(scatter_count:"500", optional: "") include HaplotypeCaller as GATK_HaplotypeCaller from './NextflowModules/GATK/3.8-1-0-gf15c1c3ef/HaplotypeCaller.nf' params(gatk_path: "$params.gatk_path", genome:"$params.genome", optional: "$params.gatk_hc_options") include VariantFiltrationSnpIndel as GATK_VariantFiltration from './NextflowModules/GATK/3.8-1-0-gf15c1c3ef/VariantFiltration.nf' params( gatk_path: "$params.gatk_path", genome:"$params.genome", snp_filter: "$params.gatk_snp_filter", snp_cluster: "$params.gatk_snp_cluster", indel_filter: "$params.gatk_indel_filter"