Maxime Garcia
05/04/2026, 9:11 AMMahesh Binzer-Panchal
05/04/2026, 9:17 AMMaxime Garcia
05/04/2026, 9:18 AMMahesh Binzer-Panchal
05/04/2026, 9:19 AMMaxime Garcia
05/04/2026, 9:19 AMMaxime Garcia
05/04/2026, 9:20 AMMaxime Garcia
05/04/2026, 9:21 AMMaxime Garcia
05/04/2026, 9:21 AMMahesh Binzer-Panchal
05/04/2026, 9:25 AMMaxime Garcia
05/04/2026, 9:26 AMMaxime Garcia
05/04/2026, 9:27 AMMaxime Garcia
05/04/2026, 9:29 AMLouis Le Nézet
05/04/2026, 9:44 AMMahesh Binzer-Panchal
05/04/2026, 9:46 AMLouis Le Nézet
05/04/2026, 9:48 AMMahesh Binzer-Panchal
05/04/2026, 9:48 AM# Use curly brackets for dictionaries
contributors_str = contributors_str.replace("], [", "}, {").replace("[[", "[{").replace("]]", "}]")Mahesh Binzer-Panchal
05/04/2026, 9:50 AM# Read and parse manifest.contributors. Normalise and fix its fields,
# and return as a list of dictionaries
def parse_manifest_contributors(self) -> list:
field_names = ["name", "affiliation", "github", "contribution", "orcid", "email"]
# Grab the contributor list and convert to JSON
# TODO: can be removed once we switch to `nextflow config -o json`
contributors_str = self.pipeline_obj.nf_config["manifest.contributors"]
log.debug(f"manifest.contributors: {contributors_str}")
# JSON uses double quotes, not single quotes
contributors_str = contributors_str.replace("'", '"')
for key in field_names:
# All dictionary keys need to be quoted
contributors_str = contributors_str.replace(f"{key}:", f'"{key}":')
# Use curly brackets for dictionaries
contributors_str = contributors_str.replace("], [", "}, {").replace("[[", "[{").replace("]]", "}]")
log.debug(f"manifest.contributors (normalised): {contributors_str}")
try:
contributors = json.loads(contributors_str)
except json.JSONDecodeError as exc:
log.error(
"Could not parse `manifest.contributors` from nextflow.config. "
"Expected a list of maps, for example: [[name: 'First Last', github: 'user']]. "
f"Normalised string passed to JSON parser was: {contributors_str!r}. "
f"JSON decoding error: {exc}"
)
return []Mahesh Binzer-Panchal
05/04/2026, 9:50 AMMahesh Binzer-Panchal
05/04/2026, 9:55 AMlog.debug(f"manifest.contributors: {contributors_str}")Mahesh Binzer-Panchal
05/04/2026, 9:56 AMlog.debug(f"manifest.contributors (normalised): {contributors_str}")
for mineMaxime Garcia
05/04/2026, 10:32 AMDEBUG manifest.contributors: [[name:'Adrien Coulier', affiliation:'Pixelgen Technologies', github:'Aratz', contribution:['author'], orcid:'0000-0003-2702-1103'], [name:'Alfred Kedhammar', affiliation:'Clinical rocrate.py:404
Genomics', github:'kedhammar', contribution:['author']], [name:'Agrima Bhatt', affiliation:'National Genomics Infrastructure', github:'agrima2010', contribution:['author'], orcid:'0009-0004-5536-7210'],
[name:'Maxime U Garcia', affiliation:'National Genomics Infrastructure', github:'maxulysse', contribution:['contributor', 'maintainer'], orcid:'0000-0003-2827-9261'], [name:'Natalia Garcia Garcia',
github:'nggvs', contribution:['contributor']], [name:'Franziska Bonath', affiliation:'National Genomics Infrastructure', github:'FranBonath', contribution:['author'], orcid:'0000-0002-1270-1504'],
[name:'Pontus Höjer', affiliation:'National Genomics Infrastructure', github:'pontushojer', contribution:['contributor'], orcid:'0000-0001-8010-4755'], [name:'Edmund Miller', affiliation:'Seqera',
github:'edmundmiller', contribution:['contributor']], [name:'Ramprasad Neethiraj', affiliation:'Clinical Genomics', github:'ramprasadn', contribution:['author'], orcid:'0000-0001-7313-3734'], [name:'Matilda
Ă
slin', affiliation:'National Genomics Infrastructure', github:'matrulda', contribution:['author'], orcid:'0000-0002-2450-6415'], [name:'Patricie SkalĂĄkovĂĄ', affiliation:'Masaryk University',
github:'Patricie34', contribution:['contributor'], orcid:'0009-0009-0647-7639'], [name:'Eliott Bosshard', affiliation:'Clinical Genomics', github:'EliottBo', contribution:['contributor'],
orcid:'0009-0000-2384-0369'], [name:'Karthik Nair', affiliation:'National Genomics Infrastructure', github:'KarNair', contribution:['contributor']], [name:'Matthias Zepper', affiliation:'National Genomics
Infrastructure', github:'MatthiasZepper', contribution:['author'], orcid:'0000-0003-2880-8581'], [name:'Nelly Nyawira Nkonge', affiliation:'National Genomics Infrastructure', github:'nkongenelly',
contribution:['contributor'], orcid:'0000-0002-0396-8573'], [name:'Beatriz Vinhas', affiliation:'Clinical Genomics', github:'beatrizsavinhas', contribution:['contributor']], [name:'JĂșlia Mir Pedrol',
affiliation:'Center For Genomics Regulation', github:'mirpedrol', contribution:['contributor'], orcid:'0000-0001-6104-9260'], [name:'Cristina Tuñà i DomĂnguez', affiliation:'Flowmics', github:'ctuni',
contribution:['contributor']], [name:'Johannes Alneberg', affiliation:'National Genomics Infrastructure', github:'alneberg', contribution:['contributor'], orcid:'0000-0002-2467-008X'], [name:'Annick
Renevey', affiliation:'Clinical Genomics', github:'rannick', contribution:['contributor'], orcid:'0000-0001-7411-6063'], [name:'Adam Talbot', affiliation:'Seqera', github:'adamrtalbot',
contribution:['contributor']], [name:'Jonas Kjellin', affiliation:'National Genomics Infrastructure', github:'kjellinjonas', contribution:['contributor'], orcid:'0000-0002-3830-7046'], [name:'Mahesh
Binzer-Panchal', affiliation:'National Bioinformatics Infrastructure Sweden', github:'mahesh-panchal', contribution:['contributor'], orcid:'0000-0003-1675-0677'], [name:'Tori Griffin', affiliation:'National
Genomics Infrastructure', github:'torigiffin', contribution:['contributor']]]
DEBUG manifest.contributors (normalised): [{"name":"Adrien Coulier", "affiliation":"Pixelgen Technologies", "github":"Aratz", "contribution":["author"], "orcid":"0000-0003-2702-1103"}, {"name":"Alfred Kedhammar", rocrate.py:412
"affiliation":"Clinical Genomics", "github":"kedhammar", "contribution":["author"]}, {"name":"Agrima Bhatt", "affiliation":"National Genomics Infrastructure", "github":"agrima2010",
"contribution":["author"], "orcid":"0009-0004-5536-7210"}, {"name":"Maxime U Garcia", "affiliation":"National Genomics Infrastructure", "github":"maxulysse", "contribution":["contributor", "maintainer"],
"orcid":"0000-0003-2827-9261"}, {"name":"Natalia Garcia Garcia", "github":"nggvs", "contribution":["contributor"]}, {"name":"Franziska Bonath", "affiliation":"National Genomics Infrastructure",
"github":"FranBonath", "contribution":["author"], "orcid":"0000-0002-1270-1504"}, {"name":"Pontus Höjer", "affiliation":"National Genomics Infrastructure", "github":"pontushojer",
"contribution":["contributor"], "orcid":"0000-0001-8010-4755"}, {"name":"Edmund Miller", "affiliation":"Seqera", "github":"edmundmiller", "contribution":["contributor"]}, {"name":"Ramprasad Neethiraj",
"affiliation":"Clinical Genomics", "github":"ramprasadn", "contribution":["author"], "orcid":"0000-0001-7313-3734"}, {"name":"Matilda Ă
slin", "affiliation":"National Genomics Infrastructure",
"github":"matrulda", "contribution":["author"], "orcid":"0000-0002-2450-6415"}, {"name":"Patricie SkalĂĄkovĂĄ", "affiliation":"Masaryk University", "github":"Patricie34", "contribution":["contributor"],
"orcid":"0009-0009-0647-7639"}, {"name":"Eliott Bosshard", "affiliation":"Clinical Genomics", "github":"EliottBo", "contribution":["contributor"], "orcid":"0009-0000-2384-0369"}, {"name":"Karthik Nair",
"affiliation":"National Genomics Infrastructure", "github":"KarNair", "contribution":["contributor"]}, {"name":"Matthias Zepper", "affiliation":"National Genomics Infrastructure", "github":"MatthiasZepper",
"contribution":["author"], "orcid":"0000-0003-2880-8581"}, {"name":"Nelly Nyawira Nkonge", "affiliation":"National Genomics Infrastructure", "github":"nkongenelly", "contribution":["contributor"],
"orcid":"0000-0002-0396-8573"}, {"name":"Beatriz Vinhas", "affiliation":"Clinical Genomics", "github":"beatrizsavinhas", "contribution":["contributor"]}, {"name":"JĂșlia Mir Pedrol", "affiliation":"Center For
Genomics Regulation", "github":"mirpedrol", "contribution":["contributor"], "orcid":"0000-0001-6104-9260"}, {"name":"Cristina Tuñà i DomĂnguez", "affiliation":"Flowmics", "github":"ctuni",
"contribution":["contributor"]}, {"name":"Johannes Alneberg", "affiliation":"National Genomics Infrastructure", "github":"alneberg", "contribution":["contributor"], "orcid":"0000-0002-2467-008X"},
{"name":"Annick Renevey", "affiliation":"Clinical Genomics", "github":"rannick", "contribution":["contributor"], "orcid":"0000-0001-7411-6063"}, {"name":"Adam Talbot", "affiliation":"Seqera",
"github":"adamrtalbot", "contribution":["contributor"]}, {"name":"Jonas Kjellin", "affiliation":"National Genomics Infrastructure", "github":"kjellinjonas", "contribution":["contributor"],
"orcid":"0000-0002-3830-7046"}, {"name":"Mahesh Binzer-Panchal", "affiliation":"National Bioinformatics Infrastructure Sweden", "github":"mahesh-panchal", "contribution":["contributor"],
"orcid":"0000-0003-1675-0677"}, {"name":"Tori Griffin", "affiliation":"National Genomics Infrastructure", "github":"torigiffin", "contribution":["contributor"}]]
ERROR Could not parse `manifest.contributors` from nextflow.config. Expected a list of maps, for example: []. Normalised string passed to JSON parser was: '[{"name":"Adrien Coulier", "affiliation":"Pixelgen rocrate.py:416
Technologies", "github":"Aratz", "contribution":["author"], "orcid":"0000-0003-2702-1103"}, {"name":"Alfred Kedhammar", "affiliation":"Clinical Genomics", "github":"kedhammar", "contribution":["author"]},
{"name":"Agrima Bhatt", "affiliation":"National Genomics Infrastructure", "github":"agrima2010", "contribution":["author"], "orcid":"0009-0004-5536-7210"}, {"name":"Maxime U Garcia", "affiliation":"National
Genomics Infrastructure", "github":"maxulysse", "contribution":["contributor", "maintainer"], "orcid":"0000-0003-2827-9261"}, {"name":"Natalia Garcia Garcia", "github":"nggvs",
"contribution":["contributor"]}, {"name":"Franziska Bonath", "affiliation":"National Genomics Infrastructure", "github":"FranBonath", "contribution":["author"], "orcid":"0000-0002-1270-1504"},
{"name":"Pontus Höjer", "affiliation":"National Genomics Infrastructure", "github":"pontushojer", "contribution":["contributor"], "orcid":"0000-0001-8010-4755"}, {"name":"Edmund Miller",
"affiliation":"Seqera", "github":"edmundmiller", "contribution":["contributor"]}, {"name":"Ramprasad Neethiraj", "affiliation":"Clinical Genomics", "github":"ramprasadn", "contribution":["author"],
"orcid":"0000-0001-7313-3734"}, {"name":"Matilda Ă
slin", "affiliation":"National Genomics Infrastructure", "github":"matrulda", "contribution":["author"], "orcid":"0000-0002-2450-6415"}, {"name":"Patricie
SkalĂĄkovĂĄ", "affiliation":"Masaryk University", "github":"Patricie34", "contribution":["contributor"], "orcid":"0009-0009-0647-7639"}, {"name":"Eliott Bosshard", "affiliation":"Clinical Genomics",
"github":"EliottBo", "contribution":["contributor"], "orcid":"0009-0000-2384-0369"}, {"name":"Karthik Nair", "affiliation":"National Genomics Infrastructure", "github":"KarNair",
"contribution":["contributor"]}, {"name":"Matthias Zepper", "affiliation":"National Genomics Infrastructure", "github":"MatthiasZepper", "contribution":["author"], "orcid":"0000-0003-2880-8581"},
{"name":"Nelly Nyawira Nkonge", "affiliation":"National Genomics Infrastructure", "github":"nkongenelly", "contribution":["contributor"], "orcid":"0000-0002-0396-8573"}, {"name":"Beatriz Vinhas",
"affiliation":"Clinical Genomics", "github":"beatrizsavinhas", "contribution":["contributor"]}, {"name":"JĂșlia Mir Pedrol", "affiliation":"Center For Genomics Regulation", "github":"mirpedrol",
"contribution":["contributor"], "orcid":"0000-0001-6104-9260"}, {"name":"Cristina Tuñà i DomĂnguez", "affiliation":"Flowmics", "github":"ctuni", "contribution":["contributor"]}, {"name":"Johannes Alneberg",
"affiliation":"National Genomics Infrastructure", "github":"alneberg", "contribution":["contributor"], "orcid":"0000-0002-2467-008X"}, {"name":"Annick Renevey", "affiliation":"Clinical Genomics",
"github":"rannick", "contribution":["contributor"], "orcid":"0000-0001-7411-6063"}, {"name":"Adam Talbot", "affiliation":"Seqera", "github":"adamrtalbot", "contribution":["contributor"]}, {"name":"Jonas
Kjellin", "affiliation":"National Genomics Infrastructure", "github":"kjellinjonas", "contribution":["contributor"], "orcid":"0000-0002-3830-7046"}, {"name":"Mahesh Binzer-Panchal", "affiliation":"National
Bioinformatics Infrastructure Sweden", "github":"mahesh-panchal", "contribution":["contributor"], "orcid":"0000-0003-1675-0677"}, {"name":"Tori Griffin", "affiliation":"National Genomics Infrastructure",
"github":"torigiffin", "contribution":["contributor"}]]'. JSON decoding error: Expecting ',' delimiter: line 1 column 3454 (char 3453)
ERROR No authors found in pipeline manifest. Proceeding without adding authors to the RO-Crate. rocrate.py:281Maxime Garcia
05/04/2026, 10:32 AMMaxime Garcia
05/04/2026, 10:33 AMMaxime Garcia
05/04/2026, 10:33 AMMahesh Binzer-Panchal
05/04/2026, 10:59 AMMahesh Binzer-Panchal
05/04/2026, 11:00 AMMaxime Garcia
05/04/2026, 11:03 AMMaxime Garcia
05/04/2026, 11:03 AMMaxime Garcia
05/04/2026, 11:03 AMMahesh Binzer-Panchal
05/04/2026, 12:07 PM"torigiffin", "contribution":["contributor"}]]
^Maxime Garcia
05/04/2026, 12:13 PMMaxime Garcia
05/04/2026, 12:13 PMMahesh Binzer-Panchal
05/04/2026, 12:18 PMMaxime Garcia
05/04/2026, 12:24 PMMaxime Garcia
05/04/2026, 12:24 PMMaxime Garcia
05/04/2026, 12:25 PMMaxime Garcia
05/04/2026, 12:25 PMMaxime Garcia
05/04/2026, 12:25 PMMahesh Binzer-Panchal
05/04/2026, 12:26 PM# Replace only the outermost brackets (not nested ones)
if contributors_str.startswith("[["):
contributors_str = "[{" + contributors_str[2:]
if contributors_str.endswith("]]"):
contributors_str = contributors_str[:-2] + "}]"
contributors_str = contributors_str.replace("], [", "}, {")mashehu
05/04/2026, 12:34 PMMahesh Binzer-Panchal
05/04/2026, 12:36 PMnextflow config -o json as the solution to this?mashehu
05/04/2026, 12:37 PM