Skip to content

Commit 1b1b109

Browse files
authored
Merge pull request #935 from maxulysse/build_only_index
Add build_only_index flag
2 parents e7ca110 + c39c7b6 commit 1b1b109

File tree

12 files changed

+250
-97
lines changed

12 files changed

+250
-97
lines changed

conf/modules/prepare_genome.config

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ process {
1818
withName: 'BWAMEM1_INDEX' {
1919
ext.when = { !params.bwa && params.step == "mapping" && params.aligner == "bwa-mem" }
2020
publishDir = [
21-
enabled: params.save_reference,
21+
enabled: (params.save_reference || params.build_only_index),
2222
mode: params.publish_dir_mode,
2323
path: { "${params.outdir}/reference" },
2424
pattern: "bwa"
@@ -28,7 +28,7 @@ process {
2828
withName: 'BWAMEM2_INDEX' {
2929
ext.when = { !params.bwamem2 && params.step == "mapping" && params.aligner == "bwa-mem2" }
3030
publishDir = [
31-
enabled: params.save_reference,
31+
enabled: (params.save_reference || params.build_only_index),
3232
mode: params.publish_dir_mode,
3333
path: { "${params.outdir}/reference" },
3434
pattern: "bwamem2"
@@ -38,7 +38,7 @@ process {
3838
withName: 'DRAGMAP_HASHTABLE' {
3939
ext.when = { !params.dragmap && params.step == "mapping" && params.aligner == "dragmap" }
4040
publishDir = [
41-
enabled: params.save_reference,
41+
enabled: (params.save_reference || params.build_only_index),
4242
mode: params.publish_dir_mode,
4343
path: { "${params.outdir}/reference" },
4444
pattern: "dragmap"
@@ -48,7 +48,7 @@ process {
4848
withName: 'GATK4_CREATESEQUENCEDICTIONARY' {
4949
ext.when = { !params.dict && params.step != "annotate" && params.step != "controlfreec" }
5050
publishDir = [
51-
enabled: params.save_reference,
51+
enabled: (params.save_reference || params.build_only_index),
5252
mode: params.publish_dir_mode,
5353
path: { "${params.outdir}/reference/dict" },
5454
pattern: "*dict"
@@ -58,7 +58,7 @@ process {
5858
withName: 'MSISENSORPRO_SCAN' {
5959
ext.when = { params.tools && params.tools.split(',').contains('msisensorpro') }
6060
publishDir = [
61-
enabled: params.save_reference,
61+
enabled: (params.save_reference || params.build_only_index),
6262
mode: params.publish_dir_mode,
6363
path: { "${params.outdir}/reference/msi" },
6464
pattern: "*list"
@@ -68,7 +68,7 @@ process {
6868
withName: 'SAMTOOLS_FAIDX' {
6969
ext.when = { !params.fasta_fai && params.step != "annotate" }
7070
publishDir = [
71-
enabled: params.save_reference,
71+
enabled: (params.save_reference || params.build_only_index),
7272
mode: params.publish_dir_mode,
7373
path: { "${params.outdir}/reference/fai" },
7474
pattern: "*fai"
@@ -78,7 +78,7 @@ process {
7878
withName: 'TABIX_DBSNP' {
7979
ext.when = { !params.dbsnp_tbi && params.dbsnp && ((params.step == "mapping" || params.step == "markduplicates" || params.step == "prepare_recalibration") || params.tools && (params.tools.split(',').contains('controlfreec') || params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('mutect2'))) }
8080
publishDir = [
81-
enabled: params.save_reference,
81+
enabled: (params.save_reference || params.build_only_index),
8282
mode: params.publish_dir_mode,
8383
path: { "${params.outdir}/reference/dbsnp" },
8484
pattern: "*vcf.gz.tbi"
@@ -88,7 +88,7 @@ process {
8888
withName: 'TABIX_GERMLINE_RESOURCE' {
8989
ext.when = { !params.germline_resource_tbi && params.germline_resource && params.tools && params.tools.split(',').contains('mutect2') }
9090
publishDir = [
91-
enabled: params.save_reference,
91+
enabled: (params.save_reference || params.build_only_index),
9292
mode: params.publish_dir_mode,
9393
path: { "${params.outdir}/reference/germline_resource" },
9494
pattern: "*vcf.gz.tbi"
@@ -98,7 +98,7 @@ process {
9898
withName: 'TABIX_KNOWN_INDELS' {
9999
ext.when = { !params.known_indels_tbi && params.known_indels && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && params.tools.split(',').contains('haplotypecaller')) ) }
100100
publishDir = [
101-
enabled: params.save_reference,
101+
enabled: (params.save_reference || params.build_only_index),
102102
mode: params.publish_dir_mode,
103103
path: { "${params.outdir}/reference/known_indels" },
104104
pattern: "*vcf.gz.tbi"
@@ -108,7 +108,7 @@ process {
108108
withName: 'TABIX_KNOWN_SNPS' {
109109
ext.when = { !params.known_snps_tbi && params.known_snps && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && params.tools.split(',').contains('haplotypecaller')) ) }
110110
publishDir = [
111-
enabled: params.save_reference,
111+
enabled: (params.save_reference || params.build_only_index),
112112
mode: params.publish_dir_mode,
113113
path: { "${params.outdir}/reference/known_snps" },
114114
pattern: "*vcf.gz.tbi"
@@ -118,7 +118,7 @@ process {
118118
withName: 'TABIX_PON' {
119119
ext.when = { !params.pon_tbi && params.pon && params.tools && params.tools.split(',').contains('mutect2') }
120120
publishDir = [
121-
enabled: params.save_reference,
121+
enabled: (params.save_reference || params.build_only_index),
122122
mode: params.publish_dir_mode,
123123
path: { "${params.outdir}/reference/pon" },
124124
pattern: "*vcf.gz.tbi"

conf/modules/prepare_intervals.config

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ process {
1717

1818
withName: 'CREATE_INTERVALS_BED' {
1919
publishDir = [
20-
enabled: params.save_reference,
20+
enabled: (params.save_reference || params.build_only_index),
2121
mode: params.publish_dir_mode,
2222
path: { "${params.outdir}/reference/intervals" },
2323
pattern: "*bed"
@@ -26,7 +26,7 @@ process {
2626

2727
withName: 'GATK4_INTERVALLISTTOBED' {
2828
publishDir = [
29-
enabled: params.save_reference,
29+
enabled: (params.save_reference || params.build_only_index),
3030
mode: params.publish_dir_mode,
3131
path: { "${params.outdir}/reference/intervals" },
3232
pattern: "*bed"
@@ -36,7 +36,7 @@ process {
3636
withName: 'TABIX_BGZIPTABIX_INTERVAL_SPLIT' {
3737
ext.prefix = {"${meta.id}"}
3838
publishDir = [
39-
enabled: params.save_reference,
39+
enabled: (params.save_reference || params.build_only_index),
4040
mode: params.publish_dir_mode,
4141
path: { "${params.outdir}/reference/intervals" },
4242
pattern: "*bed.gz"

lib/WorkflowMain.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ class WorkflowMain {
8080
NfcoreTemplate.awsBatch(workflow, params)
8181

8282
// Check input has been provided
83-
if (!params.input) {
83+
if (!params.input && !params.build_only_index) {
8484
log.warn "No samplesheet specified, attempting to restart from csv files present in ${params.outdir}"
8585
WorkflowSarek.retrieveInput(params, log)
8686
}

lib/WorkflowSarek.groovy

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -76,28 +76,30 @@ class WorkflowSarek {
7676
}
7777

7878
public static String retrieveInput(params, log){
79-
switch (params.step) {
80-
case 'mapping': log.warn "Can't start with step $params.step without samplesheet"
81-
System.exit(1);
82-
break
83-
case 'markduplicates': log.warn "Using file ${params.outdir}/csv/mapped.csv"
84-
params.putIfAbsent("input","${params.outdir}/csv/mapped.csv");
85-
break
86-
case 'prepare_recalibration': log.warn "Using file ${params.outdir}/csv/markduplicates_no_table.csv"
87-
params.putIfAbsent("input", "${params.outdir}/csv/markduplicates_no_table.csv");
88-
break
89-
case 'recalibrate': log.warn "Using file ${params.outdir}/csv/markduplicates.csv"
90-
params.putIfAbsent("input", "${params.outdir}/csv/markduplicates.csv");
91-
break
92-
case 'variant_calling': log.warn "Using file ${params.outdir}/csv/recalibrated.csv"
93-
params.putIfAbsent("input", "${params.outdir}/csv/recalibrated.csv");
94-
break
95-
// case 'controlfreec': csv_file = file("${params.outdir}/variant_calling/csv/control-freec_mpileup.csv", checkIfExists: true); break
96-
case 'annotate': log.warn "Using file ${params.outdir}/csv/variantcalled.csv"
97-
params.putIfAbsent("input","${params.outdir}/csv/variantcalled.csv");
98-
break
99-
default: log.warn "Please provide an input samplesheet to the pipeline e.g. '--input samplesheet.csv'"
100-
exit 1, "Unknown step $params.step"
79+
if (!params.build_only_index) {
80+
switch (params.step) {
81+
case 'mapping': log.warn "Can't start with step $params.step without samplesheet"
82+
System.exit(1);
83+
break
84+
case 'markduplicates': log.warn "Using file ${params.outdir}/csv/mapped.csv"
85+
params.putIfAbsent("input","${params.outdir}/csv/mapped.csv");
86+
break
87+
case 'prepare_recalibration': log.warn "Using file ${params.outdir}/csv/markduplicates_no_table.csv"
88+
params.putIfAbsent("input", "${params.outdir}/csv/markduplicates_no_table.csv");
89+
break
90+
case 'recalibrate': log.warn "Using file ${params.outdir}/csv/markduplicates.csv"
91+
params.putIfAbsent("input", "${params.outdir}/csv/markduplicates.csv");
92+
break
93+
case 'variant_calling': log.warn "Using file ${params.outdir}/csv/recalibrated.csv"
94+
params.putIfAbsent("input", "${params.outdir}/csv/recalibrated.csv");
95+
break
96+
// case 'controlfreec': csv_file = file("${params.outdir}/variant_calling/csv/control-freec_mpileup.csv", checkIfExists: true); break
97+
case 'annotate': log.warn "Using file ${params.outdir}/csv/variantcalled.csv"
98+
params.putIfAbsent("input","${params.outdir}/csv/variantcalled.csv");
99+
break
100+
default: log.warn "Please provide an input samplesheet to the pipeline e.g. '--input samplesheet.csv'"
101+
exit 1, "Unknown step $params.step"
102+
}
101103
}
102104
}
103105
}

nextflow.config

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@ params {
1414
step = 'mapping' // Starts with mapping
1515

1616
// References
17-
genome = 'GATK.GRCh38'
18-
igenomes_base = 's3://ngi-igenomes/igenomes'
19-
igenomes_ignore = false
20-
save_reference = false // Built references not saved
17+
genome = 'GATK.GRCh38'
18+
igenomes_base = 's3://ngi-igenomes/igenomes'
19+
igenomes_ignore = false
20+
save_reference = false // Built references not saved
21+
build_only_index = false // Only build the reference indexes
2122

2223
// Main options
2324
no_intervals = false // Intervals will be built from the fasta file

nextflow_schema.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -728,6 +728,12 @@
728728
"description": "Save built references.",
729729
"help_text": "Set this parameter, if you wish to save all computed reference files. This is useful to avoid re-computation on future runs."
730730
},
731+
"build_only_index": {
732+
"type": "boolean",
733+
"fa_icon": "fas fa-download",
734+
"description": "Only built references.",
735+
"help_text": "Set this parameter, if you wish to compute and save all computed reference files. No alignment or any other downstream steps will be performed."
736+
},
731737
"igenomes_base": {
732738
"type": "string",
733739
"format": "directory-path",

0 commit comments

Comments
 (0)