Skip to content

Commit 5189691

Browse files
authored
Merge branch 'master' into ct-swiftseq-demux
2 parents 2153b3c + 5b8742e commit 5189691

5 files changed

Lines changed: 44 additions & 41 deletions

File tree

pipes/WDL/tasks/tasks_metagenomics.wdl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -784,6 +784,7 @@ task filter_bam_to_taxa {
784784
Boolean withoutChildren = false
785785
Boolean exclude_taxa = false
786786
String out_filename_suffix = "filtered"
787+
Boolean run_fastqc = false
787788

788789
Int machine_mem_gb = 26 + 10 * ceil(size(classified_reads_txt_gz, "GB"))
789790
String docker = "quay.io/broadinstitute/viral-classify:2.2.5"
@@ -843,6 +844,9 @@ task filter_bam_to_taxa {
843844
--loglevel=DEBUG
844845
845846
samtools view -c "~{out_basename}.bam" | tee classified_taxonomic_filter_read_count_post
847+
if [ "~{run_fastqc}" = "true" ]; then
848+
reports.py fastqc "~{out_basename}.bam" "~{out_basename}.fastqc.html"
849+
fi
846850
wait
847851
>>>
848852

@@ -852,6 +856,7 @@ task filter_bam_to_taxa {
852856
Int reads_matching_taxa = read_int("COUNT")
853857
Int classified_taxonomic_filter_read_count_post = read_int("classified_taxonomic_filter_read_count_post")
854858
String viralngs_version = read_string("VERSION")
859+
File? fastqc_html_report = "~{out_basename}.fastqc.html"
855860
}
856861

857862
runtime {
@@ -861,6 +866,7 @@ task filter_bam_to_taxa {
861866
disk: disk_size + " GB" # TES
862867
cpu: 8
863868
dx_instance_type: "mem3_ssd1_v2_x4"
869+
preemptible: 1
864870
maxRetries: 2
865871
}
866872
}

pipes/WDL/tasks/tasks_read_utils.wdl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ task merge_and_reheader_bams {
172172
File? reheader_table
173173
String out_basename = basename(in_bams[0], ".bam")
174174

175+
Boolean run_fastqc = false
175176
String docker = "quay.io/broadinstitute/viral-core:2.4.3"
176177
Int disk_size = 750
177178
Int machine_mem_gb = 4
@@ -211,14 +212,18 @@ task merge_and_reheader_bams {
211212
# summary stats on merged output
212213
samtools view -c "~{out_basename}.bam" | tee read_count_merged
213214
samtools flagstat "~{out_basename}.bam" | tee "~{out_basename}.bam.flagstat.txt"
214-
reports.py fastqc "~{out_basename}.bam" "~{out_basename}.fastqc.html"
215+
216+
# fastqc can be really slow on large files, make it optional
217+
if [ "~{run_fastqc}" = "true" ]; then
218+
reports.py fastqc "~{out_basename}.bam" "~{out_basename}.fastqc.html"
219+
fi
215220
>>>
216221

217222
output {
218223
File out_bam = "~{out_basename}.bam"
219224
Int read_count = read_int("read_count_merged")
220225
File flagstat = "~{out_basename}.bam.flagstat.txt"
221-
File fastqc = "~{out_basename}.fastqc.html"
226+
File? fastqc = "~{out_basename}.fastqc.html"
222227
String viralngs_version = read_string("VERSION")
223228
}
224229

pipes/WDL/workflows/assemble_denovo.wdl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,15 +158,15 @@ workflow assemble_denovo {
158158
Float mean_coverage = refine.align_to_self_merged_mean_coverage
159159

160160
File cleaned_bam = merge_cleaned_reads.out_bam
161-
File cleaned_fastqc = merge_cleaned_reads.fastqc
161+
File? cleaned_fastqc = merge_cleaned_reads.fastqc
162162
Int depletion_read_count_post = merge_cleaned_reads.read_count
163163

164164
File taxfilt_bam = merge_taxfilt_reads.out_bam
165-
File taxfilt_fastqc = merge_taxfilt_reads.fastqc
165+
File? taxfilt_fastqc = merge_taxfilt_reads.fastqc
166166
Int filter_read_count_post = merge_taxfilt_reads.read_count
167167

168168
File dedup_bam = merge_dedup_reads.out_bam
169-
File dedup_fastqc = merge_dedup_reads.fastqc
169+
File? dedup_fastqc = merge_dedup_reads.fastqc
170170
Int dedup_read_count_post = merge_dedup_reads.read_count
171171

172172
File contigs_fasta = assemble.contigs_fasta

pipes/WDL/workflows/assemble_denovo_metagenomic.wdl

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ workflow assemble_denovo_metagenomic {
2727

2828
File ncbi_taxdump_tgz
2929

30-
File spikein_db
30+
File? spikein_db
3131
File trim_clip_db
3232

3333
File kraken2_db_tgz
@@ -103,10 +103,12 @@ workflow assemble_denovo_metagenomic {
103103
}
104104
File reads_bam = merge_raw_reads.out_bam
105105
106-
call reports.align_and_count as spikein {
107-
input:
108-
reads_bam = reads_bam,
109-
ref_db = spikein_db
106+
if(defined(spikein_db)) {
107+
call reports.align_and_count as spikein {
108+
input:
109+
reads_bam = reads_bam,
110+
ref_db = select_first([spikein_db])
111+
}
110112
}
111113
call metagenomics.kraken2 as kraken2 {
112114
input:
@@ -123,9 +125,6 @@ workflow assemble_denovo_metagenomic {
123125
taxonomic_names = taxa_to_dehost,
124126
out_filename_suffix = "hs_depleted"
125127
}
126-
call reports.fastqc as fastqc_cleaned {
127-
input: reads_bam = deplete.bam_filtered_to_taxa
128-
}
129128
call metagenomics.filter_bam_to_taxa as filter_acellular {
130129
input:
131130
classified_bam = reads_bam,
@@ -295,6 +294,7 @@ workflow assemble_denovo_metagenomic {
295294
Int read_counts_prespades_subsample = spades.subsample_read_count
296295

297296
File kraken2_summary_report = kraken2.kraken2_summary_report
297+
File kraken2_reads_report = kraken2.kraken2_reads_report
298298
File kraken2_krona_plot = kraken2.krona_report_html
299299
File kraken2_top_taxa_report = report_primary_kraken_taxa.ranked_focal_report
300300
String kraken2_focal_taxon_name = report_primary_kraken_taxa.focal_tax_name
@@ -305,12 +305,12 @@ workflow assemble_denovo_metagenomic {
305305
Int kraken2_top_taxon_num_reads = report_primary_kraken_taxa.num_reads
306306
Float kraken2_top_taxon_pct_of_focal = report_primary_kraken_taxa.percent_of_focal
307307

308-
File raw_fastqc = merge_raw_reads.fastqc
309-
File cleaned_fastqc = fastqc_cleaned.fastqc_html
310-
File spikein_report = spikein.report
311-
String spikein_tophit = spikein.top_hit_id
312-
String spikein_pct_of_total_reads = spikein.pct_total_reads_mapped
313-
String spikein_pct_lesser_hits = spikein.pct_lesser_hits_of_mapped
308+
File? raw_fastqc = merge_raw_reads.fastqc
309+
File? cleaned_fastqc = deplete.fastqc_html_report
310+
File? spikein_report = spikein.report
311+
String? spikein_tophit = spikein.top_hit_id
312+
String? spikein_pct_of_total_reads = spikein.pct_total_reads_mapped
313+
String? spikein_pct_lesser_hits = spikein.pct_lesser_hits_of_mapped
314314

315315
String viral_classify_version = kraken2.viralngs_version
316316
String viral_assemble_version = spades.viralngs_version

pipes/WDL/workflows/classify_single.wdl

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ workflow classify_single {
2020

2121
File ncbi_taxdump_tgz
2222

23-
File spikein_db
23+
File? spikein_db
2424
File trim_clip_db
2525

2626
File kraken2_db_tgz
@@ -57,10 +57,6 @@ workflow classify_single {
5757
description: "An NCBI taxdump.tar.gz file that contains, at the minimum, a nodes.dmp and names.dmp file.",
5858
patterns: ["*.tar.gz", "*.tar.lz4", "*.tar.bz2", "*.tar.zst"]
5959
}
60-
cleaned_fastqc: {
61-
description: "Output cleaned fastqc reports in HTML.",
62-
category: "other"
63-
}
6460
deduplicated_reads_unaligned: {
6561
description: "Deduplication on unaligned reads in BAM format using mvicuna or cdhit.",
6662
category: "other"
@@ -73,10 +69,6 @@ workflow classify_single {
7369
description: "Kraken report output file.",
7470
category: "other"
7571
}
76-
raw_fastqc:{
77-
description: "Merged raw fastqc reads.",
78-
category: "other"
79-
}
8072

8173
}
8274

@@ -86,10 +78,12 @@ workflow classify_single {
8678
}
8779
File reads_bam = merge_raw_reads.out_bam
8880
89-
call reports.align_and_count as spikein {
90-
input:
91-
reads_bam = reads_bam,
92-
ref_db = spikein_db
81+
if(defined(spikein_db)) {
82+
call reports.align_and_count as spikein {
83+
input:
84+
reads_bam = reads_bam,
85+
ref_db = select_first([spikein_db])
86+
}
9387
}
9488
call metagenomics.kraken2 as kraken2 {
9589
input:
@@ -106,9 +100,6 @@ workflow classify_single {
106100
taxonomic_names = taxa_to_dehost,
107101
out_filename_suffix = "hs_depleted"
108102
}
109-
call reports.fastqc as fastqc_cleaned {
110-
input: reads_bam = deplete.bam_filtered_to_taxa
111-
}
112103
call metagenomics.filter_bam_to_taxa as filter_acellular {
113104
input:
114105
classified_bam = reads_bam,
@@ -182,6 +173,7 @@ workflow classify_single {
182173
Int read_counts_prespades_subsample = spades.subsample_read_count
183174

184175
File kraken2_summary_report = kraken2.kraken2_summary_report
176+
File kraken2_reads_report = kraken2.kraken2_reads_report
185177
File kraken2_krona_plot = kraken2.krona_report_html
186178
File kraken2_top_taxa_report = report_primary_kraken_taxa.ranked_focal_report
187179
String kraken2_focal_taxon_name = report_primary_kraken_taxa.focal_tax_name
@@ -197,12 +189,12 @@ workflow classify_single {
197189
Array[Int]? skani_hits_taxids = skani_hit_taxid
198190
Array[String]? skani_hits_taxnames = skani_hit_taxname
199191

200-
File raw_fastqc = merge_raw_reads.fastqc
201-
File cleaned_fastqc = fastqc_cleaned.fastqc_html
202-
File spikein_report = spikein.report
203-
String spikein_tophit = spikein.top_hit_id
204-
String spikein_pct_of_total_reads = spikein.pct_total_reads_mapped
205-
String spikein_pct_lesser_hits = spikein.pct_lesser_hits_of_mapped
192+
File? raw_fastqc = merge_raw_reads.fastqc
193+
File? cleaned_fastqc = deplete.fastqc_html_report
194+
File? spikein_report = spikein.report
195+
String? spikein_tophit = spikein.top_hit_id
196+
String? spikein_pct_of_total_reads = spikein.pct_total_reads_mapped
197+
String? spikein_pct_lesser_hits = spikein.pct_lesser_hits_of_mapped
206198

207199
String kraken2_viral_classify_version = kraken2.viralngs_version
208200
String deplete_viral_classify_version = deplete.viralngs_version

0 commit comments

Comments
 (0)