let to_json {
name;
vaccine_peptide_length;
padding_around_mutation;
max_vaccine_peptides_per_mutation;
max_mutations_in_report;
min_mapping_quality;
min_variant_sequence_coverage;
min_alt_rna_reads;
include_mismatches_after_variant;
use_duplicate_reads;
drop_secondary_alignments;
mhc_epitope_lengths;
reviewers;
final_reviewer;
xlsx_report;
pdf_report;
ascii_report;
parameters}: Yojson.Basic.json
=
`Assoc ([
"name", `String name;
"vaccine_peptide_length", `Int vaccine_peptide_length;
"padding_around_mutation", `Int padding_around_mutation;
"max_vaccine_peptides_per_mutation", `Int max_vaccine_peptides_per_mutation;
"max_mutations_in_report", `Int max_mutations_in_report;
"min_mapping_quality", `Int min_mapping_quality;
"min_variant_sequence_coverage",
`Int min_variant_sequence_coverage;
"min_alt_rna_reads", `Int min_alt_rna_reads;
"include_mismatches_after_variant", `Bool include_mismatches_after_variant;
"use_duplicate_reads", `Bool use_duplicate_reads;
"drop_secondary_alignments", `Bool drop_secondary_alignments;
"mhc_epitope_lengths",
`List (List.map mhc_epitope_lengths ~f:(fun i -> `Int i));
"ascii_report", `Bool ascii_report;
"pdf_report", `Bool pdf_report;
"xlsx_report", `Bool xlsx_report;
"parameters",
`Assoc (List.map parameters ~f:(fun (a, b) -> a, `String b));
]
@ Option.value_map reviewers ~default:[]
~f:(fun r -> ["reviewers", `List (List.map ~f:(fun r -> `String r) r)])
@ Option.value_map final_reviewer ~default:[]
~f:(fun r -> ["final_reviewer", `String r]))