How to trigger next process on completion of previous process? Simple question but I am stumped. (I am still learning Nextflow)
I have a process which takes as input a channel of files and processes each file separately.
There is a second process which needs to wait until all files are complete, so it can merge the outputs into a single collated file.
How can I do this? I have tried subscribing to &quot;onComplete&quot; event to no avail as I cannot specify a process as the function to trigger.

files = Channel.from params.the_files_list

process process_files {

    input:
    val file_path from files

    output:
    stdout result

    &quot;&quot;&quot;
    python ./process_one_file.py $file_path
    &quot;&quot;&quot;
}

process merge_results {
    
    input:
    ????

    output:
    ????

    script:
    &quot;&quot;&quot;
    echo &quot;How to trigger this process once, after all individual files are processed?&quot;
    &quot;&quot;&quot;
        
}

??? Want to do something like this
result.subscribe onComplete: merge_results

```
So from this page...
https://groups.google.com/g/nextflow/c/jt77_-uApMs
It is the &quot;scatter-gather&quot; pattern. I think the answer is to collect() the channel as follows - interested to hear if there is a better way
files = Channel.from params.the_files_list

process process_files {

    input:
    val file_path from files

    output:
    stdout result

    &quot;&quot;&quot;
    python ./process_one_file.py $file_path
    &quot;&quot;&quot;
}

process merge_results {
    
    input:
    val go from result.collect()

    script:
    &quot;&quot;&quot;
    echo &quot;Triggered once after all files complete!&quot;
    &quot;&quot;&quot;
        
}