James Fellows Yates
02/10/2026, 8:56 AM{
"input": "<https://raw.githubusercontent.com/nf-core/test-datasets/funcscan/samplesheet_reduced.csv>",
"multiqc_config": null,
"multiqc_title": null,
"multiqc_logo": null,
"max_multiqc_email_size": "25.MB",
To make a MultiQC compatible JSON as well (my idea was to just inject the MultiQC header info), but this appears to be MUCH more involved to modify the default nf-core parameter JSON to get it into the correct 'long' format of one column for parameter name and one for values than I had hoped...
For example: If I just add the header section, like this
bash
{
"id": "basic_pipeline_params",
"section_name": "Basic Pipeline Parameters",
"description": "Core configuration parameters",
"plot_type": "table",
"pconfig": {
"id": "basic_params_table",
"title": "Basic Configuration"
},
"data": {
"input": "<https://raw.githubusercontent.com/nf-core/test-datasets/funcscan/samplesheet_reduced.csv>",
"outdir": "./results",
"annotation_tool": "pyrodigal",
"run_amp_screening": "true",
"run_arg_screening": "true",
"run_bgc_screening": "false"
}
}
I get a long traceback error.
To get it to work, I have to add an intermedia 'key' ( guess normally representing samples):
{
"id": "pipeline_parameters",
"section_name": "Pipeline Parameters",
"description": "Configuration parameters used in the pipeline run",
"plot_type": "table",
"pconfig": {
"id": "pipeline_params_table",
"title": "Pipeline Configuration",
"col1_header": "Parameter"
},
"data": {
"Pipeline Configuration": {
"input": "<https://raw.githubusercontent.com/nf-core/test-datasets/funcscan/samplesheet_reduced.csv>",
"multiqc_config": "null",
"multiqc_title": "null",
"multiqc_logo": "null",
"max_multiqc_email_size": "25.MB",
"multiqc_methods_description": "null"
}
}
}
But this is nasty because it ends up with a single row wide table with the sample name as 'Pipeline configuratio'n and each parameter is a column
To make it wide table I have do this large structure change making each parameter it's own key...
{
"id": "pipeline_parameters",
"section_name": "Pipeline Parameters",
"description": "Configuration parameters used in the pipeline run",
"plot_type": "table",
"pconfig": {
"id": "pipeline_params_table",
"title": "Pipeline Configuration"
},
"data": {
"input": {
"Value": "<https://raw.githubusercontent.com/nf-core/test-datasets/funcscan/samplesheet_reduced.csv>"
},
"multiqc_config": {
"Value": "null"
},
"multiqc_title": {
"Value": "null"
},
"multiqc_logo": {
"Value": "null"
},
"max_multiqc_email_size": {
"Value": "25.MB"
},
Seqera AI keeps telling me make it into a TSV table instead... (which indeed works straight out)
# id: 'pipeline_parameters'
# section_name: 'Pipeline Parameters'
# description: 'Configuration parameters used in the pipeline run'
# plot_type: 'table'
# pconfig:
# id: 'pipeline_params_table'
# title: 'Pipeline Configuration'
# col1_header: 'Parameter'
Parameter Value
input <https://raw.githubusercontent.com/nf-core/test-datasets/funcscan/samplesheet_reduced.csv>
multiqc_config null
multiqc_title null
multiqc_logo null
max_multiqc_email_size 25.MB
multiqc_methods_description null
*So: should I just drop the idea of using the JSON file and converting to TSV instead? *Phil Ewels
02/10/2026, 10:58 AMShould I write a thing using loads of code, or a small amount of code?
Phil Ewels
02/10/2026, 10:58 AMJames Fellows Yates
02/10/2026, 10:58 AMJames Fellows Yates
02/10/2026, 10:59 AMPhil Ewels
02/10/2026, 11:02 AMTo make it wide table I have do this large structure change making each parameter it's own key...This sounds like it should be a single
map call, no?Phil Ewels
02/10/2026, 11:03 AMmap { key, val -> key: ["Value": val] } or something off the top of my headJames Fellows Yates
02/10/2026, 11:07 AMJames Fellows Yates
02/10/2026, 11:07 AMJames Fellows Yates
02/10/2026, 11:08 AMPhil Ewels
02/10/2026, 11:08 AMJonathan Manning
02/10/2026, 1:23 PMcol1_header in pconfig, otherwise the first column defaults to "Sample Name":
"pconfig": {
"col1_header": "Parameter"
}
TSV gets this for free from the header row.James Fellows Yates
02/10/2026, 1:23 PM