{
"fields": [
{
"name": "job_name",
"label": "Job name",
"kind": "text",
"default": "thermompnn-demo",
"required": false,
"help": "A label for this run and its results.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": 80,
"accept": "",
"task": "",
"group": "Inputs"
},
{
"name": "pdb",
"label": "Protein structure",
"kind": "file",
"default": "",
"required": true,
"help": "PDB structure used for ThermoMPNN site-saturation mutagenesis.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": ".pdb,.ent",
"task": "",
"group": "Inputs",
"help_note": "Upload PDB text or choose a preset with the official 2OCJ example. ThermoMPNN writes one CSV containing every standard amino-acid substitution for the selected chain."
},
{
"name": "chain",
"label": "Chain to scan",
"kind": "text",
"default": "A",
"required": false,
"help": "Single PDB chain to score. The upstream default is A; leave blank to use the first chain in the structure.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": 1,
"accept": "",
"task": "",
"group": "Inputs"
}
],
"tasks": [],
"field_groups": [
{
"label": "Inputs",
"docs_url": "https://github.com/Kuhlman-Lab/ThermoMPNN/blob/370f76ec62bd929f7425e311d8df04a0d094990f/analysis/custom_inference.py"
}
],
"_comment": "The public custom_inference.py entry point accepts pdb, chain, model_path and out_dir. The service manages the installed model path and per-job output directory. It always performs site-saturation mutagenesis; named-mutation and top-k modes are not upstream APIs."
}