diff --git a/source/_static/js/designSpec.js b/source/_static/js/designSpec.js index 6dbfbde..ddae3bf 100644 --- a/source/_static/js/designSpec.js +++ b/source/_static/js/designSpec.js @@ -20,437 +20,69 @@ const designSpec = { content: { "application/json": { schema: { - title: "DesignRequestGeneticAlgorithm", - description: - "Request to design new variants using genetic algorithm.", - required: ["criteria", "num_steps", "assay_id"], - type: "object", - properties: { - num_steps: { - title: "Number of Steps", - description: "Number of steps to run the algorithm for.", - minimum: 1, - type: "integer", - example: 25, - "x-order": 10, - }, - assay_id: { - title: "Assay ID", - description: "Assay ID to use as a starting point.", - type: "string", - format: "uuid", - "x-order": 11, - }, - criteria: { - title: "Criteria", - description: - "List of criterion, within which is a list of same-typed of subcriterion.", - type: "array", - items: { - title: "Subcriteria", - description: - "List of subcriterion, each of which must be the same type.", - type: "array", - items: { - title: "Subcriterion", - description: - "Actual criterion that can be evaluated as a score/objective to optimize.", - oneOf: [ - { - title: "ModelCriterion", - description: "Criteria for design model.", - required: [ - "criterion_type", - "measurement_name", - "criterion", - "model_id", - ], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - measurement_name: { - title: "Measurement Name", - description: - "Name of measurement for objective.", - type: "string", - }, - criterion: { - title: "Criterion for Model", - description: - "Criterion for a model-based objective with a target, direction and weight.", - required: ["target", "direction"], - type: "object", - properties: { - target: { - title: "Target", - description: "Target objective.", - type: "number", - }, - direction: { - title: "Direction", - description: - "Direction of objective describing the inequality.", - enum: [">", "<", "="], - type: "string", - }, - weight: { - title: "Weight", - description: "Weight of objective.", - type: "number", - default: 1, - }, - }, - }, - model_id: { - title: "ModelID", - description: - "Model ID to use for computing objective scores.", - type: "string", - }, - }, - }, - { - title: "NMutationsCriterion", - description: - "Criteria for design based on mutations.", - required: ["criterion_type"], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - sequences: { - title: "Sequences", - description: - "Sequences to use as reference for calculating the number of mutations.", - type: "array", - items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", - }, - }, - }, - }, - ], - discriminator: { - propertyName: "criterion_type", - mapping: { - model: "#/components/schemas/ModelCriterion", - n_mutations: - "#/components/schemas/NMutationsCriterion", - }, - }, - }, - }, - "x-order": 12, - example: [ - [ - { - criterion_type: "model", - model_id: "ec0364fd-83ff-4f26-bc17-eb0bd8cfcae5", - measurement_name: "activity", - criterion: { - target: 0, - weight: 0.5, - direction: ">", - }, - }, - ], - ], - }, - allowed_tokens: { - title: "Allowed Tokens", - description: "Hash map of position to allowed tokens.", - type: "object", - additionalProperties: { - type: "array", - items: { - type: "string", - description: "Allowed tokens in this position.", - example: ["A", "C", "M"], - }, - }, - "x-order": 13, - example: { - "1": ["M", "W", "A"], - "104": ["C"], - "131": ["C"], - }, - }, - pop_size: { - title: "Population Size", - description: - "Size of population or number of candidates to explore per step.", - type: "integer", - nullable: true, - default: 256, - example: 256, - "x-order": 101, - }, - n_offsprings: { - title: "Number of Offsprings", - description: "Number of offsprings in genetic algorithm.", - type: "integer", - default: 5120, - example: 5120, - "x-order": 101, - }, - crossover_prob: { - title: "Crossover Probability", - description: "Crossover probability in genetic algorithm.", - type: "number", - default: 1, - example: 1, - "x-order": 102, - }, - crossover_prob_pointwise: { - title: "Crossover Probability Pointwise", - description: - "Pointwise crossover probability in genetic algorithm.", - type: "number", - default: 0.2, - example: 0.2, - "x-order": 103, - }, - mutation_average_mutations_per_seq: { - title: "Average Mutations", - description: "Targeted average mutations per seuqnces", - type: "integer", - default: 1, - example: 1, - "x-order": 104, - }, - }, + $ref: "#/components/schemas/DesignRequestGA", }, }, }, required: true, }, responses: { - "202": { + 202: { description: "Design job created and pending.", content: { "application/json": { schema: { - title: "Job", - description: "Job represents a job for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - "job_type", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - }, - }, + $ref: "#/components/schemas/Job", }, }, }, }, - "400": { + 400: { description: "Bad request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Unauthorized.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "403": { + 403: { description: "Forbidden.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Validation error.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -461,7 +93,6 @@ const designSpec = { oauth2: [], }, ], - p: "designGA", }, }, "/api/v1/designer/design/{job_id}/continue": { @@ -486,239 +117,69 @@ const designSpec = { content: { "application/json": { schema: { - title: "DesignContinueRequest", - description: "Request to continue a design job.", - required: ["num_steps"], - type: "object", - properties: { - num_steps: { - title: "Number of steps", - minimum: 1, - type: "integer", - }, - }, + $ref: "#/components/schemas/DesignContinueRequest", }, }, }, required: true, }, responses: { - "200": { + 200: { description: "Design continue job created and pending.", content: { "application/json": { schema: { - title: "Job", - description: "Job represents a job for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - "job_type", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - }, - }, + $ref: "#/components/schemas/Job", }, }, }, }, - "400": { + 400: { description: "Bad request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Unauthorized.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "403": { + 403: { description: "Forbidden.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Validation error.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -729,7 +190,6 @@ const designSpec = { oauth2: [], }, ], - p: "continueDesignJob", }, }, "/api/v1/designer/design": { @@ -764,442 +224,65 @@ const designSpec = { }, ], responses: { - "200": { + 200: { description: "List of designs with their metadata.", content: { "application/json": { schema: { type: "array", items: { - title: "Design", - description: - "Design with metadata of request and results if succeeded.", - type: "object", - required: [ - "id", - "status", - "current_step", - "terminated", - "progress_counter", - "created_date", - "algorithm", - "num_rows", - "criteria", - "num_steps", - "assay_id", - ], - properties: { - id: { - title: "ID", - description: "ID of design.", - type: "string", - format: "uuid", - "x-order": 0, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - current_step: { - title: "Current Step", - description: "Current step in the algorithm", - type: "integer", - }, - terminated: { - title: "Terminated", - description: - "Whether the algorithm was terminated early.", - type: "boolean", - }, - progress_counter: { - title: "Progress Counter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - algorithm: { - title: "Algorithm", - description: "Design algorithm used.", - type: "string", - }, - num_rows: { - title: "Number of Rows", - description: - "Number of rows in output of design result.", - type: "integer", - }, - num_steps: { - title: "Number of Steps", - description: - "Number of steps to run the algorithm for.", - minimum: 1, - type: "integer", - example: 25, - "x-order": 10, - }, - assay_id: { - title: "Assay ID", - description: "Assay ID to use as a starting point.", - type: "string", - format: "uuid", - "x-order": 11, - }, - criteria: { - title: "Criteria", - description: - "List of criterion, within which is a list of same-typed of subcriterion.", - type: "array", - items: { - title: "Subcriteria", - description: - "List of subcriterion, each of which must be the same type.", - type: "array", - items: { - title: "Subcriterion", - description: - "Actual criterion that can be evaluated as a score/objective to optimize.", - oneOf: [ - { - title: "ModelCriterion", - description: "Criteria for design model.", - required: [ - "criterion_type", - "measurement_name", - "criterion", - "model_id", - ], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - measurement_name: { - title: "Measurement Name", - description: - "Name of measurement for objective.", - type: "string", - }, - criterion: { - title: "Criterion for Model", - description: - "Criterion for a model-based objective with a target, direction and weight.", - required: ["target", "direction"], - type: "object", - properties: { - target: { - title: "Target", - description: "Target objective.", - type: "number", - }, - direction: { - title: "Direction", - description: - "Direction of objective describing the inequality.", - enum: [">", "<", "="], - type: "string", - }, - weight: { - title: "Weight", - description: "Weight of objective.", - type: "number", - default: 1, - }, - }, - }, - model_id: { - title: "ModelID", - description: - "Model ID to use for computing objective scores.", - type: "string", - }, - }, - }, - { - title: "NMutationsCriterion", - description: - "Criteria for design based on mutations.", - required: ["criterion_type"], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - sequences: { - title: "Sequences", - description: - "Sequences to use as reference for calculating the number of mutations.", - type: "array", - items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", - }, - }, - }, - }, - ], - discriminator: { - propertyName: "criterion_type", - mapping: { - model: "#/components/schemas/ModelCriterion", - n_mutations: - "#/components/schemas/NMutationsCriterion", - }, - }, - }, - }, - "x-order": 12, - example: [ - [ - { - criterion_type: "model", - model_id: "ec0364fd-83ff-4f26-bc17-eb0bd8cfcae5", - measurement_name: "activity", - criterion: { - target: 0, - weight: 0.5, - direction: ">", - }, - }, - ], - ], - }, - allowed_tokens: { - title: "Allowed Tokens", - description: "Hash map of position to allowed tokens.", - type: "object", - additionalProperties: { - type: "array", - items: { - type: "string", - description: "Allowed tokens in this position.", - example: ["A", "C", "M"], - }, - }, - "x-order": 13, - example: { - "1": ["M", "W", "A"], - "104": ["C"], - "131": ["C"], - }, - }, - pop_size: { - title: "Population Size", - description: - "Size of population or number of candidates to explore per step.", - type: "integer", - nullable: true, - default: 256, - example: 256, - "x-order": 101, - }, - }, - oneOf: [ - { - title: "GeneticAlgorithmParams", - description: - "Parameters for running genetic-algorithm.", - type: "object", - properties: { - n_offsprings: { - title: "Number of Offsprings", - description: - "Number of offsprings in genetic algorithm.", - type: "integer", - default: 5120, - example: 5120, - "x-order": 101, - }, - crossover_prob: { - title: "Crossover Probability", - description: - "Crossover probability in genetic algorithm.", - type: "number", - default: 1, - example: 1, - "x-order": 102, - }, - crossover_prob_pointwise: { - title: "Crossover Probability Pointwise", - description: - "Pointwise crossover probability in genetic algorithm.", - type: "number", - default: 0.2, - example: 0.2, - "x-order": 103, - }, - mutation_average_mutations_per_seq: { - title: "Average Mutations", - description: - "Targeted average mutations per seuqnces", - type: "integer", - default: 1, - example: 1, - "x-order": 104, - }, - }, - }, - ], - example: { - id: "15cde424-04fc-4bce-88ea-4c2eae225d47", - status: "PENDING", - progress_counter: 0, - created_date: "2024-10-30T18:21:08.046624Z", - algorithm: "genetic-algorithm", - num_rows: 0, - num_steps: 10, - assay_id: "99dc46be-5fb1-4771-a59a-65ec76d70765", - criteria: [ - [ - { - criterion_type: "model", - measurement_name: "fitness", - criterion: { - target: 0, - direction: ">", - weight: 0.5, - }, - model_id: "c887360c-fa9c-4357-97fc-ad0c3e9ca3dc", - }, - { - criterion_type: "model", - measurement_name: "fitness", - criterion: { - target: 0.5, - direction: "<", - weight: 0.5, - }, - model_id: "0082d4f6-703f-4f94-b888-b1015fe798eb", - }, - ], - ], - allowed_tokens: { - "1": ["M", "W", "A"], - "104": ["C"], - "131": ["C"], - }, - pop_size: 1024, - n_offsprings: 256, - crossover_prob: 1, - crossover_prob_pointwise: 0.2, - mutation_average_mutations_per_seq: 1, - }, + $ref: "#/components/schemas/Design", }, }, }, }, }, - "400": { + 400: { description: "Bad request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Unauthorized.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "403": { + 403: { description: "Forbidden.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Validation error.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -1210,7 +293,6 @@ const designSpec = { oauth2: [], }, ], - p: "listDesigns", }, }, "/api/v1/designer/design/{job_id}": { @@ -1234,436 +316,62 @@ const designSpec = { }, ], responses: { - "200": { + 200: { description: "Design metadata.", content: { "application/json": { schema: { - title: "Design", - description: - "Design with metadata of request and results if succeeded.", - type: "object", - required: [ - "id", - "status", - "current_step", - "terminated", - "progress_counter", - "created_date", - "algorithm", - "num_rows", - "criteria", - "num_steps", - "assay_id", - ], - properties: { - id: { - title: "ID", - description: "ID of design.", - type: "string", - format: "uuid", - "x-order": 0, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - current_step: { - title: "Current Step", - description: "Current step in the algorithm", - type: "integer", - }, - terminated: { - title: "Terminated", - description: - "Whether the algorithm was terminated early.", - type: "boolean", - }, - progress_counter: { - title: "Progress Counter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - algorithm: { - title: "Algorithm", - description: "Design algorithm used.", - type: "string", - }, - num_rows: { - title: "Number of Rows", - description: "Number of rows in output of design result.", - type: "integer", - }, - num_steps: { - title: "Number of Steps", - description: "Number of steps to run the algorithm for.", - minimum: 1, - type: "integer", - example: 25, - "x-order": 10, - }, - assay_id: { - title: "Assay ID", - description: "Assay ID to use as a starting point.", - type: "string", - format: "uuid", - "x-order": 11, - }, - criteria: { - title: "Criteria", - description: - "List of criterion, within which is a list of same-typed of subcriterion.", - type: "array", - items: { - title: "Subcriteria", - description: - "List of subcriterion, each of which must be the same type.", - type: "array", - items: { - title: "Subcriterion", - description: - "Actual criterion that can be evaluated as a score/objective to optimize.", - oneOf: [ - { - title: "ModelCriterion", - description: "Criteria for design model.", - required: [ - "criterion_type", - "measurement_name", - "criterion", - "model_id", - ], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - measurement_name: { - title: "Measurement Name", - description: - "Name of measurement for objective.", - type: "string", - }, - criterion: { - title: "Criterion for Model", - description: - "Criterion for a model-based objective with a target, direction and weight.", - required: ["target", "direction"], - type: "object", - properties: { - target: { - title: "Target", - description: "Target objective.", - type: "number", - }, - direction: { - title: "Direction", - description: - "Direction of objective describing the inequality.", - enum: [">", "<", "="], - type: "string", - }, - weight: { - title: "Weight", - description: "Weight of objective.", - type: "number", - default: 1, - }, - }, - }, - model_id: { - title: "ModelID", - description: - "Model ID to use for computing objective scores.", - type: "string", - }, - }, - }, - { - title: "NMutationsCriterion", - description: - "Criteria for design based on mutations.", - required: ["criterion_type"], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - sequences: { - title: "Sequences", - description: - "Sequences to use as reference for calculating the number of mutations.", - type: "array", - items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", - }, - }, - }, - }, - ], - discriminator: { - propertyName: "criterion_type", - mapping: { - model: "#/components/schemas/ModelCriterion", - n_mutations: - "#/components/schemas/NMutationsCriterion", - }, - }, - }, - }, - "x-order": 12, - example: [ - [ - { - criterion_type: "model", - model_id: "ec0364fd-83ff-4f26-bc17-eb0bd8cfcae5", - measurement_name: "activity", - criterion: { - target: 0, - weight: 0.5, - direction: ">", - }, - }, - ], - ], - }, - allowed_tokens: { - title: "Allowed Tokens", - description: "Hash map of position to allowed tokens.", - type: "object", - additionalProperties: { - type: "array", - items: { - type: "string", - description: "Allowed tokens in this position.", - example: ["A", "C", "M"], - }, - }, - "x-order": 13, - example: { - "1": ["M", "W", "A"], - "104": ["C"], - "131": ["C"], - }, - }, - pop_size: { - title: "Population Size", - description: - "Size of population or number of candidates to explore per step.", - type: "integer", - nullable: true, - default: 256, - example: 256, - "x-order": 101, - }, - }, - oneOf: [ - { - title: "GeneticAlgorithmParams", - description: "Parameters for running genetic-algorithm.", - type: "object", - properties: { - n_offsprings: { - title: "Number of Offsprings", - description: - "Number of offsprings in genetic algorithm.", - type: "integer", - default: 5120, - example: 5120, - "x-order": 101, - }, - crossover_prob: { - title: "Crossover Probability", - description: - "Crossover probability in genetic algorithm.", - type: "number", - default: 1, - example: 1, - "x-order": 102, - }, - crossover_prob_pointwise: { - title: "Crossover Probability Pointwise", - description: - "Pointwise crossover probability in genetic algorithm.", - type: "number", - default: 0.2, - example: 0.2, - "x-order": 103, - }, - mutation_average_mutations_per_seq: { - title: "Average Mutations", - description: - "Targeted average mutations per seuqnces", - type: "integer", - default: 1, - example: 1, - "x-order": 104, - }, - }, - }, - ], - example: { - id: "15cde424-04fc-4bce-88ea-4c2eae225d47", - status: "PENDING", - progress_counter: 0, - created_date: "2024-10-30T18:21:08.046624Z", - algorithm: "genetic-algorithm", - num_rows: 0, - num_steps: 10, - assay_id: "99dc46be-5fb1-4771-a59a-65ec76d70765", - criteria: [ - [ - { - criterion_type: "model", - measurement_name: "fitness", - criterion: { - target: 0, - direction: ">", - weight: 0.5, - }, - model_id: "c887360c-fa9c-4357-97fc-ad0c3e9ca3dc", - }, - { - criterion_type: "model", - measurement_name: "fitness", - criterion: { - target: 0.5, - direction: "<", - weight: 0.5, - }, - model_id: "0082d4f6-703f-4f94-b888-b1015fe798eb", - }, - ], - ], - allowed_tokens: { - "1": ["M", "W", "A"], - "104": ["C"], - "131": ["C"], - }, - pop_size: 1024, - n_offsprings: 256, - crossover_prob: 1, - crossover_prob_pointwise: 0.2, - mutation_average_mutations_per_seq: 1, - }, + $ref: "#/components/schemas/Design", }, }, }, }, - "400": { + 400: { description: "Bad request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Unauthorized.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "403": { + 403: { description: "Forbidden.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Validation error.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -1674,7 +382,6 @@ const designSpec = { oauth2: [], }, ], - p: "getDesign", }, }, "/api/v1/designer/design/{job_id}/results": { @@ -1711,7 +418,7 @@ const designSpec = { }, ], responses: { - "200": { + 200: { description: "Design results.", content: { "text/csv": { @@ -1724,97 +431,52 @@ const designSpec = { }, }, }, - "400": { + 400: { description: "Bad request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Unauthorized.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "403": { + 403: { description: "Forbidden.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Validation error.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -1825,7 +487,6 @@ const designSpec = { oauth2: [], }, ], - p: "getDesignResults", }, }, "/api/v1/designer/design/n_successes": { @@ -1839,244 +500,69 @@ const designSpec = { content: { "application/json": { schema: { - title: "NSuccessRequest", - description: - "Request to calculate the number of successes expected for a design request.", - required: ["means", "stddevs", "criteria"], - type: "object", - properties: { - means: { - title: "Means", - description: "N x M array of means of predictions.", - type: "array", - items: { - type: "array", - items: { - type: "number", - }, - }, - }, - stddevs: { - title: "Standard Deviations", - description: "N x M array of stddevs of predictions.", - type: "array", - items: { - type: "array", - items: { - type: "number", - }, - }, - }, - criteria: { - title: "Criteria", - description: - "M array of model criterion, same as submitting a design job.\n", - type: "array", - items: { - title: "ModelCriterion", - description: "Criteria for design model.", - required: [ - "criterion_type", - "measurement_name", - "criterion", - "model_id", - ], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - measurement_name: { - title: "Measurement Name", - description: "Name of measurement for objective.", - type: "string", - }, - criterion: { - title: "Criterion for Model", - description: - "Criterion for a model-based objective with a target, direction and weight.", - required: ["target", "direction"], - type: "object", - properties: { - target: { - title: "Target", - description: "Target objective.", - type: "number", - }, - direction: { - title: "Direction", - description: - "Direction of objective describing the inequality.", - enum: [">", "<", "="], - type: "string", - }, - weight: { - title: "Weight", - description: "Weight of objective.", - type: "number", - default: 1, - }, - }, - }, - model_id: { - title: "ModelID", - description: - "Model ID to use for computing objective scores.", - type: "string", - }, - }, - }, - }, - k: { - title: "K", - description: - "Number of samples to draw in a Monte Carlo. Defaults to 10000.", - type: "integer", - default: 10000, - }, - }, + $ref: "#/components/schemas/NSuccessRequest", }, }, }, required: true, }, responses: { - "200": { + 200: { description: "Successful Response", content: { "application/json": { schema: { - title: "NSuccess", - description: - "Number of successes expected for a design job, as a histogram.", - required: ["histogram", "mean", "stddev", "percentile"], - type: "object", - properties: { - histogram: { - title: "Histogram", - description: "N array of probability of success.", - type: "array", - items: { - type: "number", - }, - }, - mean: { - title: "Mean", - description: "Mean of the output histogram.", - type: "number", - }, - stddev: { - title: "Standrd Deviation", - description: "Standard deviation of output histogram.", - type: "number", - }, - percentile: { - title: "Percentile", - description: - "Dictionary of percentiles of the histogram.", - type: "object", - additionalProperties: { - type: "integer", - }, - }, - }, + $ref: "#/components/schemas/NSuccess", }, }, }, }, - "400": { + 400: { description: "Bad request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Unauthorized.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "403": { + 403: { description: "Forbidden.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Validation error.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -2087,7 +573,6 @@ const designSpec = { oauth2: [], }, ], - p: "calculateNSuccesses", }, }, "/api/v1/design/models/rfdiffusion": { @@ -2103,399 +588,69 @@ const designSpec = { content: { "application/json": { schema: { - title: "DesignRequestRFdiffusion", - description: - "Request to design new structures using RFdiffusion.\n\n`query_id` or `contigs` is required.\n", - type: "object", - properties: { - n: { - title: "Number of Designs", - description: - "Number of designs to generate based on given parameters.", - type: "integer", - default: 1, - example: 1, - "x-order": 101, - }, - query_id: { - title: "Query ID", - description: - "ID of query which contains the encoded design request. This design request should be a partially/fully masked structure, which will be designed by the model. Either query_id or contigs should be specified.", - type: "string", - format: "uuid", - }, - structure_text: { - title: "Structure Text", - description: "String contents of the input PDB file.", - type: "string", - nullable: true, - default: null, - example: - "ATOM 1 N ALA A 1 0.000 0.000 0.000 1.00 0.00 N\n...\n", - "x-order": 102, - }, - contigs: { - title: "Contigs", - description: - "Contigs specification for providing lengths and fixed residues.", - type: "string", - nullable: true, - default: null, - example: "100-100", - "x-order": 103, - }, - inpaint_seq: { - title: "Inpaint Sequences", - description: - "Mask input residues from the input structure.", - type: "string", - nullable: true, - default: null, - example: "A1/A30-40", - "x-order": 104, - }, - provide_seq: { - title: "Provide Sequences", - description: - "Fix input residues when doing partial diffusion.", - type: "string", - nullable: true, - default: null, - example: "100-119", - "x-order": 105, - }, - hotspot: { - title: "Hotspots", - description: - "Hotspot residues to indicate to the model which sites the binder should interact.", - type: "string", - nullable: true, - default: null, - example: "A30,A33,A34", - "x-order": 106, - }, - T: { - title: "Number of Iterations", - description: "Number of diffusion steps to take.", - type: "integer", - default: 50, - example: 50, - "x-order": 107, - }, - partial_T: { - title: "Number of Partial Diffusion Iterations", - description: "Number of partial diffusion steps to take.", - type: "integer", - default: 20, - example: 20, - "x-order": 108, - }, - use_active_site_model: { - title: "Use Active Site Model", - description: - "Whether or not to use the active site model, which is useful for holding very small motifs in place.", - type: "boolean", - default: false, - example: false, - "x-order": 109, - }, - use_beta_model: { - title: "Use Beta Model", - description: - "Whether or not to use the beta model, which is useful for generating more diverse topologies but possibly trading off for success rates.", - type: "boolean", - default: false, - example: false, - "x-order": 110, - }, - symmetry: { - title: "Symmetry", - description: "Type of symmetry to constrain the design to.", - type: "string", - enum: ["cyclic", "dihedral", "tetrahedral"], - nullable: true, - default: null, - "x-order": 111, - }, - order: { - title: "Symmetry Order", - description: - "The order of symmetry the design should have, in the case of cyclic and dihedral.", - type: "integer", - nullable: true, - default: null, - "x-order": 112, - }, - add_potential: { - title: "Add Potential", - description: - "Whether or not to use potential when creating symmetrical designs, which has been found to be useful. If `null`, defaults to true when doing symmetrical design.", - type: "boolean", - nullable: true, - default: null, - "x-order": 113, - }, - scaffold_target_structure_text: { - title: "Scaffold Target Structure Text", - description: - "String contents of the input PDB file for scaffold guided design. This PDB is used to provide secondary structure and block adjacency information for doing fold conditioning towards the input topology.", - type: "string", - nullable: true, - default: null, - example: - "ATOM 1 N ALA A 1 0.000 0.000 0.000 1.00 0.00 N\n...\n", - "x-order": 114, - }, - scaffold_target_use_struct: { - title: "Scaffold Target Use Structure", - description: - "Whether or not to use the input scaffold structure PDB as a target for scaffold guided binder design.", - type: "boolean", - default: false, - example: false, - "x-order": 115, - }, - }, - examples: { - query: { - n: 1, - query_id: "afc17865-5c97-4b22-9c37-cdf3985e06bb", - }, - unconditional: { - n: 3, - contigs: "100-100", - }, - motif_scaffolding: { - contigs: "10-40/A163-181/10-40", - structure_text: "...", - }, - }, - example: { - n: 1, - query_id: "afc17865-5c97-4b22-9c37-cdf3985e06bb", - }, + $ref: "#/components/schemas/DesignRequestRFdiffusion", }, }, }, required: true, }, responses: { - "202": { + 202: { description: "Design job created and pending.", content: { "application/json": { schema: { - title: "Job", - description: "Job represents a job for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - "job_type", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - }, - }, + $ref: "#/components/schemas/Job", }, }, }, }, - "400": { + 400: { description: "Bad request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Unauthorized.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "403": { + 403: { description: "Forbidden.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Validation error.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -2506,7 +661,6 @@ const designSpec = { oauth2: [], }, ], - p: "designRFdiffusion", }, }, "/api/v1/design/models/boltzgen": { @@ -2522,411 +676,69 @@ const designSpec = { content: { "application/json": { schema: { - title: "DesignRequestBoltzGen", - description: - "Request to design new structures using BoltzGen.\n\n`query_id` or `design_spec` is required.\n", - type: "object", - properties: { - n: { - title: "Number of Designs", - description: "Number of unique design trajectories to run.", - type: "integer", - default: 1, - example: 1, - "x-order": 101, - }, - query_id: { - title: "Query ID", - description: - "ID of query which contains the encoded design request. This design request should be a partially/fully masked structure, which will be designed by the model. Either query_id or design_spec should be specified.", - type: "string", - format: "uuid", - }, - design_spec: { - title: "BoltzGenDesignSpec", - description: - "Complete BoltzGen design specification including entities and constraints.", - type: "object", - required: ["entities"], - properties: { - entities: { - title: "Entities", - description: - "List of entities in the design (proteins, ligands, or files).", - type: "array", - minItems: 1, - items: {}, - "x-order": 1, - }, - constraints: { - title: "Constraints", - description: "List of constraints for the design.", - type: "array", - nullable: true, - default: null, - items: {}, - "x-order": 2, - }, - }, - example: { - entities: [ - { - protein: { - id: "A", - sequence: "ACDEFGHIKLMNPQRSTVWY", - }, - }, - { - ligand: { - id: "B", - ccd: "ATP", - }, - }, - ], - constraints: [ - { - bond: { - atom1: ["A", 10, "CA"], - atom2: ["B", 1, "O"], - }, - }, - ], - }, - }, - structure_text: { - title: "Structure Text", - description: - "String contents of the input PDB/CIF file for file-based entities. This provides the actual structure content for any FileEntity objects in the design_spec.", - type: "string", - nullable: true, - default: null, - example: - "ATOM 1 N ALA A 1 0.000 0.000 0.000 1.00 0.00 N\n...\n", - "x-order": 103, - }, - diffusion_batch_size: { - title: "Diffusion Batch Size", - description: - "The batch size for diffusion sampling. Controls how many samples are processed in parallel during the diffusion process.", - type: "integer", - nullable: true, - default: null, - example: 4, - "x-order": 104, - }, - step_scale: { - title: "Step Scale", - description: - "Scaling factor for the number of diffusion steps. Higher values may improve quality at the cost of longer generation time.", - type: "number", - format: "float", - nullable: true, - default: null, - example: 1, - "x-order": 105, - }, - noise_scale: { - title: "Noise Scale", - description: - "Scaling factor for the noise schedule during diffusion. Controls the amount of noise added at each step of the reverse diffusion process.", - type: "number", - format: "float", - nullable: true, - default: null, - example: 1, - "x-order": 106, - }, - }, - examples: { - query: { - n: 1, - query_id: "afc17865-5c97-4b22-9c37-cdf3985e06bb", - }, - unconditional: { - design_spec: { - entities: [ - { - protein: { - id: "A", - sequence: "100", - }, - }, - ], - }, - }, - binder_design: { - design_spec: { - entities: [ - { - file: { - path: "target.pdb", - include: "all", - }, - }, - { - protein: { - id: "B", - sequence: "50..100", - binding_types: "BBBBBBBBBB", - }, - }, - ], - }, - structure_text: "ATOM ...", - }, - protein_ligand: { - design_spec: { - entities: [ - { - protein: { - id: "A", - sequence: "80", - }, - }, - { - ligand: { - id: "B", - ccd: "ATP", - }, - }, - ], - constraints: [ - { - bond: { - atom1: ["A", 10, "CA"], - atom2: ["B", 1, "O"], - }, - }, - ], - }, - }, - }, - example: { - n: 1, - query_id: "afc17865-5c97-4b22-9c37-cdf3985e06bb", - }, + $ref: "#/components/schemas/DesignRequestBoltzGen", }, }, }, required: true, }, responses: { - "202": { + 202: { description: "Design job created and pending.", content: { "application/json": { schema: { - title: "Job", - description: "Job represents a job for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - "job_type", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - }, - }, + $ref: "#/components/schemas/Job", }, }, }, }, - "400": { + 400: { description: "Bad request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Unauthorized.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "403": { + 403: { description: "Forbidden.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Validation error.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -2937,7 +749,6 @@ const designSpec = { oauth2: [], }, ], - p: "designBoltzGen", }, }, "/api/v1/design/{job_id}": { @@ -2958,136 +769,33 @@ const designSpec = { }, ], responses: { - "200": { + 200: { description: "Structure generate metadata successfully returned.", content: { "application/json": { schema: { - title: "StructureGenerate", - description: "Structure generate request metadata.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - "model_id", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, - }, - model_id: { - type: "string", - example: "rfdiffusion", - }, - args: { - type: "object", - additionalProperties: true, - }, - }, + $ref: "#/components/schemas/StructureGenerate", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Design job not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -3134,94 +842,54 @@ const designSpec = { "Output format to retrieve the result in.\n\nDefaults to `pdb`. Note that requested format may not be supported for all jobs depending on when the job was created.\n", required: false, schema: { - title: "OutputFormat", - description: - "Output format of folded structure. Defaults to pdb.", - type: "string", - enum: ["pdb", "mmcif"], - default: "pdb", + $ref: "#/components/schemas/OutputFormat", }, }, ], responses: { - "200": { + 200: { description: "Result encoded in requested format.", content: { "chemical/x-mmcif": { schema: { - title: "CIFOutput", - description: "An output CIF structure file.", - type: "string", - example: - 'data_example\n#\n_entry.id example\n#\nloop_\n_entity.id\n_entity.type\n_entity.pdbx_description\n1 polymer "Example protein chain"\n#\nloop_\n_atom_site.group_PDB\n_atom_site.id\n_atom_site.type_symbol\n_atom_site.label_atom_id\n_atom_site.label_comp_id\n_atom_site.label_asym_id\n_atom_site.label_entity_id\n_atom_site.label_seq_id\n_atom_site.Cartn_x\n_atom_site.Cartn_y\n_atom_site.Cartn_z\nATOM 1 N N MET A 1 1 12.011 13.456 14.789\nATOM 2 C CA MET A 1 1 13.123 14.567 15.890\nATOM 3 C C MET A 1 1 14.234 15.678 16.901\nATOM 4 O O MET A 1 1 15.345 16.789 17.012\n#\n', + $ref: "#/components/schemas/CIFOutput", }, }, "chemical/x-pdb": { schema: { - title: "PDBOutput", - description: "An output pdb structure file.", - type: "string", - example: - "HEADER OXYGEN TRANSPORT 29-JUL-76 1HHO \nTITLE DEOXY HUMAN HEMOGLOBIN \nCOMPND MOL_ID: 1; MOLECULE: HEMOGLOBIN; CHAIN: A, B, C, D; \nSOURCE HUMAN (HOMO SAPIENS) \nKEYWDS OXYGEN TRANSPORT, HEME \nEXPDTA X-RAY DIFFRACTION \nAUTHOR F.PERUTZ,R.MATTHEWS \nREVDAT 1 24-FEB-09 1HHO 0 \nSEQRES 1 A 141 VAL LEU SER PRO ALA ASP LYS THR VAL LEU THR PRO GLU GLU \nSEQRES 2 A 141 LYS SER ALA GLY PHE LEU SER PRO GLU GLY ALA GLY\n", + $ref: "#/components/schemas/PDBOutput", }, }, }, }, - "400": { + 400: { description: "Result retrieval error. Contact support for assistance if persistent.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Fold job not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -3326,10 +994,7 @@ const designSpec = { "Sequences to use as reference for calculating the number of mutations.", type: "array", items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", + $ref: "#/components/schemas/Sequence", }, }, }, @@ -3371,85 +1036,10 @@ const designSpec = { "Actual criterion that can be evaluated as a score/objective to optimize.", oneOf: [ { - title: "ModelCriterion", - description: "Criteria for design model.", - required: [ - "criterion_type", - "measurement_name", - "criterion", - "model_id", - ], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - measurement_name: { - title: "Measurement Name", - description: "Name of measurement for objective.", - type: "string", - }, - criterion: { - title: "Criterion for Model", - description: - "Criterion for a model-based objective with a target, direction and weight.", - required: ["target", "direction"], - type: "object", - properties: { - target: { - title: "Target", - description: "Target objective.", - type: "number", - }, - direction: { - title: "Direction", - description: - "Direction of objective describing the inequality.", - enum: [">", "<", "="], - type: "string", - }, - weight: { - title: "Weight", - description: "Weight of objective.", - type: "number", - default: 1, - }, - }, - }, - model_id: { - title: "ModelID", - description: - "Model ID to use for computing objective scores.", - type: "string", - }, - }, + $ref: "#/components/schemas/ModelCriterion", }, { - title: "NMutationsCriterion", - description: "Criteria for design based on mutations.", - required: ["criterion_type"], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - sequences: { - title: "Sequences", - description: - "Sequences to use as reference for calculating the number of mutations.", - type: "array", - items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", - }, - }, - }, + $ref: "#/components/schemas/NMutationsCriterion", }, ], discriminator: { @@ -3491,9 +1081,9 @@ const designSpec = { }, "x-order": 13, example: { - "1": ["M", "W", "A"], - "104": ["C"], - "131": ["C"], + 1: ["M", "W", "A"], + 104: ["C"], + 131: ["C"], }, }, pop_size: { @@ -3551,270 +1141,66 @@ const designSpec = { DesignRequestGA: { title: "DesignRequestGeneticAlgorithm", description: "Request to design new variants using genetic algorithm.", - required: ["criteria", "num_steps", "assay_id"], + allOf: [ + { + $ref: "#/components/schemas/DesignParams", + }, + { + $ref: "#/components/schemas/GeneticAlgorithmParams", + }, + ], + }, + JobID: { + title: "JobID", + description: "ID of job.", + type: "string", + format: "uuid", + "x-order": 1, + }, + CreatedDate: { + title: "Created Date", + description: "Datetime of created object", + type: "string", + format: "date-time", + example: "2024-01-01T12:34:56.789Z", + "x-order": 4, + }, + JobStatus: { + title: "JobStatus", + description: "Status of job.", + type: "string", + enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], + "x-order": 7, + }, + Request: { + title: "Request", + description: "Request for our compute platform.", type: "object", + required: [ + "job_id", + "prerequisite_job_id", + "created_date", + "start_date", + "end_date", + "status", + "progress_counter", + ], properties: { - num_steps: { - title: "Number of Steps", - description: "Number of steps to run the algorithm for.", - minimum: 1, - type: "integer", - example: 25, - "x-order": 10, + job_id: { + $ref: "#/components/schemas/JobID", }, - assay_id: { - title: "Assay ID", - description: "Assay ID to use as a starting point.", + prerequisite_job_id: { + title: "PrerequisiteJobID", + description: "Prerequisite job ID.", type: "string", format: "uuid", - "x-order": 11, + nullable: true, + default: null, + example: null, + "x-order": 2, }, - criteria: { - title: "Criteria", - description: - "List of criterion, within which is a list of same-typed of subcriterion.", - type: "array", - items: { - title: "Subcriteria", - description: - "List of subcriterion, each of which must be the same type.", - type: "array", - items: { - title: "Subcriterion", - description: - "Actual criterion that can be evaluated as a score/objective to optimize.", - oneOf: [ - { - title: "ModelCriterion", - description: "Criteria for design model.", - required: [ - "criterion_type", - "measurement_name", - "criterion", - "model_id", - ], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - measurement_name: { - title: "Measurement Name", - description: "Name of measurement for objective.", - type: "string", - }, - criterion: { - title: "Criterion for Model", - description: - "Criterion for a model-based objective with a target, direction and weight.", - required: ["target", "direction"], - type: "object", - properties: { - target: { - title: "Target", - description: "Target objective.", - type: "number", - }, - direction: { - title: "Direction", - description: - "Direction of objective describing the inequality.", - enum: [">", "<", "="], - type: "string", - }, - weight: { - title: "Weight", - description: "Weight of objective.", - type: "number", - default: 1, - }, - }, - }, - model_id: { - title: "ModelID", - description: - "Model ID to use for computing objective scores.", - type: "string", - }, - }, - }, - { - title: "NMutationsCriterion", - description: "Criteria for design based on mutations.", - required: ["criterion_type"], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - sequences: { - title: "Sequences", - description: - "Sequences to use as reference for calculating the number of mutations.", - type: "array", - items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", - }, - }, - }, - }, - ], - discriminator: { - propertyName: "criterion_type", - mapping: { - model: "#/components/schemas/ModelCriterion", - n_mutations: "#/components/schemas/NMutationsCriterion", - }, - }, - }, - }, - "x-order": 12, - example: [ - [ - { - criterion_type: "model", - model_id: "ec0364fd-83ff-4f26-bc17-eb0bd8cfcae5", - measurement_name: "activity", - criterion: { - target: 0, - weight: 0.5, - direction: ">", - }, - }, - ], - ], - }, - allowed_tokens: { - title: "Allowed Tokens", - description: "Hash map of position to allowed tokens.", - type: "object", - additionalProperties: { - type: "array", - items: { - type: "string", - description: "Allowed tokens in this position.", - example: ["A", "C", "M"], - }, - }, - "x-order": 13, - example: { - "1": ["M", "W", "A"], - "104": ["C"], - "131": ["C"], - }, - }, - pop_size: { - title: "Population Size", - description: - "Size of population or number of candidates to explore per step.", - type: "integer", - nullable: true, - default: 256, - example: 256, - "x-order": 101, - }, - n_offsprings: { - title: "Number of Offsprings", - description: "Number of offsprings in genetic algorithm.", - type: "integer", - default: 5120, - example: 5120, - "x-order": 101, - }, - crossover_prob: { - title: "Crossover Probability", - description: "Crossover probability in genetic algorithm.", - type: "number", - default: 1, - example: 1, - "x-order": 102, - }, - crossover_prob_pointwise: { - title: "Crossover Probability Pointwise", - description: - "Pointwise crossover probability in genetic algorithm.", - type: "number", - default: 0.2, - example: 0.2, - "x-order": 103, - }, - mutation_average_mutations_per_seq: { - title: "Average Mutations", - description: "Targeted average mutations per seuqnces", - type: "integer", - default: 1, - example: 1, - "x-order": 104, - }, - }, - }, - JobID: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - CreatedDate: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - JobStatus: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - Request: { - title: "Request", - description: "Request for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, + created_date: { + $ref: "#/components/schemas/CreatedDate", }, start_date: { title: "StartDate", @@ -3837,11 +1223,7 @@ const designSpec = { "x-order": 6, }, status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, + $ref: "#/components/schemas/JobStatus", }, progress_counter: { title: "ProgressCounter", @@ -3889,6 +1271,7 @@ const designSpec = { "/predictor/predict_single_site", "/predictor/predict_multi", "/predictor/crossvalidate", + "/clustering/hierarchical", "/design", ], "x-order": 3, @@ -3896,119 +1279,20 @@ const designSpec = { Job: { title: "Job", description: "Job represents a job for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - "job_type", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - progress_counter: { - title: "ProgressCounter", - description: "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, + allOf: [ + { + $ref: "#/components/schemas/Request", }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, + { + type: "object", + required: ["job_type"], + properties: { + job_type: { + $ref: "#/components/schemas/JobType", + }, + }, }, - }, + ], }, Error: { title: "Error", @@ -4058,11 +1342,7 @@ const designSpec = { "x-order": 0, }, status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, + $ref: "#/components/schemas/JobStatus", }, current_step: { title: "Current Step", @@ -4084,12 +1364,7 @@ const designSpec = { default: 0, }, created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, + $ref: "#/components/schemas/CreatedDate", }, algorithm: { title: "Algorithm", @@ -4107,318 +1382,59 @@ const designSpec = { title: "Design", description: "Design with metadata of request and results if succeeded.", - type: "object", - required: [ - "id", - "status", - "current_step", - "terminated", - "progress_counter", - "created_date", - "algorithm", - "num_rows", - "criteria", - "num_steps", - "assay_id", - ], - properties: { - id: { - title: "ID", - description: "ID of design.", - type: "string", - format: "uuid", - "x-order": 0, + allOf: [ + { + $ref: "#/components/schemas/DesignMetadata", }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, + { + $ref: "#/components/schemas/DesignParams", }, - current_step: { - title: "Current Step", - description: "Current step in the algorithm", - type: "integer", + { + oneOf: [ + { + $ref: "#/components/schemas/GeneticAlgorithmParams", + "x-order": 1000, + }, + ], }, - terminated: { - title: "Terminated", - description: "Whether the algorithm was terminated early.", - type: "boolean", - }, - progress_counter: { - title: "Progress Counter", - description: "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - algorithm: { - title: "Algorithm", - description: "Design algorithm used.", - type: "string", - }, - num_rows: { - title: "Number of Rows", - description: "Number of rows in output of design result.", - type: "integer", - }, - num_steps: { - title: "Number of Steps", - description: "Number of steps to run the algorithm for.", - minimum: 1, - type: "integer", - example: 25, - "x-order": 10, - }, - assay_id: { - title: "Assay ID", - description: "Assay ID to use as a starting point.", - type: "string", - format: "uuid", - "x-order": 11, - }, - criteria: { - title: "Criteria", - description: - "List of criterion, within which is a list of same-typed of subcriterion.", - type: "array", - items: { - title: "Subcriteria", - description: - "List of subcriterion, each of which must be the same type.", - type: "array", - items: { - title: "Subcriterion", - description: - "Actual criterion that can be evaluated as a score/objective to optimize.", - oneOf: [ - { - title: "ModelCriterion", - description: "Criteria for design model.", - required: [ - "criterion_type", - "measurement_name", - "criterion", - "model_id", - ], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - measurement_name: { - title: "Measurement Name", - description: "Name of measurement for objective.", - type: "string", - }, - criterion: { - title: "Criterion for Model", - description: - "Criterion for a model-based objective with a target, direction and weight.", - required: ["target", "direction"], - type: "object", - properties: { - target: { - title: "Target", - description: "Target objective.", - type: "number", - }, - direction: { - title: "Direction", - description: - "Direction of objective describing the inequality.", - enum: [">", "<", "="], - type: "string", - }, - weight: { - title: "Weight", - description: "Weight of objective.", - type: "number", - default: 1, - }, - }, - }, - model_id: { - title: "ModelID", - description: - "Model ID to use for computing objective scores.", - type: "string", - }, - }, - }, - { - title: "NMutationsCriterion", - description: "Criteria for design based on mutations.", - required: ["criterion_type"], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - sequences: { - title: "Sequences", - description: - "Sequences to use as reference for calculating the number of mutations.", - type: "array", - items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", - }, - }, - }, - }, - ], - discriminator: { - propertyName: "criterion_type", - mapping: { - model: "#/components/schemas/ModelCriterion", - n_mutations: "#/components/schemas/NMutationsCriterion", - }, - }, - }, - }, - "x-order": 12, - example: [ - [ - { - criterion_type: "model", - model_id: "ec0364fd-83ff-4f26-bc17-eb0bd8cfcae5", - measurement_name: "activity", - criterion: { - target: 0, - weight: 0.5, - direction: ">", - }, - }, - ], - ], - }, - allowed_tokens: { - title: "Allowed Tokens", - description: "Hash map of position to allowed tokens.", - type: "object", - additionalProperties: { - type: "array", - items: { - type: "string", - description: "Allowed tokens in this position.", - example: ["A", "C", "M"], - }, - }, - "x-order": 13, - example: { - "1": ["M", "W", "A"], - "104": ["C"], - "131": ["C"], - }, - }, - pop_size: { - title: "Population Size", - description: - "Size of population or number of candidates to explore per step.", - type: "integer", - nullable: true, - default: 256, - example: 256, - "x-order": 101, - }, - }, - oneOf: [ - { - title: "GeneticAlgorithmParams", - description: "Parameters for running genetic-algorithm.", - type: "object", - properties: { - n_offsprings: { - title: "Number of Offsprings", - description: "Number of offsprings in genetic algorithm.", - type: "integer", - default: 5120, - example: 5120, - "x-order": 101, - }, - crossover_prob: { - title: "Crossover Probability", - description: "Crossover probability in genetic algorithm.", - type: "number", - default: 1, - example: 1, - "x-order": 102, - }, - crossover_prob_pointwise: { - title: "Crossover Probability Pointwise", - description: - "Pointwise crossover probability in genetic algorithm.", - type: "number", - default: 0.2, - example: 0.2, - "x-order": 103, - }, - mutation_average_mutations_per_seq: { - title: "Average Mutations", - description: "Targeted average mutations per seuqnces", - type: "integer", - default: 1, - example: 1, - "x-order": 104, - }, - }, - }, - ], - example: { - id: "15cde424-04fc-4bce-88ea-4c2eae225d47", - status: "PENDING", - progress_counter: 0, - created_date: "2024-10-30T18:21:08.046624Z", - algorithm: "genetic-algorithm", - num_rows: 0, - num_steps: 10, - assay_id: "99dc46be-5fb1-4771-a59a-65ec76d70765", - criteria: [ - [ - { - criterion_type: "model", - measurement_name: "fitness", - criterion: { - target: 0, - direction: ">", - weight: 0.5, - }, - model_id: "c887360c-fa9c-4357-97fc-ad0c3e9ca3dc", - }, - { - criterion_type: "model", - measurement_name: "fitness", - criterion: { - target: 0.5, - direction: "<", - weight: 0.5, - }, - model_id: "0082d4f6-703f-4f94-b888-b1015fe798eb", - }, - ], - ], - allowed_tokens: { - "1": ["M", "W", "A"], - "104": ["C"], - "131": ["C"], + ], + example: { + id: "15cde424-04fc-4bce-88ea-4c2eae225d47", + status: "PENDING", + progress_counter: 0, + created_date: "2024-10-30T18:21:08.046624Z", + algorithm: "genetic-algorithm", + num_rows: 0, + num_steps: 10, + assay_id: "99dc46be-5fb1-4771-a59a-65ec76d70765", + criteria: [ + [ + { + criterion_type: "model", + measurement_name: "fitness", + criterion: { + target: 0, + direction: ">", + weight: 0.5, + }, + model_id: "c887360c-fa9c-4357-97fc-ad0c3e9ca3dc", + }, + { + criterion_type: "model", + measurement_name: "fitness", + criterion: { + target: 0.5, + direction: "<", + weight: 0.5, + }, + model_id: "0082d4f6-703f-4f94-b888-b1015fe798eb", + }, + ], + ], + allowed_tokens: { + 1: ["M", "W", "A"], + 104: ["C"], + 131: ["C"], }, pop_size: 1024, n_offsprings: 256, @@ -4462,60 +1478,7 @@ const designSpec = { "M array of model criterion, same as submitting a design job.\n", type: "array", items: { - title: "ModelCriterion", - description: "Criteria for design model.", - required: [ - "criterion_type", - "measurement_name", - "criterion", - "model_id", - ], - type: "object", - properties: { - criterion_type: { - title: "Criterion Type", - description: "Type of criterion.", - type: "string", - }, - measurement_name: { - title: "Measurement Name", - description: "Name of measurement for objective.", - type: "string", - }, - criterion: { - title: "Criterion for Model", - description: - "Criterion for a model-based objective with a target, direction and weight.", - required: ["target", "direction"], - type: "object", - properties: { - target: { - title: "Target", - description: "Target objective.", - type: "number", - }, - direction: { - title: "Direction", - description: - "Direction of objective describing the inequality.", - enum: [">", "<", "="], - type: "string", - }, - weight: { - title: "Weight", - description: "Weight of objective.", - type: "number", - default: 1, - }, - }, - }, - model_id: { - title: "ModelID", - description: - "Model ID to use for computing objective scores.", - type: "string", - }, - }, + $ref: "#/components/schemas/ModelCriterion", }, }, k: { @@ -4604,134 +1567,726 @@ const designSpec = { example: "100-100", "x-order": 103, }, - inpaint_seq: { - title: "Inpaint Sequences", - description: "Mask input residues from the input structure.", - type: "string", + inpaint_seq: { + title: "Inpaint Sequences", + description: "Mask input residues from the input structure.", + type: "string", + nullable: true, + default: null, + example: "A1/A30-40", + "x-order": 104, + }, + provide_seq: { + title: "Provide Sequences", + description: "Fix input residues when doing partial diffusion.", + type: "string", + nullable: true, + default: null, + example: "100-119", + "x-order": 105, + }, + hotspot: { + title: "Hotspots", + description: + "Hotspot residues to indicate to the model which sites the binder should interact.", + type: "string", + nullable: true, + default: null, + example: "A30,A33,A34", + "x-order": 106, + }, + T: { + title: "Number of Iterations", + description: "Number of diffusion steps to take.", + type: "integer", + default: 50, + example: 50, + "x-order": 107, + }, + partial_T: { + title: "Number of Partial Diffusion Iterations", + description: "Number of partial diffusion steps to take.", + type: "integer", + default: 20, + example: 20, + "x-order": 108, + }, + use_active_site_model: { + title: "Use Active Site Model", + description: + "Whether or not to use the active site model, which is useful for holding very small motifs in place.", + type: "boolean", + default: false, + example: false, + "x-order": 109, + }, + use_beta_model: { + title: "Use Beta Model", + description: + "Whether or not to use the beta model, which is useful for generating more diverse topologies but possibly trading off for success rates.", + type: "boolean", + default: false, + example: false, + "x-order": 110, + }, + symmetry: { + title: "Symmetry", + description: "Type of symmetry to constrain the design to.", + type: "string", + enum: ["cyclic", "dihedral", "tetrahedral"], + nullable: true, + default: null, + "x-order": 111, + }, + order: { + title: "Symmetry Order", + description: + "The order of symmetry the design should have, in the case of cyclic and dihedral.", + type: "integer", + nullable: true, + default: null, + "x-order": 112, + }, + add_potential: { + title: "Add Potential", + description: + "Whether or not to use potential when creating symmetrical designs, which has been found to be useful. If `null`, defaults to true when doing symmetrical design.", + type: "boolean", + nullable: true, + default: null, + "x-order": 113, + }, + scaffold_target_structure_text: { + title: "Scaffold Target Structure Text", + description: + "String contents of the input PDB file for scaffold guided design. This PDB is used to provide secondary structure and block adjacency information for doing fold conditioning towards the input topology.", + type: "string", + nullable: true, + default: null, + example: + "ATOM 1 N ALA A 1 0.000 0.000 0.000 1.00 0.00 N\n...\n", + "x-order": 114, + }, + scaffold_target_use_struct: { + title: "Scaffold Target Use Structure", + description: + "Whether or not to use the input scaffold structure PDB as a target for scaffold guided binder design.", + type: "boolean", + default: false, + example: false, + "x-order": 115, + }, + }, + examples: { + query: { + n: 1, + query_id: "afc17865-5c97-4b22-9c37-cdf3985e06bb", + }, + unconditional: { + n: 3, + contigs: "100-100", + }, + motif_scaffolding: { + contigs: "10-40/A163-181/10-40", + structure_text: "...", + }, + }, + example: { + n: 1, + query_id: "afc17865-5c97-4b22-9c37-cdf3985e06bb", + }, + }, + BoltzGenProteinEntity: { + title: "BoltzGenProteinEntity", + description: "Protein entity specification for BoltzGen.", + type: "object", + required: ["id", "sequence"], + properties: { + id: { + title: "Chain ID", + description: "Chain identifier(s) for the protein.", + oneOf: [ + { + type: "string", + }, + { + type: "array", + items: { + type: "string", + }, + }, + ], + example: "A", + }, + sequence: { + title: "Sequence", + description: + 'Protein sequence. Can include:\n- Amino acid letters (A-Z)\n- Design residues (numbers, e.g., "10" for 10 design residues)\n- Ranges (e.g., "15..20" for random number between 15-20)\n- Mixed patterns (e.g., "3..5C6C3" for variable design + fixed residues)', + type: "string", + example: "ACDEFGHIKLMNPQRSTVWY", + }, + secondary_structure: { + title: "Secondary Structure", + description: "Secondary structure specification.", + type: "string", + nullable: true, + default: null, + example: "LLLLLLLLLL", + }, + binding_types: { + title: "Binding Types", + description: + "Binding type specification. Can be:\n- String with characters: 'u' (unspecified), 'B' (binding), 'N' (not binding)\n- Object with 'binding' and/or 'not_binding' keys", + oneOf: [ + { + type: "string", + }, + { + type: "object", + properties: { + binding: { + type: "string", + }, + not_binding: { + type: "string", + }, + }, + }, + ], + nullable: true, + default: null, + example: "uuuBBBBuuu", + }, + cyclic: { + title: "Cyclic", + description: "Whether the protein is cyclic.", + type: "boolean", + default: false, + example: false, + }, + }, + }, + BoltzGenLigandEntity: { + title: "BoltzGenLigandEntity", + description: "Ligand entity specification for BoltzGen.", + type: "object", + required: ["id"], + properties: { + id: { + title: "Chain ID", + description: "Chain identifier(s) for the ligand.", + oneOf: [ + { + type: "string", + }, + { + type: "array", + items: { + type: "string", + }, + }, + ], + example: "B", + }, + ccd: { + title: "CCD Code", + description: "Chemical Component Dictionary identifier.", + type: "string", + nullable: true, + default: null, + example: "ATP", + }, + smiles: { + title: "SMILES", + description: "SMILES string representation of the ligand.", + type: "string", + nullable: true, + default: null, + example: "CC(C)CC1=CC=C(C=C1)C(C)C(=O)O", + }, + binding_types: { + title: "Binding Types", + description: + "Binding type specification. Can be:\n- String with characters: 'u' (unspecified), 'B' (binding), 'N' (not binding)\n- Object with 'binding' and/or 'not_binding' keys", + oneOf: [ + { + type: "string", + }, + { + type: "object", + properties: { + binding: { + type: "string", + }, + not_binding: { + type: "string", + }, + }, + }, + ], + nullable: true, + default: null, + }, + }, + oneOf: [ + { + required: ["ccd"], + }, + { + required: ["smiles"], + }, + ], + }, + BoltzGenChainInclude: { + title: "BoltzGenChainInclude", + description: "Chain inclusion specification.", + type: "object", + required: ["id"], + properties: { + id: { + title: "Chain ID", + description: "Chain identifier.", + type: "string", + example: "A", + }, + res_index: { + title: "Residue Index", + description: 'Residue index range (e.g., "10..16", "..5", "20..").', + type: "string", + nullable: true, + default: null, + example: "10..16", + }, + }, + }, + BoltzGenChainIncludeProximity: { + title: "BoltzGenChainIncludeProximity", + description: "Proximity-based chain inclusion.", + type: "object", + required: ["id", "res_index", "radius"], + properties: { + id: { + title: "Chain ID", + description: "Chain identifier.", + type: "string", + example: "A", + }, + res_index: { + title: "Residue Index", + description: "Residue index range.", + type: "string", + example: "10..16", + }, + radius: { + title: "Radius", + description: "Radius in angstroms for proximity inclusion.", + type: "number", + format: "float", + example: 8, + }, + }, + }, + BoltzGenChainBindingType: { + title: "BoltzGenChainBindingType", + description: "Binding type specification for a chain.", + type: "object", + required: ["id"], + properties: { + id: { + title: "Chain ID", + description: "Chain identifier.", + type: "string", + example: "A", + }, + binding: { + title: "Binding", + description: 'Residue indices that are binding (e.g., "5..7,13").', + type: "string", + nullable: true, + default: null, + example: "5..7,13", + }, + not_binding: { + title: "Not Binding", + description: + 'Residue indices that are not binding (e.g., "9..11" or "all").', + type: "string", + nullable: true, + default: null, + example: "9..11", + }, + }, + }, + BoltzGenStructureGroup: { + title: "BoltzGenStructureGroup", + description: "Structure group for visibility control.", + type: "object", + required: ["visibility", "id"], + properties: { + visibility: { + title: "Visibility", + description: "Visibility level (0, 1, 2, etc.).", + type: "integer", + example: 0, + }, + id: { + title: "Chain ID", + description: 'Chain identifier or "all".', + type: "string", + example: "A", + }, + res_index: { + title: "Residue Index", + description: "Residue index range.", + type: "string", + nullable: true, + default: null, + example: "10..16", + }, + }, + }, + BoltzGenChainDesign: { + title: "BoltzGenChainDesign", + description: "Design specification for a chain.", + type: "object", + required: ["id", "res_index"], + properties: { + id: { + title: "Chain ID", + description: "Chain identifier.", + type: "string", + example: "A", + }, + res_index: { + title: "Residue Index", + description: 'Residue indices to design (e.g., "..4,20..27").', + type: "string", + example: "..4,20..27", + }, + }, + }, + BoltzGenChainSecondaryStructure: { + title: "BoltzGenChainSecondaryStructure", + description: "Secondary structure specification for a chain.", + type: "object", + required: ["id"], + properties: { + id: { + title: "Chain ID", + description: "Chain identifier.", + type: "string", + example: "A", + }, + loop: { + title: "Loop", + description: "Residue indices for loop regions.", + type: "string", + nullable: true, + default: null, + example: "1..5", + }, + helix: { + title: "Helix", + description: "Residue indices for helix regions.", + type: "string", + nullable: true, + default: null, + example: "6..20", + }, + sheet: { + title: "Sheet", + description: "Residue indices for sheet regions.", + type: "string", + nullable: true, + default: null, + example: "21..30", + }, + }, + }, + BoltzGenDesignInsertion: { + title: "BoltzGenDesignInsertion", + description: "Design insertion specification.", + type: "object", + required: ["id", "res_index", "num_residues"], + properties: { + id: { + title: "Chain ID", + description: "Chain identifier.", + type: "string", + example: "A", + }, + res_index: { + title: "Residue Index", + description: "Residue index where insertion occurs (1-based).", + type: "integer", + example: 10, + }, + num_residues: { + title: "Number of Residues", + description: + 'Number of residues to insert. Can be a range (e.g., "2..9") or fixed number.', + oneOf: [ + { + type: "string", + }, + { + type: "integer", + }, + ], + example: "2..9", + }, + secondary_structure: { + title: "Secondary Structure", + description: "Secondary structure type for inserted residues.", + type: "string", + enum: ["UNSPECIFIED", "LOOP", "HELIX", "SHEET"], + default: "UNSPECIFIED", + example: "LOOP", + }, + }, + }, + BoltzGenFileEntity: { + title: "BoltzGenFileEntity", + description: + "File-based entity specification (e.g., PDB/CIF files).\n\nNote: The `path` field is a placeholder. When using the API, the actual structure\ncontent must be provided via the `structure_file` parameter in the request body.", + type: "object", + required: ["path"], + properties: { + path: { + title: "Path", + description: + "Path to the structure file. This is a placeholder that will be overwritten\nby the `structure_file` argument when calling the API. The actual structure\ncontent must be provided via the `structure_file` parameter.", + type: "string", + example: "input.pdb", + }, + fuse: { + title: "Fuse Chain", + description: "Chain ID to fuse with.", + type: "string", + nullable: true, + default: null, + example: "A", + }, + include: { + title: "Include", + description: + 'Chains or regions to include. Can be "all" or list of chain specifications.', + oneOf: [ + { + type: "string", + enum: ["all"], + }, + { + type: "array", + items: { + $ref: "#/components/schemas/BoltzGenChainInclude", + }, + }, + ], + nullable: true, + default: null, + example: "all", + }, + exclude: { + title: "Exclude", + description: "Chains or regions to exclude.", + type: "array", + nullable: true, + default: null, + items: { + $ref: "#/components/schemas/BoltzGenChainInclude", + }, + }, + include_proximity: { + title: "Include Proximity", + description: "Proximity-based inclusion specifications.", + type: "array", + nullable: true, + default: null, + items: { + $ref: "#/components/schemas/BoltzGenChainIncludeProximity", + }, + }, + binding_types: { + title: "Binding Types", + description: "Binding type specifications for chains.", + type: "array", + nullable: true, + default: null, + items: { + $ref: "#/components/schemas/BoltzGenChainBindingType", + }, + }, + structure_groups: { + title: "Structure Groups", + description: + "Structure group specifications for visibility control.", + type: "array", + nullable: true, + default: null, + items: { + $ref: "#/components/schemas/BoltzGenStructureGroup", + }, + }, + design: { + title: "Design", + description: "Design specifications for chains.", + type: "array", + nullable: true, + default: null, + items: { + $ref: "#/components/schemas/BoltzGenChainDesign", + }, + }, + secondary_structure: { + title: "Secondary Structure", + description: "Secondary structure specifications for chains.", + type: "array", + nullable: true, + default: null, + items: { + $ref: "#/components/schemas/BoltzGenChainSecondaryStructure", + }, + }, + design_insertions: { + title: "Design Insertions", + description: "Design insertion specifications.", + type: "array", + nullable: true, + default: null, + items: { + $ref: "#/components/schemas/BoltzGenDesignInsertion", + }, + }, + }, + }, + BoltzGenEntity: { + title: "BoltzGenEntity", + description: + "Entity wrapper for different entity types (protein, ligand, or file).", + type: "object", + properties: { + protein: { + $ref: "#/components/schemas/BoltzGenProteinEntity", nullable: true, default: null, - example: "A1/A30-40", - "x-order": 104, }, - provide_seq: { - title: "Provide Sequences", - description: "Fix input residues when doing partial diffusion.", - type: "string", + ligand: { + $ref: "#/components/schemas/BoltzGenLigandEntity", nullable: true, default: null, - example: "100-119", - "x-order": 105, }, - hotspot: { - title: "Hotspots", - description: - "Hotspot residues to indicate to the model which sites the binder should interact.", - type: "string", + file: { + $ref: "#/components/schemas/BoltzGenFileEntity", nullable: true, default: null, - example: "A30,A33,A34", - "x-order": 106, }, - T: { - title: "Number of Iterations", - description: "Number of diffusion steps to take.", - type: "integer", - default: 50, - example: 50, - "x-order": 107, + }, + oneOf: [ + { + required: ["protein"], }, - partial_T: { - title: "Number of Partial Diffusion Iterations", - description: "Number of partial diffusion steps to take.", - type: "integer", - default: 20, - example: 20, - "x-order": 108, + { + required: ["ligand"], }, - use_active_site_model: { - title: "Use Active Site Model", + { + required: ["file"], + }, + ], + }, + BoltzGenBondConstraint: { + title: "BoltzGenBondConstraint", + description: "Covalent bond constraint between two atoms.", + type: "object", + required: ["atom1", "atom2"], + properties: { + atom1: { + title: "Atom 1", description: - "Whether or not to use the active site model, which is useful for holding very small motifs in place.", - type: "boolean", - default: false, - example: false, - "x-order": 109, + "First atom specification [CHAIN_ID, RES_IDX, ATOM_NAME].", + type: "array", + minItems: 3, + maxItems: 3, + items: { + oneOf: [ + { + type: "string", + }, + { + type: "integer", + }, + ], + }, + example: ["A", 10, "CA"], }, - use_beta_model: { - title: "Use Beta Model", + atom2: { + title: "Atom 2", description: - "Whether or not to use the beta model, which is useful for generating more diverse topologies but possibly trading off for success rates.", - type: "boolean", - default: false, - example: false, - "x-order": 110, + "Second atom specification [CHAIN_ID, RES_IDX, ATOM_NAME].", + type: "array", + minItems: 3, + maxItems: 3, + items: { + oneOf: [ + { + type: "string", + }, + { + type: "integer", + }, + ], + }, + example: ["B", 1, "O"], }, - symmetry: { - title: "Symmetry", - description: "Type of symmetry to constrain the design to.", - type: "string", - enum: ["cyclic", "dihedral", "tetrahedral"], + }, + }, + BoltzGenTotalLengthConstraint: { + title: "BoltzGenTotalLengthConstraint", + description: "Total length constraint for the design.", + type: "object", + properties: { + min: { + title: "Minimum Length", + description: "Minimum total length.", + type: "integer", nullable: true, default: null, - "x-order": 111, + example: 50, }, - order: { - title: "Symmetry Order", - description: - "The order of symmetry the design should have, in the case of cyclic and dihedral.", + max: { + title: "Maximum Length", + description: "Maximum total length.", type: "integer", nullable: true, default: null, - "x-order": 112, + example: 200, }, - add_potential: { - title: "Add Potential", - description: - "Whether or not to use potential when creating symmetrical designs, which has been found to be useful. If `null`, defaults to true when doing symmetrical design.", - type: "boolean", + }, + }, + BoltzGenConstraint: { + title: "BoltzGenConstraint", + description: "Constraint wrapper for different constraint types.", + type: "object", + properties: { + bond: { + $ref: "#/components/schemas/BoltzGenBondConstraint", nullable: true, default: null, - "x-order": 113, }, - scaffold_target_structure_text: { - title: "Scaffold Target Structure Text", - description: - "String contents of the input PDB file for scaffold guided design. This PDB is used to provide secondary structure and block adjacency information for doing fold conditioning towards the input topology.", - type: "string", + total_len: { + $ref: "#/components/schemas/BoltzGenTotalLengthConstraint", nullable: true, default: null, - example: - "ATOM 1 N ALA A 1 0.000 0.000 0.000 1.00 0.00 N\n...\n", - "x-order": 114, - }, - scaffold_target_use_struct: { - title: "Scaffold Target Use Structure", - description: - "Whether or not to use the input scaffold structure PDB as a target for scaffold guided binder design.", - type: "boolean", - default: false, - example: false, - "x-order": 115, }, }, - examples: { - query: { - n: 1, - query_id: "afc17865-5c97-4b22-9c37-cdf3985e06bb", - }, - unconditional: { - n: 3, - contigs: "100-100", + anyOf: [ + { + required: ["bond"], }, - motif_scaffolding: { - contigs: "10-40/A163-181/10-40", - structure_text: "...", + { + required: ["total_len"], }, - }, - example: { - n: 1, - query_id: "afc17865-5c97-4b22-9c37-cdf3985e06bb", - }, + ], }, BoltzGenDesignSpec: { title: "BoltzGenDesignSpec", @@ -4746,7 +2301,9 @@ const designSpec = { "List of entities in the design (proteins, ligands, or files).", type: "array", minItems: 1, - items: {}, + items: { + $ref: "#/components/schemas/BoltzGenEntity", + }, "x-order": 1, }, constraints: { @@ -4755,7 +2312,9 @@ const designSpec = { type: "array", nullable: true, default: null, - items: {}, + items: { + $ref: "#/components/schemas/BoltzGenConstraint", + }, "x-order": 2, }, }, @@ -4806,55 +2365,11 @@ const designSpec = { format: "uuid", }, design_spec: { - title: "BoltzGenDesignSpec", + title: "Design Specification", description: - "Complete BoltzGen design specification including entities and constraints.", - type: "object", - required: ["entities"], - properties: { - entities: { - title: "Entities", - description: - "List of entities in the design (proteins, ligands, or files).", - type: "array", - minItems: 1, - items: {}, - "x-order": 1, - }, - constraints: { - title: "Constraints", - description: "List of constraints for the design.", - type: "array", - nullable: true, - default: null, - items: {}, - "x-order": 2, - }, - }, - example: { - entities: [ - { - protein: { - id: "A", - sequence: "ACDEFGHIKLMNPQRSTVWY", - }, - }, - { - ligand: { - id: "B", - ccd: "ATP", - }, - }, - ], - constraints: [ - { - bond: { - atom1: ["A", 10, "CA"], - atom2: ["B", 1, "O"], - }, - }, - ], - }, + "BoltzGen design specification defining entities and constraints.", + $ref: "#/components/schemas/BoltzGenDesignSpec", + "x-order": 102, }, structure_text: { title: "Structure Text", @@ -4972,96 +2487,33 @@ const designSpec = { StructureGenerate: { title: "StructureGenerate", description: "Structure generate request metadata.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - "model_id", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - progress_counter: { - title: "ProgressCounter", - description: "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, - }, - model_id: { - type: "string", - example: "rfdiffusion", + allOf: [ + { + $ref: "#/components/schemas/Request", }, - args: { + { type: "object", - additionalProperties: true, + required: ["model_id"], + properties: { + model_id: { + type: "string", + example: "rfdiffusion", + }, + args: { + type: "object", + additionalProperties: true, + }, + }, }, - }, + ], }, OutputFormat: { title: "OutputFormat", - description: "Output format of folded structure. Defaults to pdb.", + description: + "Output format of folded structure. Defaults to `mmcif`.\n\nThe value `cif` is accepted as an alias for `mmcif`.\n", type: "string", - enum: ["pdb", "mmcif"], - default: "pdb", + enum: ["pdb", "mmcif", "cif"], + default: "mmcif", }, CIFOutput: { title: "CIFOutput", @@ -5091,5 +2543,4 @@ const designSpec = { }, ], }; - export default designSpec; diff --git a/source/_static/js/embeddingsSpec.js b/source/_static/js/embeddingsSpec.js index 3c13efd..5b016dd 100644 --- a/source/_static/js/embeddingsSpec.js +++ b/source/_static/js/embeddingsSpec.js @@ -39,7 +39,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "Available embeddings models returned.", content: { "application/json": { @@ -91,36 +91,35 @@ const embeddingsSpec = { schema: { type: "string", enum: [ - "ablang2", + "poet", + "poet-2", + "proteinmpnn", "esm-if1", + "prot-seq", + "rotaprot-large-uniref50w", + "rotaprot-large-uniref90-ft", "esm1b_t33_650M_UR50S", "esm1v_t33_650M_UR90S_1", "esm1v_t33_650M_UR90S_2", "esm1v_t33_650M_UR90S_3", "esm1v_t33_650M_UR90S_4", "esm1v_t33_650M_UR90S_5", + "esm2_t6_8M_UR50D", "esm2_t12_35M_UR50D", "esm2_t30_150M_UR50D", "esm2_t33_650M_UR50D", "esm2_t36_3B_UR50D", - "esm2_t6_8M_UR50D", "esmc-300m", "esmc-600m", "esmc-6b", - "poet", - "poet-2", - "poet-2-large-exp-018-091", - "prot-seq", - "proteinmpnn", "prott5-xl", - "rotaprot-large-uniref50w", - "rotaprot-large-uniref90-ft", + "ablang2", ], }, }, ], responses: { - "200": { + 200: { description: "Detailed information about model returned.", content: { "application/json": { @@ -130,7 +129,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -141,7 +140,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model was not found.", content: { "application/json": { @@ -177,7 +176,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "Embeddings metadata successfully returned.", content: { "application/json": { @@ -187,7 +186,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -198,7 +197,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Embeddings job not found.", content: { "application/json": { @@ -234,7 +233,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "Request sequences", content: { "application/json": { @@ -247,7 +246,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -258,7 +257,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Embeddings job not found.", content: { "application/json": { @@ -304,7 +303,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "Result encoded in numpy format", content: { "application/octet-stream": { @@ -317,7 +316,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Vector retrieval error. Contact support for assistance if persistent.", content: { @@ -328,7 +327,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -339,7 +338,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Embeddings job not found.", content: { "application/json": { @@ -375,7 +374,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "Scored sequences with likelihoods encoded in csv format.", content: { @@ -389,7 +388,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Vector retrieval error. Contact support for assistance if persistent.", content: { @@ -400,7 +399,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -411,7 +410,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Embeddings job not found.", content: { "application/json": { @@ -448,7 +447,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "Generated sequences with likelihoods encoded in csv format.", content: { @@ -462,7 +461,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Vector retrieval error. Contact support for assistance if persistent.", content: { @@ -473,7 +472,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -484,7 +483,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Embeddings job not found.", content: { "application/json": { @@ -547,7 +546,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Score extension request created and pending", content: { "application/json": { @@ -557,7 +556,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -567,7 +566,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -577,7 +576,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -588,7 +587,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -654,7 +653,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Score extension request created and pending", content: { "application/json": { @@ -664,7 +663,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -674,7 +673,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -684,7 +683,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -695,7 +694,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -721,7 +720,7 @@ const embeddingsSpec = { description: "List SVDs available.\n\nYou may need to create an SVD first with POST `/svd` to see results here.\n", responses: { - "200": { + 200: { description: "List of SVDs", content: { "application/json": { @@ -735,7 +734,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -830,7 +829,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "SVD request created and pending", content: { "application/json": { @@ -840,7 +839,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -851,7 +850,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Specified `model_id` not found.", content: { "application/json": { @@ -887,7 +886,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "SVD metadata", content: { "application/json": { @@ -897,7 +896,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -908,7 +907,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "SVD not found.", content: { "application/json": { @@ -941,11 +940,11 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "SVD successfully deleted.", content: {}, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -956,7 +955,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "SVD not found.", content: { "application/json": { @@ -1013,7 +1012,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embeddings SVD request created and pending", content: { "application/json": { @@ -1049,7 +1048,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "Request sequences", content: { "application/json": { @@ -1062,7 +1061,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -1073,7 +1072,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "SVD fit job not found.", content: { "application/json": { @@ -1109,7 +1108,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "List of clustering jobs", content: { "application/json": { @@ -1122,7 +1121,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token.", content: { "application/json": { @@ -1312,7 +1311,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Clustering request created and pending", content: { "application/json": { @@ -1322,7 +1321,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Invalid request (bad parameters, illegal linkage/metric combo, size cap exceeded, etc.)", content: { @@ -1333,7 +1332,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token.", content: { "application/json": { @@ -1370,7 +1369,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "Clustering metadata", content: { "application/json": { @@ -1380,7 +1379,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token.", content: { "application/json": { @@ -1390,7 +1389,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Clustering job not found.", content: { "application/json": { @@ -1424,11 +1423,11 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "Clustering job successfully deleted.", content: {}, }, - "401": { + 401: { description: "Bad or expired token.", content: { "application/json": { @@ -1438,7 +1437,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Clustering job not found.", content: { "application/json": { @@ -1475,7 +1474,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "Clustering linkage result", content: { "application/json": { @@ -1485,7 +1484,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Result not yet ready (job still pending/running).", content: { "application/json": { @@ -1495,7 +1494,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token.", content: { "application/json": { @@ -1505,7 +1504,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Clustering job not found.", content: { "application/json": { @@ -1542,7 +1541,7 @@ const embeddingsSpec = { }, ], responses: { - "200": { + 200: { description: "Input sequences in original order", content: { "application/json": { @@ -1555,7 +1554,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token.", content: { "application/json": { @@ -1565,7 +1564,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Clustering job not found.", content: { "application/json": { @@ -1639,7 +1638,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -1649,7 +1648,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -1659,7 +1658,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -1670,7 +1669,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -1680,7 +1679,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -1691,7 +1690,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -1766,7 +1765,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -1776,7 +1775,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -1786,7 +1785,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -1797,7 +1796,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -1807,7 +1806,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -1818,7 +1817,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -1883,7 +1882,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -1893,7 +1892,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -1903,7 +1902,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -1914,7 +1913,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -1924,7 +1923,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -1935,7 +1934,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -2002,7 +2001,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -2012,7 +2011,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -2022,7 +2021,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -2033,7 +2032,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -2043,7 +2042,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -2054,7 +2053,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -2121,7 +2120,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -2131,7 +2130,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -2141,7 +2140,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -2152,7 +2151,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -2162,7 +2161,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -2173,7 +2172,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -2240,7 +2239,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -2250,7 +2249,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -2260,7 +2259,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -2271,7 +2270,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -2281,7 +2280,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -2292,7 +2291,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -2359,7 +2358,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -2369,7 +2368,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -2379,7 +2378,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -2390,7 +2389,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -2400,7 +2399,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -2411,7 +2410,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -2478,7 +2477,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -2488,7 +2487,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -2498,7 +2497,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -2509,7 +2508,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -2519,7 +2518,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -2530,7 +2529,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -2597,7 +2596,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -2607,7 +2606,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -2617,7 +2616,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -2628,7 +2627,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -2638,7 +2637,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -2649,7 +2648,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -2716,7 +2715,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -2726,7 +2725,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -2736,7 +2735,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -2747,7 +2746,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -2757,7 +2756,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -2768,7 +2767,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -2835,7 +2834,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -2845,7 +2844,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -2855,7 +2854,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -2866,7 +2865,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -2876,7 +2875,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -2887,7 +2886,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -2952,7 +2951,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -2962,7 +2961,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -2972,7 +2971,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -2983,7 +2982,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -2993,7 +2992,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -3004,7 +3003,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -3071,7 +3070,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -3081,7 +3080,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -3091,7 +3090,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -3102,7 +3101,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -3112,7 +3111,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -3123,7 +3122,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -3190,7 +3189,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -3200,7 +3199,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -3210,7 +3209,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -3221,7 +3220,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -3231,7 +3230,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -3242,7 +3241,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -3309,7 +3308,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -3319,7 +3318,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -3329,7 +3328,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -3340,7 +3339,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -3350,7 +3349,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -3361,7 +3360,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -3428,7 +3427,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -3438,7 +3437,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -3448,7 +3447,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -3459,7 +3458,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -3469,7 +3468,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -3480,7 +3479,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -3545,7 +3544,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -3555,7 +3554,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -3565,7 +3564,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -3576,7 +3575,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -3586,7 +3585,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -3597,7 +3596,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -3662,7 +3661,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -3672,7 +3671,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -3682,7 +3681,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -3693,7 +3692,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -3703,7 +3702,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -3714,7 +3713,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -3779,7 +3778,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -3789,7 +3788,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -3799,7 +3798,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -3810,7 +3809,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -3820,7 +3819,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -3831,7 +3830,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -3896,7 +3895,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -3906,7 +3905,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -3916,7 +3915,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -3927,7 +3926,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -3937,7 +3936,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -3948,7 +3947,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -4013,7 +4012,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Embed request created and pending", content: { "application/json": { @@ -4023,7 +4022,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -4033,7 +4032,7 @@ const embeddingsSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -4044,7 +4043,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -4054,7 +4053,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -4065,7 +4064,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -4129,7 +4128,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -4139,7 +4138,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -4149,7 +4148,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -4159,7 +4158,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -4170,7 +4169,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -4236,7 +4235,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -4246,7 +4245,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -4256,7 +4255,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -4266,7 +4265,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -4277,7 +4276,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -4343,7 +4342,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -4353,7 +4352,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -4363,7 +4362,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -4373,7 +4372,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -4384,7 +4383,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -4450,7 +4449,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -4460,7 +4459,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -4470,7 +4469,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -4480,7 +4479,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -4491,7 +4490,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -4557,7 +4556,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -4567,7 +4566,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -4577,7 +4576,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -4587,7 +4586,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -4598,7 +4597,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -4664,7 +4663,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -4674,7 +4673,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -4684,7 +4683,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -4694,7 +4693,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -4705,7 +4704,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -4771,7 +4770,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -4781,7 +4780,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -4791,7 +4790,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -4801,7 +4800,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -4812,7 +4811,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -4878,7 +4877,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -4888,7 +4887,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -4898,7 +4897,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -4908,7 +4907,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -4919,7 +4918,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -4985,7 +4984,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -4995,7 +4994,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -5005,7 +5004,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -5015,7 +5014,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -5026,7 +5025,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -5090,7 +5089,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -5100,7 +5099,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -5110,7 +5109,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -5120,7 +5119,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -5131,7 +5130,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -5197,7 +5196,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -5207,7 +5206,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -5217,7 +5216,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -5227,7 +5226,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -5238,7 +5237,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -5304,7 +5303,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -5314,7 +5313,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -5324,7 +5323,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -5334,7 +5333,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -5345,7 +5344,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -5411,7 +5410,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -5421,7 +5420,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -5431,7 +5430,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -5441,7 +5440,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -5452,7 +5451,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -5516,7 +5515,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -5526,7 +5525,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -5536,7 +5535,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -5546,7 +5545,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -5557,7 +5556,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -5621,7 +5620,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -5631,7 +5630,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -5641,7 +5640,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -5651,7 +5650,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -5662,7 +5661,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -5726,7 +5725,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -5736,7 +5735,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -5746,7 +5745,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -5756,7 +5755,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -5767,7 +5766,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -5831,7 +5830,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Attention request created and pending", content: { "application/json": { @@ -5841,7 +5840,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -5851,7 +5850,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -5861,7 +5860,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -5872,7 +5871,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -5947,7 +5946,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -5957,7 +5956,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -5967,7 +5966,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -5977,7 +5976,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -5988,7 +5987,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -6063,7 +6062,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -6073,7 +6072,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -6083,7 +6082,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -6093,7 +6092,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -6104,7 +6103,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -6169,7 +6168,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -6179,7 +6178,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -6189,7 +6188,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -6199,7 +6198,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -6210,7 +6209,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -6277,7 +6276,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -6287,7 +6286,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -6297,7 +6296,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -6307,7 +6306,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -6318,7 +6317,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -6385,7 +6384,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -6395,7 +6394,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -6405,7 +6404,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -6415,7 +6414,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -6426,7 +6425,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -6491,7 +6490,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -6501,7 +6500,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -6511,7 +6510,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -6521,7 +6520,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -6532,7 +6531,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -6599,7 +6598,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -6609,7 +6608,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -6619,7 +6618,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -6629,7 +6628,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -6640,7 +6639,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -6707,7 +6706,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -6717,7 +6716,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -6727,7 +6726,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -6737,7 +6736,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -6748,7 +6747,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -6815,7 +6814,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -6825,7 +6824,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -6835,7 +6834,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -6845,7 +6844,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -6856,7 +6855,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -6923,7 +6922,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -6933,7 +6932,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -6943,7 +6942,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -6953,7 +6952,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -6964,7 +6963,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -7031,7 +7030,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -7041,7 +7040,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -7051,7 +7050,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -7061,7 +7060,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -7072,7 +7071,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -7137,7 +7136,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -7147,7 +7146,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -7157,7 +7156,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -7167,7 +7166,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -7178,7 +7177,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -7243,7 +7242,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -7253,7 +7252,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -7263,7 +7262,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -7273,7 +7272,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -7284,7 +7283,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -7349,7 +7348,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -7359,7 +7358,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -7369,7 +7368,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -7379,7 +7378,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -7390,7 +7389,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -7455,7 +7454,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -7465,7 +7464,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -7475,7 +7474,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -7485,7 +7484,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -7496,7 +7495,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -7561,7 +7560,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -7571,7 +7570,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -7581,7 +7580,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -7591,7 +7590,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -7602,7 +7601,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -7667,7 +7666,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -7677,7 +7676,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -7687,7 +7686,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -7697,7 +7696,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -7708,7 +7707,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -7773,7 +7772,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -7783,7 +7782,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -7793,7 +7792,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -7803,7 +7802,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -7814,7 +7813,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -7879,7 +7878,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -7889,7 +7888,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -7899,7 +7898,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -7909,7 +7908,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -7920,7 +7919,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -7985,7 +7984,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Logits request created and pending", content: { "application/json": { @@ -7995,7 +7994,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -8005,7 +8004,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -8015,7 +8014,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -8026,7 +8025,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -8099,7 +8098,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Score request created and pending", content: { "application/json": { @@ -8109,7 +8108,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -8119,7 +8118,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -8129,7 +8128,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -8140,7 +8139,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -8213,7 +8212,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Score request created and pending", content: { "application/json": { @@ -8223,7 +8222,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -8233,7 +8232,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -8243,7 +8242,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -8254,7 +8253,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -8329,7 +8328,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Score request created and pending", content: { "application/json": { @@ -8339,7 +8338,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -8349,7 +8348,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -8359,7 +8358,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -8370,7 +8369,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -8479,7 +8478,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Indel score request created and pending", content: { "application/json": { @@ -8489,7 +8488,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -8499,7 +8498,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -8509,7 +8508,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -8520,7 +8519,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -8629,7 +8628,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Indel score request created and pending", content: { "application/json": { @@ -8639,7 +8638,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -8649,7 +8648,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -8659,7 +8658,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -8670,7 +8669,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -8781,7 +8780,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Indel score request created and pending", content: { "application/json": { @@ -8791,7 +8790,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -8801,7 +8800,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -8811,7 +8810,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -8822,7 +8821,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -8889,7 +8888,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Single-site score request created and pending", content: { "application/json": { @@ -8899,7 +8898,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -8909,7 +8908,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -8919,7 +8918,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -8930,7 +8929,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -8998,7 +8997,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Single-site score request created and pending", content: { "application/json": { @@ -9008,7 +9007,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -9018,7 +9017,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -9028,7 +9027,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -9039,7 +9038,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -9109,7 +9108,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Single-site score request created and pending", content: { "application/json": { @@ -9119,7 +9118,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -9129,7 +9128,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -9139,7 +9138,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -9150,7 +9149,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -9285,7 +9284,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Generate request created and pending", content: { "application/json": { @@ -9295,7 +9294,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -9305,7 +9304,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -9315,7 +9314,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -9326,7 +9325,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -9470,7 +9469,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Generate request created and pending", content: { "application/json": { @@ -9480,7 +9479,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -9490,7 +9489,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -9500,7 +9499,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -9511,7 +9510,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -9909,7 +9908,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Generate request created and pending", content: { "application/json": { @@ -9919,7 +9918,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -9929,7 +9928,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -9939,7 +9938,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -9950,7 +9949,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -10064,7 +10063,7 @@ const embeddingsSpec = { required: true, }, responses: { - "202": { + 202: { description: "Generate request created and pending", content: { "application/json": { @@ -10074,7 +10073,7 @@ const embeddingsSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -10084,7 +10083,7 @@ const embeddingsSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -10094,7 +10093,7 @@ const embeddingsSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -10105,7 +10104,7 @@ const embeddingsSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -10767,28 +10766,23 @@ const embeddingsSpec = { }, { name: "poet", - description: - "OpenProtein-developed conditional protein language model that enables embedding, scoring, and generating sequences conditioned on an input protein family of interest.\n\nMaximum Sequence Length: 4096\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V", + description: "poet", }, { name: "poet-2", - description: - "OpenProtein-developed conditional and multi-modal protein language model that enables embedding, scoring, and generating sequences conditioned on an input protein family of interest.\n\nMaximum Sequence Length: 65534\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V", + description: "poet-2", }, { name: "prot-seq", - description: - "Masked protein language model (~300M parameters) trained on UniRef50 with contact and secondary structure prediction as secondary objectives. Uses random Fourier position embeddings and FlashAttention to enable fast inference.\n\nMaximum Sequence Length: 4096\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V", + description: "prot-seq", }, { name: "rotaprot-large-uniref50w", - description: - "Masked protein language model (~900M parameters) trained on UniRef100 with sequences weighted inversely proportional to the number of UniRef50 homologs. Uses rotary relative position embeddings and FlashAttention to enable fast inference.\n\nMaximum Sequence Length: 4096\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V", + description: "rotaprot-large-uniref50w", }, { name: "rotaprot-large-uniref90-ft", - description: - "rotaprot-large-uniref50w finetuned on UniRef100 with sequences weighted inversely proportional to the number of UniRef90 cluster members.\n\nMaximum Sequence Length: 4096\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V", + description: "rotaprot-large-uniref90-ft", }, { name: "esm1", @@ -10797,33 +10791,27 @@ const embeddingsSpec = { }, { name: "esm1b_t33_650M_UR50S", - description: - "ESM1b model with 650M parameters\n\nMaximum Sequence Length: 1022\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,<null_0>,B,U,Z,O,.,-,<null_1>,X", + description: "esm1b_t33_650M_UR50S", }, { name: "esm1v_t33_650M_UR90S_1", - description: - "ESM1v model with 650M parameters\n\nMaximum Sequence Length: 1022\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,<null_0>,B,U,Z,O,.,-,<null_1>,X", + description: "esm1v_t33_650M_UR90S_1", }, { name: "esm1v_t33_650M_UR90S_2", - description: - "ESM1v model with 650M parameters\n\nMaximum Sequence Length: 1022\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,<null_0>,B,U,Z,O,.,-,<null_1>,X", + description: "esm1v_t33_650M_UR90S_2", }, { name: "esm1v_t33_650M_UR90S_3", - description: - "ESM1v model with 650M parameters\n\nMaximum Sequence Length: 1022\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,<null_0>,B,U,Z,O,.,-,<null_1>,X", + description: "esm1v_t33_650M_UR90S_3", }, { name: "esm1v_t33_650M_UR90S_4", - description: - "ESM1v model with 650M parameters\n\nMaximum Sequence Length: 1022\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,<null_0>,B,U,Z,O,.,-,<null_1>,X", + description: "esm1v_t33_650M_UR90S_4", }, { name: "esm1v_t33_650M_UR90S_5", - description: - "ESM1v model with 650M parameters\n\nMaximum Sequence Length: 1022\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,<null_0>,B,U,Z,O,.,-,<null_1>,X", + description: "esm1v_t33_650M_UR90S_5", }, { name: "esm2", @@ -10832,28 +10820,23 @@ const embeddingsSpec = { }, { name: "esm2_t6_8M_UR50D", - description: - "ESM2 model with 8M parameters\n\nMaximum Sequence Length: 4094\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,<null_0>,B,U,Z,O,.,-,<null_1>,X", + description: "esm2_t6_8M_UR50D", }, { name: "esm2_t12_35M_UR50D", - description: - "ESM2 model with 35M parameters\n\nMaximum Sequence Length: 4094\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,<null_0>,B,U,Z,O,.,-,<null_1>,X", + description: "esm2_t12_35M_UR50D", }, { name: "esm2_t30_150M_UR50D", - description: - "ESM2 model with 150M parameters\n\nMaximum Sequence Length: 4094\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,<null_0>,B,U,Z,O,.,-,<null_1>,X", + description: "esm2_t30_150M_UR50D", }, { name: "esm2_t33_650M_UR50D", - description: - "ESM2 model with 650M parameters\n\nMaximum Sequence Length: 4094\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,<null_0>,B,U,Z,O,.,-,<null_1>,X", + description: "esm2_t33_650M_UR50D", }, { name: "esm2_t36_3B_UR50D", - description: - "ESM2 model with 3B parameters\n\nMaximum Sequence Length: 4094\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,<null_0>,B,U,Z,O,.,-,<null_1>,X", + description: "esm2_t36_3B_UR50D", }, { name: "esmc", @@ -10862,18 +10845,15 @@ const embeddingsSpec = { }, { name: "esmc-300m", - description: - "ESM Cambrian (ESMC) protein language model with 300M parameters, trained on protein sequences from UniRef, MGnify, and JGI.\n\nMaximum Sequence Length: 4094\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,X,B,U,Z,O,.,-,|,X", + description: "esmc-300m", }, { name: "esmc-600m", - description: - "ESM Cambrian (ESMC) protein language model with 600M parameters, trained on protein sequences from UniRef, MGnify, and JGI.\n\nMaximum Sequence Length: 4094\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,X,B,U,Z,O,.,-,|,X", + description: "esmc-600m", }, { name: "esmc-6b", - description: - "ESM Cambrian (ESMC) protein language model with 6B parameters, trained on protein sequences from UniRef, MGnify, and JGI.\n\nMaximum Sequence Length: 4094\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: <cls>,<pad>,<eos>,<unk>,L,A,G,V,S,E,R,T,I,D,P,K,Q,N,F,Y,M,H,W,C,X,B,U,Z,O,.,-,|,X", + description: "esmc-6b", }, { name: "community", @@ -10881,8 +10861,7 @@ const embeddingsSpec = { }, { name: "prott5-xl", - description: - "prott5-xl\n\nMaximum Sequence Length: 4096\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: ", + description: "prott5-xl", }, { name: "antibody", @@ -10890,18 +10869,15 @@ const embeddingsSpec = { }, { name: "ablang2", - description: - "AbLang2 foundational model for antibodies.\n\nMaximum Sequence Length: 4096\n\nInput Tokens: M,R,H,K,D,E,S,T,N,Q,C,G,P,A,V,I,F,Y,W,L,-,X,:\n\nOutput Tokens: <,M,R,H,K,D,E,S,T,N,Q,C,G,P,A,V,I,F,Y,W,L,-,>,*,X,:", + description: "ablang2", }, { name: "esm-if1", - description: - "ESM-IF1: protein inverse-folding model pretrained on PDB and 12 million AlphaFold predicted structures.\n\nMaximum Sequence Length: 500\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-\n\nOutput Tokens: ", + description: "esm-if1", }, { name: "proteinmpnn", - description: - "ProteinMPNN model which can be used for inverse-folding of protein structures to predict suitable sequences.\n\nMaximum Sequence Length: 4096\n\nInput Tokens: A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V,X,O,U,B,Z,-,:\n\nOutput Tokens: ", + description: "proteinmpnn", }, ], }; diff --git a/source/_static/js/foldSpec.js b/source/_static/js/foldSpec.js index bf00cdc..6f4ec92 100644 --- a/source/_static/js/foldSpec.js +++ b/source/_static/js/foldSpec.js @@ -39,7 +39,7 @@ const foldSpec = { }, ], responses: { - "200": { + 200: { description: "Available fold models returned.", content: { "application/json": { @@ -108,7 +108,7 @@ const foldSpec = { }, ], responses: { - "200": { + 200: { description: "Detailed information about model returned.", content: { "application/json": { @@ -118,7 +118,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -129,7 +129,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model was not found.", content: { "application/json": { @@ -165,7 +165,7 @@ const foldSpec = { required: true, }, responses: { - "202": { + 202: { description: "ESMFold request created and pending", content: { "application/json": { @@ -175,7 +175,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -185,7 +185,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -196,7 +196,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -206,7 +206,7 @@ const foldSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -217,7 +217,7 @@ const foldSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -253,7 +253,7 @@ const foldSpec = { required: true, }, responses: { - "202": { + 202: { description: "ESMFold2 request created and pending", content: { "application/json": { @@ -263,7 +263,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -273,7 +273,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -284,7 +284,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -294,7 +294,7 @@ const foldSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -305,7 +305,7 @@ const foldSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -341,7 +341,7 @@ const foldSpec = { required: true, }, responses: { - "202": { + 202: { description: "ESMFold2-Fast request created and pending", content: { "application/json": { @@ -351,7 +351,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -361,7 +361,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -372,7 +372,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -382,7 +382,7 @@ const foldSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -393,7 +393,7 @@ const foldSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -429,7 +429,7 @@ const foldSpec = { required: true, }, responses: { - "202": { + 202: { description: "MiniFold request created and pending", content: { "application/json": { @@ -439,7 +439,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -449,7 +449,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -460,7 +460,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -470,7 +470,7 @@ const foldSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -481,7 +481,7 @@ const foldSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -517,7 +517,7 @@ const foldSpec = { required: true, }, responses: { - "202": { + 202: { description: "AlphaFold2 request created and pending", content: { "application/json": { @@ -527,7 +527,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -537,7 +537,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -548,7 +548,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -558,7 +558,7 @@ const foldSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -569,7 +569,7 @@ const foldSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -605,7 +605,7 @@ const foldSpec = { required: true, }, responses: { - "202": { + 202: { description: "Boltz-1 request created and pending", content: { "application/json": { @@ -615,7 +615,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -625,7 +625,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -636,7 +636,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -646,7 +646,7 @@ const foldSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -657,7 +657,7 @@ const foldSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -693,7 +693,7 @@ const foldSpec = { required: true, }, responses: { - "202": { + 202: { description: "Boltz-1 request created and pending", content: { "application/json": { @@ -703,7 +703,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -713,7 +713,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -724,7 +724,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -734,7 +734,7 @@ const foldSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -745,7 +745,7 @@ const foldSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -781,7 +781,7 @@ const foldSpec = { required: true, }, responses: { - "202": { + 202: { description: "Boltz-1 request created and pending", content: { "application/json": { @@ -791,7 +791,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -801,7 +801,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -812,7 +812,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -822,7 +822,7 @@ const foldSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -833,7 +833,7 @@ const foldSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -869,7 +869,7 @@ const foldSpec = { required: true, }, responses: { - "202": { + 202: { description: "AlphaFold2 request created and pending", content: { "application/json": { @@ -879,7 +879,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -889,7 +889,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -900,7 +900,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -910,7 +910,7 @@ const foldSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -921,7 +921,7 @@ const foldSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -957,7 +957,7 @@ const foldSpec = { required: true, }, responses: { - "202": { + 202: { description: "Protenix request created and pending", content: { "application/json": { @@ -967,7 +967,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -977,7 +977,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -988,7 +988,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -998,7 +998,7 @@ const foldSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -1009,7 +1009,7 @@ const foldSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -1045,7 +1045,7 @@ const foldSpec = { required: true, }, responses: { - "202": { + 202: { description: "Protenix-v2 request created and pending", content: { "application/json": { @@ -1055,7 +1055,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { @@ -1065,7 +1065,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -1076,7 +1076,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Model not found.", content: { "application/json": { @@ -1086,7 +1086,7 @@ const foldSpec = { }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { @@ -1097,7 +1097,7 @@ const foldSpec = { }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { @@ -1133,7 +1133,7 @@ const foldSpec = { }, ], responses: { - "200": { + 200: { description: "Fold metadata successfully returned.", content: { "application/json": { @@ -1143,7 +1143,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -1154,7 +1154,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Fold job not found.", content: { "application/json": { @@ -1190,7 +1190,7 @@ const foldSpec = { }, ], responses: { - "200": { + 200: { description: "Request sequences", content: { "application/json": { @@ -1207,7 +1207,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -1218,7 +1218,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Fold job not found.", content: { "application/json": { @@ -1275,7 +1275,7 @@ const foldSpec = { }, ], responses: { - "200": { + 200: { description: "Result encoded in requested format.", content: { "chemical/x-pdb": { @@ -1290,7 +1290,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Result retrieval error. Contact support for assistance if persistent.", content: { @@ -1301,7 +1301,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -1312,7 +1312,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Fold job not found.", content: { "application/json": { @@ -1380,7 +1380,7 @@ const foldSpec = { }, ], responses: { - "200": { + 200: { description: "Extra result as a file.\n\n- `pae`, `pde`, `plddt`, `ptm` return a `.npy`.\n- `confidence`, `affinity` return a JSON file.\n- `score`, `metrics` return a CSV file.\n", content: { @@ -1393,7 +1393,7 @@ const foldSpec = { }, }, }, - "400": { + 400: { description: "Result retrieval error. Contact support for assistance if persistent.", content: { @@ -1404,7 +1404,7 @@ const foldSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -1415,7 +1415,7 @@ const foldSpec = { }, }, }, - "404": { + 404: { description: "Fold job not found.", content: { "application/json": { diff --git a/source/_static/js/predictorSpec.js b/source/_static/js/predictorSpec.js index 160eef0..f4955fd 100644 --- a/source/_static/js/predictorSpec.js +++ b/source/_static/js/predictorSpec.js @@ -19,342 +19,84 @@ const predictorSpec = { content: { "application/json": { schema: { - title: "TrainRequestGP", - description: "Request to train a predictor using GP.", - type: "object", - required: ["dataset", "features", "kernel"], - properties: { - name: { - type: "string", - description: "Name of predictor to save.", - }, - description: { - type: "string", - description: "Description of predictor.", - }, - dataset: { - title: "TrainingDataset", - type: "object", - required: ["assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness"], - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: ["linear", "rbf", "matern21", "matern32"], - example: "rbf", - }, - multitask: { - type: "boolean", - description: "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, + $ref: "#/components/schemas/TrainRequestGP", }, }, }, required: true, }, responses: { - "202": { + 202: { description: "Training job created and pending.", content: { "application/json": { schema: { - title: "Job", - description: "Job represents a job for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "job_type", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - example: "/predictor/train", - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, + allOf: [ + { + $ref: "#/components/schemas/Job", }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, + { + type: "object", + properties: { + job_type: { + type: "string", + example: "/predictor/train", + }, + }, }, - }, + ], }, }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Model or assay not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { "application/json": { schema: { - title: "ValidationError.yaml", - description: "An invalid object that could not be parsed.", - type: "object", - properties: { - detail: { - title: "ErrorDetailList", - type: "array", - items: { - title: "ErrorDetail", - required: ["loc", "msg", "type"], - type: "object", - properties: { - loc: { - title: "Location", - type: "array", - items: { - type: "integer", - }, - }, - msg: { - title: "Message", - type: "string", - }, - type: { - title: "Error Type", - type: "string", - }, - }, - }, - }, - }, + $ref: "#/components/schemas/ValidationError", }, }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -365,7 +107,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "trainGP", }, }, "/api/v1/predictor/ensemble": { @@ -379,633 +120,71 @@ const predictorSpec = { content: { "application/json": { schema: { - title: "EnsembleRequest", - description: "Request to create ensemble predictor.", - type: "object", - required: ["model_ids"], - properties: { - name: { - type: "string", - description: "Name of ensemble predictor to save.", - example: "My Ensemble Model", - }, - description: { - type: "string", - description: "Description of ensemble predictor.", - example: "Ensemble model combining datasets.", - }, - model_ids: { - title: "Model IDs to ensemble.", - type: "array", - items: { - type: "string", - format: "uuid", - }, - }, - }, + $ref: "#/components/schemas/EnsembleRequest", }, }, }, required: true, }, responses: { - "202": { + 202: { description: "Ensemble predictor created.", content: { "application/json": { schema: { - title: "Predictor", - description: - "Predictor metadata, with calibration stats if available.", - oneOf: [ - { - title: "TrainPredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My GP Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "GP model trained on fitness", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: - "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: - "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: [ - "linear", - "rbf", - "matern21", - "matern32", - ], - example: "rbf", - }, - multitask: { - type: "boolean", - description: - "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: [ - "assay_id", - "properties", - "assay_id", - "properties", - ], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness", "fitness"], - }, - }, - title: "TrainingDataset", - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - }, - }, - { - title: "EnsemblePredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - "ensemble_model_ids", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My Ensemble Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "Ensemble model combining datasets.", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: - "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: - "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: [ - "linear", - "rbf", - "matern21", - "matern32", - ], - example: "rbf", - }, - multitask: { - type: "boolean", - description: - "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: ["assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness"], - }, - }, - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - ensemble_model_ids: { - title: "Ensemble Model IDs", - description: - "Model IDs that constitute the ensemble model.", - type: "array", - items: { - type: "string", - format: "uuid", - }, - }, - }, - }, - ], + $ref: "#/components/schemas/Predictor", }, }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Model or assay not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { "application/json": { schema: { - title: "ValidationError.yaml", - description: "An invalid object that could not be parsed.", - type: "object", - properties: { - detail: { - title: "ErrorDetailList", - type: "array", - items: { - title: "ErrorDetail", - required: ["loc", "msg", "type"], - type: "object", - properties: { - loc: { - title: "Location", - type: "array", - items: { - type: "integer", - }, - }, - msg: { - title: "Message", - type: "string", - }, - type: { - title: "Error Type", - type: "string", - }, - }, - }, - }, - }, + $ref: "#/components/schemas/ValidationError", }, }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -1016,7 +195,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "createEnsemble", }, }, "/api/v1/predictor": { @@ -1090,510 +268,26 @@ const predictorSpec = { }, ], responses: { - "200": { + 200: { description: "Available predictors.", content: { "application/json": { schema: { type: "array", items: { - title: "Predictor", - description: - "Predictor metadata, with calibration stats if available.", - oneOf: [ - { - title: "TrainPredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My GP Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "GP model trained on fitness", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: - "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: - "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: - "Type of kernel to use with GP.", - enum: [ - "linear", - "rbf", - "matern21", - "matern32", - ], - example: "rbf", - }, - multitask: { - type: "boolean", - description: - "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: [ - "assay_id", - "properties", - "assay_id", - "properties", - ], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness", "fitness"], - }, - }, - title: "TrainingDataset", - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - }, - }, - { - title: "EnsemblePredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - "ensemble_model_ids", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My Ensemble Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "Ensemble model combining datasets.", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: - "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: - "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: - "Type of kernel to use with GP.", - enum: [ - "linear", - "rbf", - "matern21", - "matern32", - ], - example: "rbf", - }, - multitask: { - type: "boolean", - description: - "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: ["assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness"], - }, - }, - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - ensemble_model_ids: { - title: "Ensemble Model IDs", - description: - "Model IDs that constitute the ensemble model.", - type: "array", - items: { - type: "string", - format: "uuid", - }, - }, - }, - }, - ], + $ref: "#/components/schemas/Predictor", }, }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -1604,7 +298,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "listPredictors", }, }, "/api/v1/predictor/{model_id}": { @@ -1669,538 +362,24 @@ const predictorSpec = { ], operationId: "getPredictor", responses: { - "200": { + 200: { description: "Predictor details including train graphs if available.", content: { "application/json": { schema: { - title: "TrainedPredictor", - oneOf: [ - { - title: "TrainPredictorWithTrainGraph", - description: - "Predictor with details of train graph if available.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My GP Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "GP model trained on fitness", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: - "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: - "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: [ - "linear", - "rbf", - "matern21", - "matern32", - ], - example: "rbf", - }, - multitask: { - type: "boolean", - description: - "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: [ - "assay_id", - "properties", - "assay_id", - "properties", - ], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness", "fitness"], - }, - }, - title: "TrainingDataset", - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - traingraphs: { - type: "array", - description: "Train graphs in the train job.", - items: { - title: "TrainGraph", - description: - "Train graph representing the loss curves for a train job.", - type: "object", - required: ["losses"], - properties: { - measurement_name: { - type: "string", - description: - "Measurement name that was trained for this curve. Empty or null if multitask.", - "x-order": 1, - }, - hyperparam_search_step: { - type: "integer", - description: - "Step count in the hyperparameter search grid.", - "x-order": 2, - }, - losses: { - type: "array", - description: - "Losses per step in the train graph.", - "x-order": 3, - items: { - type: "number", - }, - }, - }, - }, - }, - }, - }, - { - title: "EnsemblePredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - "ensemble_model_ids", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My Ensemble Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "Ensemble model combining datasets.", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: - "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: - "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: [ - "linear", - "rbf", - "matern21", - "matern32", - ], - example: "rbf", - }, - multitask: { - type: "boolean", - description: - "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: ["assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness"], - }, - }, - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - ensemble_model_ids: { - title: "Ensemble Model IDs", - description: - "Model IDs that constitute the ensemble model.", - type: "array", - items: { - type: "string", - format: "uuid", - }, - }, - }, - }, - ], + $ref: "#/components/schemas/TrainedPredictor", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -2211,7 +390,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "getPredictor", }, put: { tags: ["predictor"], @@ -2235,524 +413,30 @@ const predictorSpec = { content: { "application/json": { schema: { - title: "UpdatePredictorRequest", - description: "Request to update a predictor.", - type: "object", - properties: { - name: { - type: "string", - description: "Name of predictor to save.", - }, - description: { - type: "string", - description: "Description of predictor.", - }, - }, + $ref: "#/components/schemas/UpdatePredictorRequest", }, }, }, required: true, }, responses: { - "200": { + 200: { description: "Predictor details.", content: { "application/json": { schema: { - title: "Predictor", - description: - "Predictor metadata, with calibration stats if available.", - oneOf: [ - { - title: "TrainPredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My GP Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "GP model trained on fitness", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: - "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: - "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: [ - "linear", - "rbf", - "matern21", - "matern32", - ], - example: "rbf", - }, - multitask: { - type: "boolean", - description: - "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: [ - "assay_id", - "properties", - "assay_id", - "properties", - ], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness", "fitness"], - }, - }, - title: "TrainingDataset", - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - }, - }, - { - title: "EnsemblePredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - "ensemble_model_ids", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My Ensemble Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "Ensemble model combining datasets.", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: - "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: - "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: [ - "linear", - "rbf", - "matern21", - "matern32", - ], - example: "rbf", - }, - multitask: { - type: "boolean", - description: - "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: ["assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness"], - }, - }, - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - ensemble_model_ids: { - title: "Ensemble Model IDs", - description: - "Model IDs that constitute the ensemble model.", - type: "array", - items: { - type: "string", - format: "uuid", - }, - }, - }, - }, - ], + $ref: "#/components/schemas/Predictor", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -2763,7 +447,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "updatePredictor", }, delete: { tags: ["predictor"], @@ -2783,25 +466,16 @@ const predictorSpec = { ], operationId: "deletePredictor", responses: { - "204": { + 204: { description: "Predictor was deleted successfully.", }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -2812,7 +486,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "deletePredictor", }, }, "/api/v1/predictor/{model_id}/crossvalidate": { @@ -2845,246 +518,77 @@ const predictorSpec = { }, ], responses: { - "202": { + 202: { description: "Crossvalidation job created and pending.", content: { "application/json": { schema: { - title: "Job", - description: "Job represents a job for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "job_type", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - example: "/predictor/crossvalidate", - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, + allOf: [ + { + $ref: "#/components/schemas/Job", }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, + { + type: "object", + properties: { + job_type: { + type: "string", + example: "/predictor/crossvalidate", + }, + }, }, - }, + ], }, }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Model or assay not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { "application/json": { schema: { - title: "ValidationError.yaml", - description: "An invalid object that could not be parsed.", - type: "object", - properties: { - detail: { - title: "ErrorDetailList", - type: "array", - items: { - title: "ErrorDetail", - required: ["loc", "msg", "type"], - type: "object", - properties: { - loc: { - title: "Location", - type: "array", - items: { - type: "integer", - }, - }, - msg: { - title: "Message", - type: "string", - }, - type: { - title: "Error Type", - type: "string", - }, - }, - }, - }, - }, + $ref: "#/components/schemas/ValidationError", }, }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -3095,7 +599,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "crossValidate", }, }, "/api/v1/predictor/crossvalidate": { @@ -3117,162 +620,26 @@ const predictorSpec = { ], operationId: "listCrossValidate", responses: { - "200": { + 200: { description: "List of crossvalidations performed.", content: { "application/json": { schema: { type: "array", items: { - title: "CrossvalidateJob", - description: "Crossvalidate job.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "job_type", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - "job_type", - "model_id", - "n_splits", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - example: "/predictor/crossvalidate", - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, - }, - model_id: { - type: "string", - format: "uuid", - }, - n_splits: { - type: "integer", - example: 5, - }, - }, + $ref: "#/components/schemas/CrossvalidateJob", }, }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -3283,7 +650,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "listCrossValidate", }, }, "/api/v1/predictor/crossvalidate/{job_id}": { @@ -3305,7 +671,7 @@ const predictorSpec = { ], operationId: "getCrossValidate", responses: { - "200": { + 200: { description: "Crossvalidate results with evaluations encoded in csv format.", content: { @@ -3319,22 +685,13 @@ const predictorSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -3345,7 +702,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "getCrossValidate", }, }, "/api/v1/predictor/{model_id}/predict": { @@ -3372,269 +728,84 @@ const predictorSpec = { content: { "application/json": { schema: { - title: "PredictRequest", - description: - "Request to run predictions using a trained predictor.", - type: "object", - required: ["sequences"], - properties: { - sequences: { - title: "Sequences", - type: "array", - items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", - }, - }, - }, + $ref: "#/components/schemas/PredictRequest", }, }, }, required: true, }, responses: { - "202": { + 202: { description: "Predict job created and pending.", content: { "application/json": { schema: { - title: "Job", - description: "Job represents a job for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "job_type", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - example: "/predictor/predict", - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, + allOf: [ + { + $ref: "#/components/schemas/Job", }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, + { + type: "object", + properties: { + job_type: { + type: "string", + example: "/predictor/predict", + }, + }, }, - }, + ], }, }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Model or assay not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { "application/json": { schema: { - title: "ValidationError.yaml", - description: "An invalid object that could not be parsed.", - type: "object", - properties: { - detail: { - title: "ErrorDetailList", - type: "array", - items: { - title: "ErrorDetail", - required: ["loc", "msg", "type"], - type: "object", - properties: { - loc: { - title: "Location", - type: "array", - items: { - type: "integer", - }, - }, - msg: { - title: "Message", - type: "string", - }, - type: { - title: "Error Type", - type: "string", - }, - }, - }, - }, - }, + $ref: "#/components/schemas/ValidationError", }, }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -3645,7 +816,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "predict", }, }, "/api/v1/predictor/{model_id}/predict_single_site": { @@ -3672,265 +842,84 @@ const predictorSpec = { content: { "application/json": { schema: { - title: "PredictSingleSiteRequest", - description: - "Request to run single site predictions using a trained predictor.", - type: "object", - required: ["base_sequence"], - properties: { - base_sequence: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", - }, - }, + $ref: "#/components/schemas/PredictSingleSiteRequest", }, }, }, required: true, }, responses: { - "202": { + 202: { description: "Predict job created and pending.", content: { "application/json": { schema: { - title: "Job", - description: "Job represents a job for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "job_type", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - example: "/predictor/predict_single_site", - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, + allOf: [ + { + $ref: "#/components/schemas/Job", }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, + { + type: "object", + properties: { + job_type: { + type: "string", + example: "/predictor/predict_single_site", + }, + }, }, - }, + ], }, }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Model or assay not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { "application/json": { schema: { - title: "ValidationError.yaml", - description: "An invalid object that could not be parsed.", - type: "object", - properties: { - detail: { - title: "ErrorDetailList", - type: "array", - items: { - title: "ErrorDetail", - required: ["loc", "msg", "type"], - type: "object", - properties: { - loc: { - title: "Location", - type: "array", - items: { - type: "integer", - }, - }, - msg: { - title: "Message", - type: "string", - }, - type: { - title: "Error Type", - type: "string", - }, - }, - }, - }, - }, + $ref: "#/components/schemas/ValidationError", }, }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -3941,7 +930,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "predictSingleSite", }, }, "/api/v1/predictor/predict": { @@ -3956,276 +944,84 @@ const predictorSpec = { content: { "application/json": { schema: { - title: "PredictMultiRequest", - description: "Request to run multi-model predictions.", - type: "object", - required: ["model_ids", "sequences"], - properties: { - model_ids: { - title: "Model IDs", - type: "array", - items: { - type: "string", - format: "uuid", - }, - }, - sequences: { - title: "Sequences", - type: "array", - items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", - }, - }, - }, + $ref: "#/components/schemas/PredictMultiRequest", }, }, }, required: true, }, responses: { - "202": { + 202: { description: "Multi-model predict job created and pending.", content: { "application/json": { schema: { - title: "Job", - description: "Job represents a job for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "job_type", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - example: "/predictor/predict_multi", - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, + allOf: [ + { + $ref: "#/components/schemas/Job", }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, + { + type: "object", + properties: { + job_type: { + type: "string", + example: "/predictor/predict_multi", + }, + }, }, - }, + ], }, }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Model or assay not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { "application/json": { schema: { - title: "ValidationError.yaml", - description: "An invalid object that could not be parsed.", - type: "object", - properties: { - detail: { - title: "ErrorDetailList", - type: "array", - items: { - title: "ErrorDetail", - required: ["loc", "msg", "type"], - type: "object", - properties: { - loc: { - title: "Location", - type: "array", - items: { - type: "integer", - }, - }, - msg: { - title: "Message", - type: "string", - }, - type: { - title: "Error Type", - type: "string", - }, - }, - }, - }, - }, + $ref: "#/components/schemas/ValidationError", }, }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -4236,7 +1032,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "predictMulti", }, }, "/api/v1/predictor/predict_single_site": { @@ -4252,273 +1047,84 @@ const predictorSpec = { content: { "application/json": { schema: { - title: "PredictSingleSiteMultiRequest", - description: - "Request to run multi-model single-site predictions.", - type: "object", - required: ["model_ids", "base_sequence"], - properties: { - model_ids: { - title: "Model IDs", - type: "array", - items: { - type: "string", - format: "uuid", - }, - }, - base_sequence: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", - }, - }, + $ref: "#/components/schemas/PredictSingleSiteMultiRequest", }, }, }, required: true, }, responses: { - "202": { + 202: { description: "Multi-model predict job created and pending.", content: { "application/json": { schema: { - title: "Job", - description: "Job represents a job for our compute platform.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "job_type", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - example: "/predictor/predict_multi", - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, + allOf: [ + { + $ref: "#/components/schemas/Job", }, - progress_counter: { - title: "ProgressCounter", - description: - "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, + { + type: "object", + properties: { + job_type: { + type: "string", + example: "/predictor/predict_multi", + }, + }, }, - }, + ], }, }, }, }, - "400": { + 400: { description: "Validation errors in the submitted request.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Model or assay not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "422": { + 422: { description: "Unexpected request format. The submitted request body cannot be validated. Double check the schema.", content: { "application/json": { schema: { - title: "ValidationError.yaml", - description: "An invalid object that could not be parsed.", - type: "object", - properties: { - detail: { - title: "ErrorDetailList", - type: "array", - items: { - title: "ErrorDetail", - required: ["loc", "msg", "type"], - type: "object", - properties: { - loc: { - title: "Location", - type: "array", - items: { - type: "integer", - }, - }, - msg: { - title: "Message", - type: "string", - }, - type: { - title: "Error Type", - type: "string", - }, - }, - }, - }, - }, + $ref: "#/components/schemas/ValidationError", }, }, }, }, - "429": { + 429: { description: "Too many requests. Try again later.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -4529,7 +1135,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "predictSingleSiteMulti", }, }, "/api/v1/predictor/predict/{job_id}/{sequence}": { @@ -4561,7 +1166,7 @@ const predictorSpec = { ], operationId: "getPredictResult", responses: { - "200": { + 200: { description: "Prediction result in csv format. Format is `sequence,prop1_mu,prop1_var,prop2_mu,prop2_var,...`", content: { @@ -4574,61 +1179,34 @@ const predictorSpec = { }, }, }, - "400": { + 400: { description: "Prediction result retrieval error. Contact support for assistance if persistent.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Predict job not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -4639,7 +1217,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "getPredictResult", }, }, "/api/v1/predictor/predict/{job_id}/sequences": { @@ -4661,57 +1238,36 @@ const predictorSpec = { ], operationId: "getSequences", responses: { - "200": { + 200: { description: "Request sequences", content: { "application/json": { schema: { type: "array", items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", + $ref: "#/components/schemas/Sequence", }, }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Predict job not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -4722,7 +1278,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "getSequences", }, }, "/api/v1/predictor/predict/{job_id}": { @@ -4744,7 +1299,7 @@ const predictorSpec = { ], operationId: "getPredictResultBatch", responses: { - "200": { + 200: { description: "Prediction result in csv format. Format is `sequence,prop1_mu,prop1_var,prop2_mu,prop2_var,...`", content: { @@ -4757,61 +1312,34 @@ const predictorSpec = { }, }, }, - "400": { + 400: { description: "Prediction results retrieval error. Contact support for assistance if persistent.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, }, - "404": { + 404: { description: "Predict job not found.", content: { "application/json": { schema: { - title: "Error", - description: "A error object providing details of the error.", - required: ["detail"], - type: "object", - properties: { - detail: { - title: "Detail", - type: "string", - }, - }, + $ref: "#/components/schemas/Error", }, }, }, @@ -4822,7 +1350,6 @@ const predictorSpec = { oauth2: [], }, ], - p: "getPredictResultBatch", }, }, }, @@ -4832,7 +1359,7 @@ const predictorSpec = { type: "oauth2", flows: { password: { - tokenUrl: "/api/v1/login/access-token", + tokenUrl: "/api/v1/auth/login", scopes: {}, }, }, @@ -4851,10 +1378,7 @@ const predictorSpec = { required: ["assay_id", "properties"], properties: { assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", + $ref: "#/components/schemas/AssayID", }, properties: { type: "array", @@ -4877,10 +1401,7 @@ const predictorSpec = { type: "object", properties: { reduction: { - title: "Reduction", - description: "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], + $ref: "#/components/schemas/Reduction", }, prompt_id: { title: "PromptID", @@ -4891,36 +1412,33 @@ const predictorSpec = { }, }, TrainFeatures: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", + allOf: [ + { + type: "object", + required: ["type"], + properties: { + type: { + type: "string", + description: + "Type of featurization method. `SVD` refers to a fitted SVD.", + enum: ["1-HOT", "PLM", "SVD"], + example: "PLM", + }, + model_id: { + type: "string", + description: "Model ID to use if using `PLM`/`SVD` type.", + example: "prot-seq", + }, + }, }, - reduction: { - title: "Reduction", - description: "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], + { + $ref: "#/components/schemas/ModelArgs", }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", + { + title: "TrainFeatures", + description: "Feature properties for training the predictor.", }, - }, - title: "TrainFeatures", - description: "Feature properties for training the predictor.", + ], }, Kernel: { title: "Kernel", @@ -4958,77 +1476,13 @@ const predictorSpec = { description: "Description of predictor.", }, dataset: { - title: "TrainingDataset", - type: "object", - required: ["assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness"], - }, - }, + $ref: "#/components/schemas/TrainingDataset", }, features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: "Feature properties for training the predictor.", + $ref: "#/components/schemas/TrainFeatures", }, kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: ["linear", "rbf", "matern21", "matern32"], - example: "rbf", - }, - multitask: { - type: "boolean", - description: "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, + $ref: "#/components/schemas/Kernel", }, }, }, @@ -5039,47 +1493,9 @@ const predictorSpec = { format: "uuid", "x-order": 1, }, - JobType: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - }, - CreatedDate: { - title: "Created Date", - description: "Datetime of created object", + CreatedDate: { + title: "Created Date", + description: "Datetime of created object", type: "string", format: "date-time", example: "2024-01-01T12:34:56.789Z", @@ -5092,14 +1508,13 @@ const predictorSpec = { enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], "x-order": 7, }, - Job: { - title: "Job", - description: "Job represents a job for our compute platform.", + Request: { + title: "Request", + description: "Request for our compute platform.", type: "object", required: [ "job_id", "prerequisite_job_id", - "job_type", "created_date", "start_date", "end_date", @@ -5108,11 +1523,7 @@ const predictorSpec = { ], properties: { job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, + $ref: "#/components/schemas/JobID", }, prerequisite_job_id: { title: "PrerequisiteJobID", @@ -5124,51 +1535,8 @@ const predictorSpec = { example: null, "x-order": 2, }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - }, created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, + $ref: "#/components/schemas/CreatedDate", }, start_date: { title: "StartDate", @@ -5191,11 +1559,7 @@ const predictorSpec = { "x-order": 6, }, status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, + $ref: "#/components/schemas/JobStatus", }, progress_counter: { title: "ProgressCounter", @@ -5209,6 +1573,63 @@ const predictorSpec = { }, }, }, + JobType: { + title: "JobType", + description: "Type of job.", + type: "string", + enum: [ + "/workflow/preprocess", + "/workflow/train", + "/workflow/embed/umap", + "/workflow/predict", + "/workflow/predict/single_site", + "/workflow/crossvalidate", + "/workflow/evaluate", + "/workflow/design", + "/align/align", + "/align/prompt", + "/poet", + "/poet/single_site", + "/poet/generate", + "/poet/score", + "/poet/embed", + "/poet/logits", + "/embeddings/embed", + "/embeddings/embed_reduced", + "/embeddings/svd", + "/svd/fit", + "/svd/embed", + "/embeddings/attn", + "/embeddings/logits", + "/embeddings/fold", + "/predictor/train", + "/predictor/predict", + "/predictor/predict_single_site", + "/predictor/predict_multi", + "/predictor/crossvalidate", + "/clustering/hierarchical", + "/design", + ], + "x-order": 3, + }, + Job: { + title: "Job", + description: "Job represents a job for our compute platform.", + allOf: [ + { + $ref: "#/components/schemas/Request", + }, + { + type: "object", + required: ["job_type"], + properties: { + job_type: { + $ref: "#/components/schemas/JobType", + }, + }, + }, + ], + }, Error: { title: "Error", description: "A error object providing details of the error.", @@ -5222,7 +1643,7 @@ const predictorSpec = { }, }, ValidationError: { - title: "ValidationError.yaml", + title: "ValidationError", description: "An invalid object that could not be parsed.", type: "object", properties: { @@ -5306,76 +1727,16 @@ const predictorSpec = { required: ["type"], properties: { type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], + $ref: "#/components/schemas/PredictorType", }, constraints: { - title: "Constraints", - description: "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, + $ref: "#/components/schemas/Constraints", }, features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: "Feature properties for training the predictor.", + $ref: "#/components/schemas/TrainFeatures", }, kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: ["linear", "rbf", "matern21", "matern32"], - example: "rbf", - }, - multitask: { - type: "boolean", - description: "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, + $ref: "#/components/schemas/Kernel", }, }, }, @@ -5470,109 +1831,20 @@ const predictorSpec = { "x-order": 2, }, status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, + $ref: "#/components/schemas/JobStatus", }, created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, + $ref: "#/components/schemas/CreatedDate", }, model_spec: { - title: "ModelSpec", - description: "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: ["linear", "rbf", "matern21", "matern32"], - example: "rbf", - }, - multitask: { - type: "boolean", - description: "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, + $ref: "#/components/schemas/ModelSpec", }, training_dataset: { type: "object", required: ["assay_id", "properties"], properties: { assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", + $ref: "#/components/schemas/AssayID", }, properties: { type: "array", @@ -5588,960 +1860,79 @@ const predictorSpec = { example: "openprotein", }, stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, + $ref: "#/components/schemas/CalibrationStats", + example: null, }, calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], + $ref: "#/components/schemas/CalibrationCurve", + example: null, }, }, }, TrainPredictor: { title: "TrainPredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My GP Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "GP model trained on fitness", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, + allOf: [ + { + $ref: "#/components/schemas/BasePredictor", }, - model_spec: { - title: "ModelSpec", - description: "Specification of the predictor's model.", - type: "object", - required: ["type"], + { + title: "object", properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", + name: { type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, + example: "My GP Model", }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: "Feature properties for training the predictor.", + description: { + type: "string", + example: "GP model trained on fitness", }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: ["linear", "rbf", "matern21", "matern32"], - example: "rbf", - }, - multitask: { - type: "boolean", - description: "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, + training_dataset: { + $ref: "#/components/schemas/TrainingDataset", }, }, }, - training_dataset: { + ], + }, + EnsemblePredictor: { + title: "EnsemblePredictor", + allOf: [ + { + $ref: "#/components/schemas/BasePredictor", + }, + { type: "object", - required: ["assay_id", "properties", "assay_id", "properties"], + required: ["ensemble_model_ids"], properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", + name: { type: "string", - format: "uuid", + example: "My Ensemble Model", }, - properties: { + description: { + type: "string", + example: "Ensemble model combining datasets.", + }, + ensemble_model_ids: { + title: "Ensemble Model IDs", + description: "Model IDs that constitute the ensemble model.", type: "array", items: { type: "string", + format: "uuid", }, - example: ["fitness", "fitness"], }, }, - title: "TrainingDataset", - }, - owner: { - type: "string", - example: "openprotein", }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - }, - }, - EnsemblePredictor: { - title: "EnsemblePredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - "ensemble_model_ids", ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My Ensemble Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "Ensemble model combining datasets.", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: ["linear", "rbf", "matern21", "matern32"], - example: "rbf", - }, - multitask: { - type: "boolean", - description: "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: ["assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness"], - }, - }, - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - ensemble_model_ids: { - title: "Ensemble Model IDs", - description: "Model IDs that constitute the ensemble model.", - type: "array", - items: { - type: "string", - format: "uuid", - }, - }, - }, }, Predictor: { title: "Predictor", description: "Predictor metadata, with calibration stats if available.", oneOf: [ { - title: "TrainPredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My GP Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "GP model trained on fitness", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: ["linear", "rbf", "matern21", "matern32"], - example: "rbf", - }, - multitask: { - type: "boolean", - description: "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: ["assay_id", "properties", "assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness", "fitness"], - }, - }, - title: "TrainingDataset", - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - }, + $ref: "#/components/schemas/TrainPredictor", }, { - title: "EnsemblePredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - "ensemble_model_ids", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My Ensemble Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "Ensemble model combining datasets.", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: ["linear", "rbf", "matern21", "matern32"], - example: "rbf", - }, - multitask: { - type: "boolean", - description: "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: ["assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness"], - }, - }, - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - ensemble_model_ids: { - title: "Ensemble Model IDs", - description: "Model IDs that constitute the ensemble model.", - type: "array", - items: { - type: "string", - format: "uuid", - }, - }, - }, + $ref: "#/components/schemas/EnsemblePredictor", }, ], }, @@ -6550,757 +1941,58 @@ const predictorSpec = { description: "Train graph representing the loss curves for a train job.", type: "object", - required: ["losses"], - properties: { - measurement_name: { - type: "string", - description: - "Measurement name that was trained for this curve. Empty or null if multitask.", - "x-order": 1, - }, - hyperparam_search_step: { - type: "integer", - description: "Step count in the hyperparameter search grid.", - "x-order": 2, - }, - losses: { - type: "array", - description: "Losses per step in the train graph.", - "x-order": 3, - items: { - type: "number", - }, - }, - }, - }, - TrainPredictorWithTrainGraph: { - title: "TrainPredictorWithTrainGraph", - description: "Predictor with details of train graph if available.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My GP Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "GP model trained on fitness", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: ["linear", "rbf", "matern21", "matern32"], - example: "rbf", - }, - multitask: { - type: "boolean", - description: "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: ["assay_id", "properties", "assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness", "fitness"], - }, - }, - title: "TrainingDataset", - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], + required: ["losses"], + properties: { + measurement_name: { + type: "string", + description: + "Measurement name that was trained for this curve. Empty or null if multitask.", + "x-order": 1, + }, + hyperparam_search_step: { + type: "integer", + description: "Step count in the hyperparameter search grid.", + "x-order": 2, }, - traingraphs: { + losses: { type: "array", - description: "Train graphs in the train job.", + description: "Losses per step in the train graph.", + "x-order": 3, items: { - title: "TrainGraph", - description: - "Train graph representing the loss curves for a train job.", - type: "object", - required: ["losses"], - properties: { - measurement_name: { - type: "string", - description: - "Measurement name that was trained for this curve. Empty or null if multitask.", - "x-order": 1, - }, - hyperparam_search_step: { - type: "integer", - description: "Step count in the hyperparameter search grid.", - "x-order": 2, - }, - losses: { - type: "array", - description: "Losses per step in the train graph.", - "x-order": 3, - items: { - type: "number", - }, - }, - }, + type: "number", }, }, }, }, - TrainedPredictor: { - title: "TrainedPredictor", - oneOf: [ + TrainPredictorWithTrainGraph: { + title: "TrainPredictorWithTrainGraph", + description: "Predictor with details of train graph if available.", + allOf: [ + { + $ref: "#/components/schemas/TrainPredictor", + }, { - title: "TrainPredictorWithTrainGraph", - description: "Predictor with details of train graph if available.", type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - ], properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My GP Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "GP model trained on fitness", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: ["linear", "rbf", "matern21", "matern32"], - example: "rbf", - }, - multitask: { - type: "boolean", - description: "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: ["assay_id", "properties", "assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness", "fitness"], - }, - }, - title: "TrainingDataset", - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, traingraphs: { type: "array", description: "Train graphs in the train job.", items: { - title: "TrainGraph", - description: - "Train graph representing the loss curves for a train job.", - type: "object", - required: ["losses"], - properties: { - measurement_name: { - type: "string", - description: - "Measurement name that was trained for this curve. Empty or null if multitask.", - "x-order": 1, - }, - hyperparam_search_step: { - type: "integer", - description: - "Step count in the hyperparameter search grid.", - "x-order": 2, - }, - losses: { - type: "array", - description: "Losses per step in the train graph.", - "x-order": 3, - items: { - type: "number", - }, - }, - }, + $ref: "#/components/schemas/TrainGraph", }, }, }, }, + ], + }, + TrainedPredictor: { + title: "TrainedPredictor", + oneOf: [ { - title: "EnsemblePredictor", - description: - "Predictor used to run predictions of properties on sequences.", - type: "object", - required: [ - "id", - "name", - "status", - "created_date", - "owner", - "model_spec", - "training_dataset", - "ensemble_model_ids", - ], - properties: { - id: { - type: "string", - format: "uuid", - description: "ID of predictor.", - "x-order": 0, - }, - name: { - type: "string", - description: "Name of predictor.", - "x-order": 1, - example: "My Ensemble Model", - }, - description: { - type: "string", - description: "Description of predictor.", - "x-order": 2, - example: "Ensemble model combining datasets.", - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - model_spec: { - title: "ModelSpec", - description: "Specification of the predictor's model.", - type: "object", - required: ["type"], - properties: { - type: { - title: "PredictorType", - description: "Type of model of the predictor.", - type: "string", - enum: ["GP", "ENSEMBLE"], - }, - constraints: { - title: "Constraints", - description: "Constraints imposed on using the predictor.", - type: "object", - properties: { - sequence_length: { - description: - "Possible constraint on fixed length sequence if no reduction was used to train.", - type: "integer", - example: 1024, - }, - }, - }, - features: { - type: "object", - required: ["type"], - properties: { - type: { - type: "string", - description: - "Type of featurization method. `SVD` refers to a fitted SVD.", - enum: ["1-HOT", "PLM", "SVD"], - example: "PLM", - }, - model_id: { - type: "string", - description: - "Model ID to use if using `PLM`/`SVD` type.", - example: "prot-seq", - }, - reduction: { - title: "Reduction", - description: - "Type of reduction to use with embeddings.", - type: "string", - enum: ["MEAN", "SUM"], - }, - prompt_id: { - title: "PromptID", - description: "ID of created prompt", - type: "string", - format: "uuid", - }, - }, - title: "TrainFeatures", - description: - "Feature properties for training the predictor.", - }, - kernel: { - title: "Kernel", - description: - "Kernel used for training a kernel-based predictor, e.g. GP.", - type: "object", - required: ["type", "multitask"], - properties: { - type: { - type: "string", - description: "Type of kernel to use with GP.", - enum: ["linear", "rbf", "matern21", "matern32"], - example: "rbf", - }, - multitask: { - type: "boolean", - description: "Whether or not to train GP as multitask.", - example: true, - default: false, - }, - }, - }, - }, - }, - training_dataset: { - type: "object", - required: ["assay_id", "properties"], - properties: { - assay_id: { - title: "Assay ID", - description: "ID of assay", - type: "string", - format: "uuid", - }, - properties: { - type: "array", - items: { - type: "string", - }, - example: ["fitness"], - }, - }, - }, - owner: { - type: "string", - example: "openprotein", - }, - stats: { - title: "CalibrationStats", - description: - "Calibration stats of predictors from latest evaluation.", - type: "object", - properties: { - pearson: { - type: "number", - format: "float", - description: - "Pearson correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.123, - }, - spearman: { - type: "number", - format: "float", - description: - "Spearman correlation of the predictor's crossvalidation.", - nullable: true, - example: 0.248, - }, - ece: { - type: "number", - format: "float", - description: - "Calibration score of the predictor's crossvalidation.", - example: 0.456, - }, - }, - }, - calibration_curve: { - title: "CalibrationCurve", - description: - "Calibration curve of predictors from latest evaluation.", - type: "array", - items: { - type: "object", - required: ["x", "y"], - properties: { - x: { - type: "number", - format: "float", - description: - "Predicted quantile for predictor's crossvalidation.", - }, - y: { - type: "number", - format: "float", - description: - "Observed quantile for predictor's crossvalidation.", - }, - }, - }, - nullable: true, - example: [ - { - x: 0.5, - y: 0.52, - }, - ], - }, - ensemble_model_ids: { - title: "Ensemble Model IDs", - description: "Model IDs that constitute the ensemble model.", - type: "array", - items: { - type: "string", - format: "uuid", - }, - }, - }, + $ref: "#/components/schemas/TrainPredictorWithTrainGraph", + }, + { + $ref: "#/components/schemas/EnsemblePredictor", }, ], }, @@ -7322,131 +2014,29 @@ const predictorSpec = { CrossvalidateJob: { title: "CrossvalidateJob", description: "Crossvalidate job.", - type: "object", - required: [ - "job_id", - "prerequisite_job_id", - "job_type", - "created_date", - "start_date", - "end_date", - "status", - "progress_counter", - "job_type", - "model_id", - "n_splits", - ], - properties: { - job_id: { - title: "JobID", - description: "ID of job.", - type: "string", - format: "uuid", - "x-order": 1, - }, - prerequisite_job_id: { - title: "PrerequisiteJobID", - description: "Prerequisite job ID.", - type: "string", - format: "uuid", - nullable: true, - default: null, - example: null, - "x-order": 2, - }, - job_type: { - title: "JobType", - description: "Type of job.", - type: "string", - enum: [ - "/workflow/preprocess", - "/workflow/train", - "/workflow/embed/umap", - "/workflow/predict", - "/workflow/predict/single_site", - "/workflow/crossvalidate", - "/workflow/evaluate", - "/workflow/design", - "/align/align", - "/align/prompt", - "/poet", - "/poet/single_site", - "/poet/generate", - "/poet/score", - "/poet/embed", - "/poet/logits", - "/embeddings/embed", - "/embeddings/embed_reduced", - "/embeddings/svd", - "/svd/fit", - "/svd/embed", - "/embeddings/attn", - "/embeddings/logits", - "/embeddings/fold", - "/predictor/train", - "/predictor/predict", - "/predictor/predict_single_site", - "/predictor/predict_multi", - "/predictor/crossvalidate", - "/design", - ], - "x-order": 3, - example: "/predictor/crossvalidate", - }, - created_date: { - title: "Created Date", - description: "Datetime of created object", - type: "string", - format: "date-time", - example: "2024-01-01T12:34:56.789Z", - "x-order": 4, - }, - start_date: { - title: "StartDate", - description: "Start date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 5, - }, - end_date: { - title: "EndDate", - description: "End date of job.", - type: "string", - format: "date-time", - nullable: true, - example: null, - default: null, - "x-order": 6, - }, - status: { - title: "JobStatus", - description: "Status of job.", - type: "string", - enum: ["PENDING", "RUNNING", "SUCCESS", "FAILURE"], - "x-order": 7, - }, - progress_counter: { - title: "ProgressCounter", - description: "Counter of the progress of job from 0 to 100.", - type: "integer", - minimum: 0, - maximum: 100, - example: 0, - default: 0, - "x-order": 8, - }, - model_id: { - type: "string", - format: "uuid", + allOf: [ + { + $ref: "#/components/schemas/Job", }, - n_splits: { - type: "integer", - example: 5, + { + type: "object", + required: ["job_type", "model_id", "n_splits"], + properties: { + job_type: { + type: "string", + example: "/predictor/crossvalidate", + }, + model_id: { + type: "string", + format: "uuid", + }, + n_splits: { + type: "integer", + example: 5, + }, + }, }, - }, + ], }, Sequence: { title: "Sequence", @@ -7464,10 +2054,7 @@ const predictorSpec = { title: "Sequences", type: "array", items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", + $ref: "#/components/schemas/Sequence", }, }, }, @@ -7480,10 +2067,8 @@ const predictorSpec = { required: ["base_sequence"], properties: { base_sequence: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", + title: "Base Sequence", + $ref: "#/components/schemas/Sequence", }, }, }, @@ -7505,10 +2090,7 @@ const predictorSpec = { title: "Sequences", type: "array", items: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", + $ref: "#/components/schemas/Sequence", }, }, }, @@ -7528,10 +2110,8 @@ const predictorSpec = { }, }, base_sequence: { - title: "Sequence", - description: "Protein sequence", - type: "string", - example: "MSKGEELFTGV", + title: "Base Sequence", + $ref: "#/components/schemas/Sequence", }, }, }, @@ -7545,5 +2125,4 @@ const predictorSpec = { }, ], }; - export default predictorSpec; diff --git a/source/_static/js/promptSpec.js b/source/_static/js/promptSpec.js index 2f0ac30..7f02090 100644 --- a/source/_static/js/promptSpec.js +++ b/source/_static/js/promptSpec.js @@ -51,7 +51,7 @@ const promptSpec = { }, }, responses: { - "200": { + 200: { description: "Prompt created successfully.", content: { "application/json": { @@ -61,7 +61,7 @@ const promptSpec = { }, }, }, - "400": { + 400: { description: "Invalid input provided.", content: { "application/json": { @@ -71,7 +71,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -109,7 +109,7 @@ const promptSpec = { }, ], responses: { - "200": { + 200: { description: "List of prompts", content: { "application/json": { @@ -123,7 +123,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -161,7 +161,7 @@ const promptSpec = { }, ], responses: { - "200": { + 200: { description: "List of queries", content: { "application/json": { @@ -175,7 +175,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -225,7 +225,7 @@ const promptSpec = { }, }, responses: { - "200": { + 200: { description: "Query created successfully.", content: { "application/json": { @@ -235,7 +235,7 @@ const promptSpec = { }, }, }, - "400": { + 400: { description: "Invalid input provided.", content: { "application/json": { @@ -245,7 +245,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -283,7 +283,7 @@ const promptSpec = { ], operationId: "getQueryMetadata", responses: { - "200": { + 200: { description: "The metadata of the query.", content: { "application/json": { @@ -293,7 +293,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -304,7 +304,7 @@ const promptSpec = { }, }, }, - "404": { + 404: { description: "Query not found.", content: { "application/json": { @@ -351,7 +351,7 @@ const promptSpec = { }, }, responses: { - "200": { + 200: { description: "The updated query metadata.", content: { "application/json": { @@ -361,7 +361,7 @@ const promptSpec = { }, }, }, - "400": { + 400: { description: "Invalid input provided.", content: { "application/json": { @@ -371,7 +371,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -382,7 +382,7 @@ const promptSpec = { }, }, }, - "404": { + 404: { description: "Query not found.", content: { "application/json": { @@ -420,7 +420,7 @@ const promptSpec = { ], operationId: "getQuery", responses: { - "200": { + 200: { description: "The query file in either fasta or cif format depending on whether a sequence or structure was uploaded.", content: { @@ -440,7 +440,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -451,7 +451,7 @@ const promptSpec = { }, }, }, - "404": { + 404: { description: "Query not found.", content: { "application/json": { @@ -488,7 +488,7 @@ const promptSpec = { ], operationId: "getPromptMetadata", responses: { - "200": { + 200: { description: "The metadata of the prompt.", content: { "application/json": { @@ -498,7 +498,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -509,7 +509,7 @@ const promptSpec = { }, }, }, - "404": { + 404: { description: "Prompt not found.", content: { "application/json": { @@ -556,7 +556,7 @@ const promptSpec = { }, }, responses: { - "200": { + 200: { description: "The updated prompt metadata.", content: { "application/json": { @@ -566,7 +566,7 @@ const promptSpec = { }, }, }, - "400": { + 400: { description: "Invalid input provided.", content: { "application/json": { @@ -576,7 +576,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -587,7 +587,7 @@ const promptSpec = { }, }, }, - "404": { + 404: { description: "Prompt not found.", content: { "application/json": { @@ -625,7 +625,7 @@ const promptSpec = { ], operationId: "getPrompt", responses: { - "200": { + 200: { description: "The prompt containing the context files in a zip file.", content: { @@ -638,7 +638,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Bad or expired token. This can happen if the token is revoked or expired. User should re-authenticate with their credentials.", content: { @@ -649,7 +649,7 @@ const promptSpec = { }, }, }, - "404": { + 404: { description: "Prompt not found.", content: { "application/json": { @@ -721,7 +721,7 @@ const promptSpec = { }, }, responses: { - "200": { + 200: { description: "Edited protein CIF file", content: { "chemical/x-mmcif": { @@ -732,7 +732,7 @@ const promptSpec = { }, }, }, - "400": { + 400: { description: "Invalid input", content: { "application/json": { @@ -742,7 +742,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Unauthorized", content: { "application/json": { @@ -793,7 +793,7 @@ const promptSpec = { }, }, responses: { - "200": { + 200: { description: "Extracted protein as CIF file.", content: { "chemical/x-mmcif": { @@ -804,7 +804,7 @@ const promptSpec = { }, }, }, - "400": { + 400: { description: "Invalid input", content: { "application/json": { @@ -814,7 +814,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Unauthorized", content: { "application/json": { @@ -863,7 +863,7 @@ const promptSpec = { }, }, responses: { - "200": { + 200: { description: "Normalized protein CIF file.", content: { "chemical/x-mmcif": { @@ -874,7 +874,7 @@ const promptSpec = { }, }, }, - "400": { + 400: { description: "Invalid input", content: { "application/json": { @@ -884,7 +884,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Unauthorized", content: { "application/json": { @@ -921,14 +921,15 @@ const promptSpec = { query_sequence: { type: "string", description: - "Query protein sequence (single-letter amino acid codes).", + "Query protein sequence (single-letter amino acid codes).\nUse `:` to separate chains of a multichain query; target sequences\nmust then have the same number of chains, aligned chain-by-position.", }, target_sequences: { type: "array", items: { type: "string", }, - description: "List of target protein sequences.", + description: + "List of target protein sequences. Each entry may be multichain\nusing `:` separators; its chain count must match the query.", }, return_alignment: { type: "boolean", @@ -950,7 +951,7 @@ const promptSpec = { }, }, responses: { - "200": { + 200: { description: "Stream of sequence identities (and optionally alignments).\nEach line is a JSON object representing the result for a single target.", content: { @@ -970,7 +971,7 @@ const promptSpec = { type: "string", }, description: - "Tuple of (aligned_query_sequence, aligned_target_sequence).\nPresent if `return_alignment=true`.", + "Tuple of (aligned_query_sequence, aligned_target_sequence).\nFor multichain inputs, chains are joined with `:` within each\naligned string in the same order as the query chains.\nPresent if `return_alignment=true`.", }, }, example: { @@ -984,7 +985,7 @@ const promptSpec = { }, }, }, - "400": { + 400: { description: "Invalid input provided.", content: { "application/json": { @@ -994,7 +995,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Unauthorized.", content: { "application/json": { @@ -1017,7 +1018,7 @@ const promptSpec = { tags: ["prompt"], summary: "Batch structure alignment using specified method (Streaming)", description: - "Perform structure-based alignment between the uploaded query structure and targets.\n\n**Streaming Endpoint:** Returns a stream of JSON objects (NDJSON), where each line\ncorresponds to one target structure.", + "Perform structure-based alignment between query structures and targets.\n\nExactly one of `protein` or `design_id` must be provided as the query.\nWhen `design_id` is given, it references a fold job with N design\nstructures, and `targets_id` must contain a positive multiple of N\nstructures. Design `i` is aligned against `targets[i*k : (i+1)*k]`\nwhere `k = len(targets) / len(designs)`. Each result row carries a\n`design_index` (0-indexed) so callers can regroup the stream.\n\n**Streaming Endpoint:** Returns a stream of JSON objects (NDJSON), where each line\ncorresponds to one (query, target) pair.", operationId: "structureAlignBatchById", requestBody: { required: true, @@ -1026,8 +1027,6 @@ const promptSpec = { schema: { type: "object", required: [ - "protein", - "chain_id", "targets_id", "method", "return_transform", @@ -1039,11 +1038,14 @@ const promptSpec = { protein: { type: "string", format: "binary", - description: "CIF file containing the query structure.", + description: + "CIF or PDB file containing the query structure. All protein\nchains in the file are used; non-protein chains are filtered\nor rejected per the service's `REJECT_NON_PROTEIN_CHAINS`\nsetting. Targets must have matching chain ids.\nMutually exclusive with `design_id`; exactly one of the two\nmust be provided.", }, - chain_id: { + design_id: { type: "string", - description: "Chain ID for the query structure.", + format: "uuid", + description: + "Fold job ID referencing a **collection** of N query\nstructures (e.g. designs from RFdiffusion or BoltzGen).\nWhen provided, `targets_id` must contain N*k structures\nand design `i` is aligned against `targets[i*k:(i+1)*k]`.\nMutually exclusive with `protein`; exactly one of the two\nmust be provided.", }, targets_id: { type: "string", @@ -1084,7 +1086,6 @@ const promptSpec = { }, example: { protein: "", - chain_id: "A", targets_id: "1dfcb748-0f66-4cd0-9fbf-6c5b0da32512", method: "tmalign", return_transform: true, @@ -1096,7 +1097,7 @@ const promptSpec = { }, }, responses: { - "200": { + 200: { description: "Stream of structure alignment results.\nEach line is a JSON object representing the result for a single target.", content: { @@ -1147,13 +1148,18 @@ const promptSpec = { type: "string", }, description: - "Tuple of (aligned_query_sequence, aligned_target_sequence).\nPresent if `return_alignment=true`.", + "Tuple of (aligned_query_sequence, aligned_target_sequence).\nFor multichain inputs, chains are joined with `:` in the\norder of the query chain ids.\nPresent if `return_alignment=true`.", }, plddt: { type: "number", format: "float", description: - "Mean pLDDT for this target (present if `return_plddt=true`).", + "Mean pLDDT for this target, averaged across all chains\n(NaN residues excluded). Present if `return_plddt=true`.", + }, + design_index: { + type: "integer", + description: + "0-indexed position of the query design within `design_id`.\nPresent only when `design_id` was provided in the request;\nomitted when the request used an uploaded `protein`.", }, }, example: { @@ -1167,12 +1173,13 @@ const promptSpec = { ], t: [1.23, -0.45, 0.12], plddt: 87.3, + design_index: 0, }, }, }, }, }, - "400": { + 400: { description: "Invalid input provided.", content: { "application/json": { @@ -1182,7 +1189,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Unauthorized.", content: { "application/json": { @@ -1221,7 +1228,7 @@ const promptSpec = { }, ], responses: { - "200": { + 200: { description: "Stream of pLDDT scores.", content: { "application/x-ndjson": { @@ -1231,7 +1238,8 @@ const promptSpec = { plddt: { type: "number", format: "float", - description: "Mean pLDDT for a single target structure.", + description: + "Mean pLDDT for a single target structure, averaged across\nall chains (NaN residues excluded).", }, }, example: { @@ -1241,7 +1249,7 @@ const promptSpec = { }, }, }, - "400": { + 400: { description: "Invalid input provided.", content: { "application/json": { @@ -1251,7 +1259,7 @@ const promptSpec = { }, }, }, - "401": { + 401: { description: "Unauthorized.", content: { "application/json": { @@ -1261,7 +1269,7 @@ const promptSpec = { }, }, }, - "404": { + 404: { description: "Targets ID not found.", content: { "application/json": { @@ -1350,6 +1358,13 @@ const promptSpec = { description: "Project this prompt is attached to.", nullable: true, }, + sequence_length: { + title: "Sequence Length", + description: + "Length of the prompt's context chains. Set when every chain across\nevery Complex across every replicate has the same length; null when\nchain lengths vary or no context has been parsed yet.", + type: "integer", + nullable: true, + }, }, }, Error: { @@ -1369,13 +1384,19 @@ const promptSpec = { description: "The metadata of a query entity containing the sequence and/or structure used as a query to condition PoET2 models.", type: "object", - required: ["id", "created_date", "project_uuid"], + required: ["id", "name", "created_date", "project_uuid"], properties: { id: { type: "string", format: "uuid", description: "Query unique identifier.", }, + name: { + type: "string", + description: + "Display name of the query. Defaults to the query's UUID string when the\nuser has not set a name explicitly; clearing the name via PUT (passing\n`null` to `QueryUpdate.name`) resets it to this default.", + example: "My Awesome Query", + }, created_date: { type: "string", format: "date-time", @@ -1387,6 +1408,13 @@ const promptSpec = { description: "Project this query is attached to.", nullable: true, }, + sequence_length: { + title: "Sequence Length", + description: + "Length of the query's protein chain(s). Set when every chain in the\nquery has the same length; null when chains differ in length.", + type: "integer", + nullable: true, + }, }, }, QueryUpdate: { @@ -1395,6 +1423,12 @@ const promptSpec = { "Fields to update on a query. Omitted fields are left unchanged; fields\nprovided with an explicit null value (for nullable fields) are cleared.", type: "object", properties: { + name: { + type: "string", + description: "Name of the query.", + example: "My Awesome Query", + nullable: true, + }, project_uuid: { type: "string", format: "uuid",