Famke Bäuerle
07/17/2025, 7:23 AMThere seems to be a tradeoff between enforcing theAny thoughts on this? The PR is: https://github.com/nf-core/modules/pull/8762 (would be helpful to know what others think so that this module works for most approaches).appended to the start of outputs and losing the ability to specify the file extension, e.g.prefixAn alternative is to allow the process to take an--output-cell-metadata ${prefix}cell-metadata.csv.gzas an input variable, then specify the formats for all outputs using that, but that loses out on the ability to granularly control each file individually. Is it sufficient to just not enforce the file-extension prefixes for this process? We could leave it as the default for the one file that needs to be manually specified to avoid collisions with output glob detection, then allow the user to specify it for other files with task.ext if they wantedoutput format
Arthur
07/17/2025, 11:14 PMFamke Bäuerle
07/18/2025, 6:50 AMDerrik Gratz
07/18/2025, 5:25 PM${prefix}-output.csv.gz but the user wants the output in .parquet format, the name will not reflect that. There are ~5 files that have this name + extension option combo. The options I see:
1. Don't add the $prefix to each file by default. This gives a user full control of naming and extension
a. There is 1 file that must be renamed to be uniquely captured by the output channel globs, but it does not have format options. So whether or not this file uses the prefix is a separate question (if no other outputs will), but it does not relate to the other question of format/name collision
2. Do specify the $prefix for each file, locking in the file extension name for all files. We could also optionally:
a. Allow the user to specify a global output format
b. Have each file's output format be an input
Basically, is it worth adding a bunch of input vars (specifying each output file type) to make the full suite of options available if the ${prefix} must be appended to each output file? There's some tradeoff between simplicity, freedom, and compliance. Personally, I'm not sure of the use case of outputing the files in different formats, so I'm of the opinion that 2a is sufficient. If we aren't worried about enforcing $prefix, then we can just not worry about this whole thing, but I'm not sure how strong of a requirement that is for nf-core complianceArthur
07/18/2025, 10:15 PM--stats-file-format)
If so it would be somewhat trivial imo to have an input channel that takes a tuple of vals representing each output file type? This could then be used to determine the correct extensions and the correct flagsDerrik Gratz
07/18/2025, 10:58 PMDerrik Gratz
07/18/2025, 11:04 PMDerrik Gratz
07/18/2025, 11:06 PMArthur
07/18/2025, 11:08 PMDerrik Gratz
07/18/2025, 11:09 PMArthur
07/18/2025, 11:19 PMinput:
...
tuple val(stats_fmt), val(seq_fmt), val(report_fmt)
output:
...
script:
def stats_args = stats_fmt ? "--stats-format ${stats_fmt} --stats-file ${prefix}.somename.${stats_fmt}" : ""
"""
tool \\
--some-arg
${stats_args} \\
...
"""Arthur
07/18/2025, 11:20 PM[] or '') then it will just not set the optional fileDerrik Gratz
07/19/2025, 12:21 AM