From 0915bf567217cdd827dd8b295ebe6cbc3b762bfd Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Thu, 19 Sep 2024 18:24:09 -0400 Subject: [PATCH] Terra/Cromwell doesnt like write_tsv outside of input context --- .../workflows/scaffold_and_refine_multitaxa.wdl | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pipes/WDL/workflows/scaffold_and_refine_multitaxa.wdl b/pipes/WDL/workflows/scaffold_and_refine_multitaxa.wdl index b6d8e7de5..0af33b228 100644 --- a/pipes/WDL/workflows/scaffold_and_refine_multitaxa.wdl +++ b/pipes/WDL/workflows/scaffold_and_refine_multitaxa.wdl @@ -50,7 +50,6 @@ workflow scaffold_and_refine_multitaxa { # assemble and produce stats for every reference cluster Array[String] assembly_header = ["entity:assembly_id", "assembly_name", "sample_id", "sample_name", "taxid", "tax_name", "assembly_fasta", "aligned_only_reads_bam", "coverage_plot", "assembly_length", "assembly_length_unambiguous", "reads_aligned", "mean_coverage", "percent_reference_covered", "scaffolding_num_segments_recovered", "reference_num_segments_required", "reference_length", "reference_accessions", "skani_num_ref_clusters", "skani_this_cluster_num_refs", "skani_dist_tsv", "scaffolding_ani", "scaffolding_pct_ref_cov", "intermediate_gapfill_fasta", "assembly_preimpute_length_unambiguous", "replicate_concordant_sites", "replicate_discordant_snps", "replicate_discordant_indels", "replicate_discordant_vcf", "isnvsFile", "aligned_bam", "coverage_tsv", "read_pairs_aligned", "bases_aligned", "coverage_genbank", "assembly_method", "sample"] - File assembly_header_tsv = write_tsv([assembly_header]) scatter(ref_cluster_tar in select_references.matched_reference_clusters_fastas_tars) { call utils.tar_extract { @@ -160,16 +159,23 @@ workflow scaffold_and_refine_multitaxa { ### summary stats if (length(select_all(stat_by_taxon)) > 0) { - call utils.concatenate { + call utils.concatenate as assembly_stats_non_empty { input: - infiles = [assembly_header_tsv, write_tsv(select_all(stat_by_taxon))], + infiles = [write_tsv([assembly_header]), write_tsv(select_all(stat_by_taxon))], + output_name = "assembly_metadata-~{sample_id}.tsv" + } + } + if (length(select_all(stat_by_taxon)) == 0) { + call utils.concatenate as assembly_stats_empty { + input: + infiles = [write_tsv([assembly_header])], output_name = "assembly_metadata-~{sample_id}.tsv" } } output { Array[Map[String,String]] assembly_stats_by_taxon = stats_by_taxon - File assembly_stats_by_taxon_tsv = select_first([concatenate.combined, assembly_header_tsv]) + File assembly_stats_by_taxon_tsv = select_first([assembly_stats_non_empty.combined, assembly_stats_empty.combined]) String assembly_method = "viral-ngs/scaffold_and_refine_multitaxa" #String assembly_top_taxon_id = select_references.top_matches_per_cluster_basenames[0]