{
"fields": [
{
"name": "job_name",
"label": "Job name",
"kind": "text",
"default": "chai1-demo",
"required": false,
"help": "Names the run and its result archive.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": "",
"task": "",
"group": "Input",
"input_modes": "",
"molecule_features": ""
},
{
"name": "sequence_molecules",
"label": "Molecules",
"kind": "molecule_builder",
"default": "[{\"type\": \"protein\", \"id\": \"A\", \"sequence\": \"MSTNPKPQRKTKRNTNRRPQDVKFPGG\", \"cyclic\": false, \"modifications\": []}]",
"required": true,
"help": "One box per entity. Its name becomes the name of its FASTA record, which is what restraints refer to it by; left blank, entities are named A, B, C\u2026 in order. Proteins, DNA, RNA and SMILES ligands are supported. Use the FASTA mode for glycans.",
"options": [
{
"value": "protein",
"label": "Protein"
},
{
"value": "ligand",
"label": "Ligand"
},
{
"value": "dna",
"label": "DNA"
},
{
"value": "rna",
"label": "RNA"
}
],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": "",
"task": "",
"group": "Input",
"input_modes": "parameters",
"molecule_features": "id,modifications"
},
{
"name": "input_fasta",
"label": "Chai FASTA",
"kind": "textarea",
"default": ">protein|name=A\nMSTNPKPQRKTKRNTNRRPQDVKFPGG\n",
"required": true,
"help": "Native Chai FASTA: >protein|name=A, >dna|name=B, >rna|name=C, >ligand|name=D (SMILES), or >glycan|name=E (CCD glycan syntax). Each entity must have a unique name. Use (CCD) in polymer sequences for modified residues.",
"options": [],
"rows": 11,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": 500000,
"accept": "",
"task": "",
"group": "Input",
"input_modes": "text",
"molecule_features": ""
},
{
"name": "input_file",
"label": "Chai FASTA file",
"kind": "file",
"default": "",
"required": true,
"help": "Upload a native Chai FASTA file.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": 500000,
"accept": ".fasta,.fa,.faa,.txt",
"task": "",
"group": "Input",
"input_modes": "upload",
"molecule_features": ""
},
{
"name": "use_esm_embeddings",
"label": "Use ESM embeddings",
"kind": "checkbox",
"default": true,
"required": false,
"help": "Upstream default. Disable for a sequence-only ablation.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": "",
"task": "",
"group": "Evolution and templates",
"input_modes": "",
"molecule_features": ""
},
{
"name": "use_msa_server",
"label": "Use public MSA server",
"kind": "checkbox",
"default": false,
"required": false,
"help": "Ask the ColabFold MMseqs2 server to generate protein MSAs. Requires network access.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": "",
"task": "",
"group": "Evolution and templates",
"input_modes": "",
"molecule_features": ""
},
{
"name": "msa_server_url",
"label": "MSA server URL",
"kind": "text",
"default": "https://api.colabfold.com",
"required": false,
"help": "ColabFold MSA endpoint; used only when the MSA server is enabled.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": "",
"task": "",
"group": "Evolution and templates",
"input_modes": "",
"molecule_features": ""
},
{
"name": "msa_directory",
"label": "Local aligned.pqt directory",
"kind": "text",
"default": "",
"required": false,
"help": "Existing compute-node directory with one <sequence SHA256>.aligned.pqt per protein, as documented in the official MSA example. Exclusive with the MSA server.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": "",
"task": "",
"group": "Evolution and templates",
"input_modes": "",
"molecule_features": ""
},
{
"name": "use_example_msas",
"label": "Use supplied example MSAs",
"kind": "checkbox",
"default": false,
"required": false,
"help": "Use the two aligned.pqt files from Chai\u2019s official examples, downloaded when Chai-1 is installed or first used. Only suitable for the sequences in the official protein-complex preset.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": "",
"task": "",
"group": "Evolution and templates",
"input_modes": "",
"molecule_features": ""
},
{
"name": "use_templates_server",
"label": "Search public templates",
"kind": "checkbox",
"default": false,
"required": false,
"help": "Search pdb100 templates with the MSA server; requires the public MSA server.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": "",
"task": "",
"group": "Evolution and templates",
"input_modes": "",
"molecule_features": ""
},
{
"name": "template_hits_path",
"label": "Local template hits .m8",
"kind": "text",
"default": "",
"required": false,
"help": "Existing compute-node MMseqs2 .m8 template hits file. Exclusive with the template server.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": "",
"task": "",
"group": "Evolution and templates",
"input_modes": "",
"molecule_features": ""
},
{
"name": "restraints_csv",
"label": "Native restraints CSV",
"kind": "textarea",
"default": "",
"required": false,
"help": "Paste a Chai restraint table with the official header. Supports contact, pocket and covalent rows. Use either this table or the guided fields below.",
"options": [],
"rows": 5,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": 500000,
"accept": "",
"task": "",
"group": "Restraints",
"input_modes": "",
"molecule_features": ""
},
{
"name": "restraints_file",
"label": "Restraints CSV file",
"kind": "file",
"default": "",
"required": false,
"help": "Upload the same native restraint table instead of pasting it.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": 500000,
"accept": ".restraints,.csv,.txt",
"task": "",
"group": "Restraints",
"input_modes": "",
"molecule_features": ""
},
{
"name": "pocket_restraints",
"label": "Pocket restraints (JSON)",
"kind": "textarea",
"default": "",
"required": false,
"help": "Guided format: [{\"chainA\":\"A\",\"res_idxA\":387,\"chainB\":\"B\"}]. First chain has the specific residue. Chain letters follow FASTA entity order.",
"options": [],
"rows": 3,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": 500000,
"accept": "",
"task": "",
"group": "Restraints",
"input_modes": "",
"molecule_features": ""
},
{
"name": "contact_restraints",
"label": "Contact restraints (JSON)",
"kind": "textarea",
"default": "",
"required": false,
"help": "Guided format: [{\"chainA\":\"A\",\"res_idxA\":387,\"chainB\":\"B\",\"res_idxB\":101}].",
"options": [],
"rows": 3,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": 500000,
"accept": "",
"task": "",
"group": "Restraints",
"input_modes": "",
"molecule_features": ""
},
{
"name": "covalent_restraints",
"label": "Covalent restraints (JSON)",
"kind": "textarea",
"default": "",
"required": false,
"help": "Guided format: [{\"chainA\":\"A\",\"res_idxA\":217,\"covalentAtomA\":\"SG\",\"chainB\":\"B\",\"covalentAtomB\":\"S1\"}]. Ligand/glycan partners need an atom name but no residue index.",
"options": [],
"rows": 3,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": 500000,
"accept": "",
"task": "",
"group": "Restraints",
"input_modes": "",
"molecule_features": ""
},
{
"name": "restraints_min_distance",
"label": "Guided minimum distance (\u00c5)",
"kind": "number",
"default": 0,
"required": false,
"help": "",
"options": [],
"rows": null,
"minimum": 0,
"maximum": 100,
"step": "any",
"maxlength": null,
"accept": "",
"task": "",
"group": "Restraints",
"input_modes": "",
"molecule_features": ""
},
{
"name": "restraints_max_distance",
"label": "Guided maximum distance (\u00c5)",
"kind": "number",
"default": 5,
"required": false,
"help": "",
"options": [],
"rows": null,
"minimum": 0,
"maximum": 100,
"step": "any",
"maxlength": null,
"accept": "",
"task": "",
"group": "Restraints",
"input_modes": "",
"molecule_features": ""
},
{
"name": "num_trunk_samples",
"label": "Trunk samples",
"kind": "number",
"default": 1,
"required": false,
"help": "",
"options": [],
"rows": null,
"minimum": 1,
"maximum": 10,
"step": 1,
"maxlength": null,
"accept": "",
"task": "",
"group": "Sampling",
"input_modes": "",
"molecule_features": ""
},
{
"name": "num_recycles",
"label": "Trunk recycles",
"kind": "number",
"default": 3,
"required": false,
"help": "",
"options": [],
"rows": null,
"minimum": 0,
"maximum": 20,
"step": 1,
"maxlength": null,
"accept": "",
"task": "",
"group": "Sampling",
"input_modes": "",
"molecule_features": ""
},
{
"name": "num_diffn_timesteps",
"label": "Diffusion timesteps",
"kind": "number",
"default": 200,
"required": false,
"help": "",
"options": [],
"rows": null,
"minimum": 1,
"maximum": 1000,
"step": 1,
"maxlength": null,
"accept": "",
"task": "",
"group": "Sampling",
"input_modes": "",
"molecule_features": ""
},
{
"name": "num_samples",
"label": "Diffusion samples per trunk",
"kind": "number",
"default": 5,
"required": false,
"help": "Number of candidate structures to generate per trunk. More samples use more GPU memory; try 1 for large complexes or 16 GB GPUs.",
"options": [],
"rows": null,
"minimum": 1,
"maximum": 25,
"step": 1,
"maxlength": null,
"accept": "",
"task": "",
"group": "Sampling",
"input_modes": "",
"molecule_features": ""
},
{
"name": "recycle_msa_subsample",
"label": "MSA subsample per recycle",
"kind": "number",
"default": 0,
"required": false,
"help": "Upstream recycle_msa_subsample argument; 0 disables subsampling.",
"options": [],
"rows": null,
"minimum": 0,
"maximum": 1000,
"step": 1,
"maxlength": null,
"accept": "",
"task": "",
"group": "Sampling",
"input_modes": "",
"molecule_features": ""
},
{
"name": "seed",
"label": "Random seed",
"kind": "number",
"default": 0,
"required": false,
"help": "",
"options": [],
"rows": null,
"minimum": 0,
"maximum": 2147483647,
"step": 1,
"maxlength": null,
"accept": "",
"task": "",
"group": "Sampling",
"input_modes": "",
"molecule_features": ""
},
{
"name": "low_memory",
"label": "Low-memory inference",
"kind": "checkbox",
"default": true,
"required": false,
"help": "Move model components as needed to lower peak GPU memory.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": "",
"task": "",
"group": "Sampling",
"input_modes": "",
"molecule_features": ""
},
{
"name": "device",
"label": "CUDA device",
"kind": "text",
"default": "cuda:0",
"required": false,
"help": "CUDA device such as cuda:0.",
"options": [],
"rows": null,
"minimum": null,
"maximum": null,
"step": null,
"maxlength": null,
"accept": "",
"task": "",
"group": "Sampling",
"input_modes": "",
"molecule_features": ""
}
],
"input_modes": {
"name": "input_mode",
"label": "Input mode",
"default": "parameters",
"options": [
{
"value": "parameters",
"label": "Set parameters here"
},
{
"value": "text",
"label": "Enter Chai FASTA"
},
{
"value": "upload",
"label": "Upload Chai FASTA"
}
]
},
"tasks": [],
"field_groups": [
{
"label": "Input",
"docs_url": "https://github.com/chaidiscovery/chai-lab/blob/main/examples/predict_structure.py"
},
{
"label": "Evolution and templates",
"docs_url": "https://github.com/chaidiscovery/chai-lab/tree/main/examples/msas"
},
{
"label": "Restraints",
"docs_url": "https://github.com/chaidiscovery/chai-lab/tree/main/examples/restraints"
},
{
"label": "Sampling",
"docs_url": "https://github.com/chaidiscovery/chai-lab/blob/main/chai_lab/chai1.py#L482"
}
]
}