@@ -45,13 +45,14 @@ workflow {
4545 species_name = params. species_name. toLowerCase(). replace(" " , " _" )
4646 remapping_required = params. source_assemblies_and_taxonomies. any { it[0 ] != params. target_assembly_accession }
4747
48- if (remapping_required) {
49- // Get only source assemblies and tax IDs that require remapping
50- source_asm_and_tax_ids = Channel . fromList(params. source_assemblies_and_taxonomies)
51- .filter { (source_asm, tax_ids) -> source_asm != params. target_assembly_accession }
48+ // Source assemblies that differ from target and require remapping
49+ // (source assemblies equal to target are removed because variants are already in target assembly)
50+ assemblies_to_remap = Channel . fromList(params. source_assemblies_and_taxonomies)
51+ .filter { it[ 0 ] != params. target_assembly_accession }
5252
53+ if (remapping_required) {
5354 // Process source genomes
54- retrieve_source_genome(source_asm_and_tax_ids , species_name)
55+ retrieve_source_genome(assemblies_to_remap , species_name)
5556 update_source_genome(
5657 retrieve_source_genome. out. fasta_and_report,
5758 params. remapping_config)
@@ -64,14 +65,14 @@ workflow {
6465 params. remapping_config)
6566
6667 // Remap required source assemblies
67- asm_tax_fasta_report = source_asm_and_tax_ids . combine(update_source_genome. out. updated_fasta_and_report, by : 0 )
68+ asm_tax_fasta_report = assemblies_to_remap . combine(update_source_genome. out. updated_fasta_and_report, by : 0 )
6869 .transpose()
6970 extract_vcf_from_mongo(asm_tax_fasta_report)
7071 remap_variants(
7172 extract_vcf_from_mongo. out. source_vcfs. transpose(),
7273 update_target_genome. out. updated_target_fasta)
7374 ingest_vcf_into_mongo(
74- remap_variants. out. remapped_vcfs,
75+ remap_variants. out. remapped_vcfs,
7576 update_target_genome. out. updated_target_report)
7677
7778 gather_counts(ingest_vcf_into_mongo. out. ingestion_log_filename)
@@ -82,16 +83,16 @@ workflow {
8283 cluster_unclustered_variants(qc_process_remapped. out. qc_log_filename)
8384 qc_clustering(cluster_unclustered_variants. out. rs_report_filename)
8485 qc_clustering_duplicate_rs_acc(cluster_unclustered_variants. out. rs_report_filename)
85-
86- // Backpropagate to source assemblies
86+
87+ // Backpropagate to source assemblies that required remapping
88+ // (source assemblies equal to target are excluded — no backpropagation needed)
8789 backpropagate_clusters(
88- source_asm_and_tax_ids ,
90+ assemblies_to_remap ,
8991 qc_clustering. out. qc_log_filename,
9092 qc_clustering_duplicate_rs_acc. out. qc_log_filename)
9193 } else {
92- // Only perform clustering on target assembly
93- // We're using params.genome_assembly_dir because cluster_unclustered_variants needs to receive a file object
94- cluster_unclustered_variants(params. genome_assembly_dir)
94+ // All source assemblies are already on the target assembly; no remapping needed.
95+ cluster_unclustered_variants(Channel . value(1 ))
9596 qc_clustering(cluster_unclustered_variants. out. rs_report_filename)
9697 qc_clustering_duplicate_rs_acc(cluster_unclustered_variants. out. rs_report_filename)
9798 }
@@ -344,7 +345,7 @@ process cluster_unclustered_variants {
344345 -e $params . output_dir /logs/${ log_filename} .err"
345346
346347 input:
347- path qc_log_filename
348+ val start_flag
348349
349350 output:
350351 path " ${ params.target_assembly_accession} _new_rs_report.txt" , emit: rs_report_filename
0 commit comments