Some of those JSON blocks correspond directly to structures that exist in Guacamole, e.g. jointcaller.Input.
In VCB, they're unrolled into unwieldy column-oriented command-line lists, e.g.
--tissue-types tumor tumor tumor tumor tumor tumor tumor normal tumor tumor tumor tumor tumor tumor tumor tumor normal tumor tumor tumor tumor tumor
--analytes rna dna dna rna rna dna dna dna rna dna rna rna dna dna dna dna dna rna dna dna rna rna
which are then parsed back into their rightful structures in Guacamole.
These structures should be parseable by Guacamole directly from a config file into the structures that they ultimately become inside Guacamole and various VCB scripts; this will also allow VCB to be more focused on specific benchmark-config-blobs and less on the plumbing to support them and keep in sync with Guacamole.
As we run guacamole on more inputs, we have config blocks like this in variant-calling-benchmarks (VCB).
Some of those JSON blocks correspond directly to structures that exist in Guacamole, e.g.
jointcaller.Input
.In VCB, they're unrolled into unwieldy column-oriented command-line lists, e.g.
which are then parsed back into their rightful structures in Guacamole.
These structures should be parseable by Guacamole directly from a config file into the structures that they ultimately become inside Guacamole and various VCB scripts; this will also allow VCB to be more focused on specific benchmark-config-blobs and less on the plumbing to support them and keep in sync with Guacamole.
Note: having Guacamole read from config files was discussed long ago at https://github.com/hammerlab/guacamole/issues/106#issuecomment-46460800.