@@ -98,37 +98,40 @@ workflow assemble_refbased {
9898 Array [String ] ivar_stats_row = [ivar_stats ['file' ], ivar_stats ['trim_percent' ], ivar_stats ['trim_count' ]]
9999 }
100100
101- call read_utils .merge_and_reheader_bams as merge_align_to_ref {
102- input :
103- in_bams = ivar_trim .aligned_trimmed_bam ,
104- sample_name = sample_name ,
105- out_basename = "~{sample_name }.align_to_ref.trimmed"
101+ if (length (reads_unmapped_bams )>1 ) {
102+ call read_utils .merge_and_reheader_bams as merge_align_to_ref {
103+ input :
104+ in_bams = ivar_trim .aligned_trimmed_bam ,
105+ sample_name = sample_name ,
106+ out_basename = "~{sample_name }.align_to_ref.trimmed"
107+ }
106108 }
109+ File aligned_trimmed_bam = select_first ([merge_align_to_ref .out_bam , ivar_trim .aligned_trimmed_bam [0 ]])
107110
108111 call reports .alignment_metrics {
109112 input :
110- aligned_bam = merge_align_to_ref . out_bam ,
113+ aligned_bam = aligned_trimmed_bam ,
111114 ref_fasta = reference_fasta
112115 }
113116
114117 call assembly .run_discordance {
115118 input :
116- reads_aligned_bam = merge_align_to_ref . out_bam ,
119+ reads_aligned_bam = aligned_trimmed_bam ,
117120 reference_fasta = reference_fasta ,
118121 min_coverage = min_coverage +1 ,
119122 out_basename = sample_name
120123 }
121124
122125 call reports .plot_coverage as plot_ref_coverage {
123126 input :
124- aligned_reads_bam = merge_align_to_ref . out_bam ,
127+ aligned_reads_bam = aligned_trimmed_bam ,
125128 sample_name = sample_name
126129 }
127130
128131 call assembly .refine_assembly_with_aligned_reads as call_consensus {
129132 input :
130133 reference_fasta = reference_fasta ,
131- reads_aligned_bam = merge_align_to_ref . out_bam ,
134+ reads_aligned_bam = aligned_trimmed_bam ,
132135 min_coverage = min_coverage ,
133136 sample_name = sample_name
134137 }
@@ -145,16 +148,19 @@ workflow assemble_refbased {
145148 }
146149 }
147150
148- call read_utils .merge_and_reheader_bams as merge_align_to_self {
149- input :
150- in_bams = align_to_self .aligned_only_reads_bam ,
151- sample_name = sample_name ,
152- out_basename = "~{sample_name }.merge_align_to_self"
151+ if (length (reads_unmapped_bams )>1 ) {
152+ call read_utils .merge_and_reheader_bams as merge_align_to_self {
153+ input :
154+ in_bams = align_to_self .aligned_only_reads_bam ,
155+ sample_name = sample_name ,
156+ out_basename = "~{sample_name }.merge_align_to_self"
157+ }
153158 }
159+ File aligned_self_bam = select_first ([merge_align_to_self .out_bam , align_to_self .aligned_only_reads_bam [0 ]])
154160
155161 call reports .plot_coverage as plot_self_coverage {
156162 input :
157- aligned_reads_bam = merge_align_to_self . out_bam ,
163+ aligned_reads_bam = aligned_self_bam ,
158164 sample_name = sample_name
159165 }
160166
@@ -186,7 +192,7 @@ workflow assemble_refbased {
186192 Array [Int ] align_to_ref_per_input_reads_aligned = align_to_ref .reads_aligned
187193 Array [File ] align_to_ref_per_input_fastqc = align_to_ref .aligned_only_reads_fastqc
188194
189- File align_to_ref_merged_aligned_trimmed_only_bam = merge_align_to_ref . out_bam
195+ File align_to_ref_merged_aligned_trimmed_only_bam = aligned_trimmed_bam
190196 File align_to_ref_merged_coverage_plot = plot_ref_coverage .coverage_plot
191197 File align_to_ref_merged_coverage_tsv = plot_ref_coverage .coverage_tsv
192198 Int align_to_ref_merged_reads_aligned = plot_ref_coverage .reads_aligned
@@ -197,7 +203,7 @@ workflow assemble_refbased {
197203 File picard_metrics_alignment = alignment_metrics .alignment_metrics
198204 File picard_metrics_insert_size = alignment_metrics .insert_size_metrics
199205
200- File align_to_self_merged_aligned_only_bam = merge_align_to_self . out_bam
206+ File align_to_self_merged_aligned_only_bam = aligned_self_bam
201207 File align_to_self_merged_coverage_plot = plot_self_coverage .coverage_plot
202208 File align_to_self_merged_coverage_tsv = plot_self_coverage .coverage_tsv
203209 Int align_to_self_merged_reads_aligned = plot_self_coverage .reads_aligned
0 commit comments