openapi: 3.2.0 info: license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html title: Benchling Nucleotide Alignment API version: 2.0.0 description: 'Represents a multiple sequence alignment of nucleotide sequences (DNA or RNA). Nucleotide alignments are used to compare sequence reads against a reference template for verification (see AlignmentType TEMPLATE) or to align multiple sequences for consensus building (see AlignmentType CONSENSUS). Each alignment contains a referenceSequence (the template or consensus) and a collection of AlignedNucleotideSequence entries representing the individual sequences being compared. Alignments are commonly used in Sanger sequencing verification workflows to confirm that a cloned construct matches the expected design.' servers: - url: /api/v3 security: - oAuth: [] - basicApiKeyAuth: [] tags: - description: 'Represents a multiple sequence alignment of nucleotide sequences (DNA or RNA). Nucleotide alignments are used to compare sequence reads against a reference template for verification (see AlignmentType TEMPLATE) or to align multiple sequences for consensus building (see AlignmentType CONSENSUS). Each alignment contains a referenceSequence (the template or consensus) and a collection of AlignedNucleotideSequence entries representing the individual sequences being compared. Alignments are commonly used in Sanger sequencing verification workflows to confirm that a cloned construct matches the expected design.' name: NucleotideAlignment x-bnch-organization: Benchling paths: /nucleotide-alignment/items: get: description: List NucleotideAlignment items. operationId: NucleotideAlignment.List parameters: - $ref: '#/components/parameters/createdAt.gt' - $ref: '#/components/parameters/createdAt.gte' - $ref: '#/components/parameters/createdAt.lt' - $ref: '#/components/parameters/createdAt.lte' - $ref: '#/components/parameters/id.anyOf' - $ref: '#/components/parameters/modifiedAt.gt' - $ref: '#/components/parameters/modifiedAt.gte' - $ref: '#/components/parameters/modifiedAt.lt' - $ref: '#/components/parameters/modifiedAt.lte' - $ref: '#/components/parameters/name.anyOf' - $ref: '#/components/parameters/name.anyOf.caseSensitive' - $ref: '#/components/parameters/nextToken' - $ref: '#/components/parameters/omit' - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/returning' - $ref: '#/components/parameters/sequenceIds.anyOf' - description: 'Method by which to order results. Valid sorts are: createdAt (created time, oldest first) and modifiedAt (modified time, oldest first). Use :asc or :desc to specify ascending or descending order. Default is modifiedAt:desc.' in: query name: sort schema: default: modifiedAt:desc enum: - createdAt:asc - createdAt:desc - modifiedAt:asc - modifiedAt:desc type: string - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/NucleotideAlignmentPaginatedList' description: OK headers: {} '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: List NucleotideAlignment items tags: - NucleotideAlignment x-bnch-rate-limit-tier: 4 /nucleotide-alignment/{nucleotide_alignment_id}: delete: description: Delete NucleotideAlignment. operationId: NucleotideAlignment.Delete parameters: - description: ID of the NucleotideAlignment. in: path name: nucleotide_alignment_id required: true schema: type: string - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: Delete NucleotideAlignment tags: - NucleotideAlignment x-bnch-rate-limit-tier: 4 get: description: Get a single NucleotideAlignment by ID. operationId: NucleotideAlignment.Get parameters: - description: ID of the NucleotideAlignment. in: path name: nucleotide_alignment_id required: true schema: type: string - $ref: '#/components/parameters/returning' - $ref: '#/components/parameters/omit' - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/NucleotideAlignment' description: OK headers: {} '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: Get NucleotideAlignment by ID tags: - NucleotideAlignment x-bnch-rate-limit-tier: 5 /nucleotide-alignment/{nucleotide_alignment_id}/aligned-nucleotide-sequences/items: get: description: List AlignedNucleotideSequence items. operationId: NucleotideAlignment.alignedNucleotideSequences.List parameters: - $ref: '#/components/parameters/nextToken' - $ref: '#/components/parameters/pageSize' - description: ID of the NucleotideAlignment. in: path name: nucleotide_alignment_id required: true schema: type: string - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/AlignedNucleotideSequencePaginatedList' description: OK headers: {} '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: List AlignedNucleotideSequence items tags: - NucleotideAlignment x-bnch-rate-limit-tier: 4 /nucleotide-alignment:batch-delete: post: description: Batch delete NucleotideAlignment synchronously in one transaction. Maximum 25 items per request. operationId: NucleotideAlignment.BatchDelete parameters: - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string requestBody: content: application/json: schema: additionalProperties: false properties: items: items: $ref: '#/components/schemas/DeleteNucleotideAlignmentInputWithPathParams' maxItems: 25 minItems: 1 type: array required: - items type: object responses: '200': content: application/json: schema: additionalProperties: false properties: items: items: additionalProperties: false properties: id: type: string required: - id type: object type: array required: - items type: object description: OK '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: Batch delete NucleotideAlignment tags: - NucleotideAlignment x-bnch-rate-limit-tier: 3 /nucleotide-alignment:create-consensus-alignment: post: description: Create a consensus nucleotide alignment operationId: NucleotideAlignment.CreateConsensusAlignment parameters: - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateConsensusAlignmentInput' responses: '202': content: application/json: schema: $ref: '#/components/schemas/AsyncTaskLink' description: Task started '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: Create a consensus nucleotide alignment tags: - NucleotideAlignment x-bnch-rate-limit-tier: 4 /nucleotide-alignment:create-template-alignment: post: description: Create a template nucleotide alignment operationId: NucleotideAlignment.CreateTemplateAlignment parameters: - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateTemplateAlignmentInput' responses: '202': content: application/json: schema: $ref: '#/components/schemas/AsyncTaskLink' description: Task started '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: Create a template nucleotide alignment tags: - NucleotideAlignment x-bnch-rate-limit-tier: 4 /tasks/nucleotide-alignment/create-consensus-alignment/{task_id}: get: description: Poll status for Create a consensus nucleotide alignment. operationId: NucleotideAlignment.CreateConsensusAlignment.Get parameters: - description: ID of the asynchronous task to poll. in: path name: task_id required: true schema: type: string - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '200': content: application/json: schema: properties: message: type: string result: oneOf: - $ref: '#/components/schemas/NucleotideAlignment' - type: 'null' status: enum: - NOT_STARTED - IN_PROGRESS - COMPLETED - FAILED type: string type: object description: OK '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: Poll async task status tags: - NucleotideAlignment x-bnch-rate-limit-tier: 5 /tasks/nucleotide-alignment/create-template-alignment/{task_id}: get: description: Poll status for Create a template nucleotide alignment. operationId: NucleotideAlignment.CreateTemplateAlignment.Get parameters: - description: ID of the asynchronous task to poll. in: path name: task_id required: true schema: type: string - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string responses: '200': content: application/json: schema: properties: message: type: string result: oneOf: - $ref: '#/components/schemas/NucleotideAlignment' - type: 'null' status: enum: - NOT_STARTED - IN_PROGRESS - COMPLETED - FAILED type: string type: object description: OK '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' summary: Poll async task status tags: - NucleotideAlignment x-bnch-rate-limit-tier: 5 components: schemas: NucleotideSequenceRef: properties: __typename: type: string id: format: api_id type: string type: object CreateTemplateAlignmentInput: additionalProperties: false properties: algorithm: enum: - MAFFT - CLUSTALO type: string clustaloOptions: $ref: '#/components/schemas/ClustalOOptionsInput' description: Options to pass to the ClustalO algorithm, only applicable for ClustalO. disableCircularSequenceRotation: description: When true, disables circular sequence rotation during template alignment. type: boolean files: description: Sequence files to align against the template. Minimum 1. items: $ref: '#/components/schemas/AlignmentFileInput' type: array mafftOptions: $ref: '#/components/schemas/MafftOptionsInput' description: Options to pass to the MAFFT algorithm, only applicable for MAFFT. name: description: The name of the alignment. When omitted, a name is automatically generated. If specified, it must contain at least one non-whitespace character. Up to 255 characters. type: string templateSequenceId: description: The API ID of the template (reference) sequence to align against. type: string required: - templateSequenceId - files - algorithm type: object NucleotideAlignmentRef: properties: __typename: type: string id: format: api_id type: string type: object ClustalOOptionsInput: additionalProperties: false properties: maxGuidetreeIterations: description: Max guide tree iterations within combined iterations. Can be in the range -1 to 5 (-1 = no max). type: integer maxHmmIterations: description: Max HMM iterations within combined iterations. Can be in the range -1 to 5 (-1 = no max). type: integer mbedGuideTree: description: Whether mBed-like clustering guide tree should be used (faster to use it). type: boolean mbedIteration: description: Whether mBed-like clustering iteration should be used (faster to use it). type: boolean numCombinedIterations: description: Number of (combined guide-tree/HMM) iterations. Can be in the range 0 to 5. type: integer type: object NucleotideAlignment: description: 'Represents a multiple sequence alignment of nucleotide sequences (DNA or RNA). Nucleotide alignments are used to compare sequence reads against a reference template for verification (see AlignmentType TEMPLATE) or to align multiple sequences for consensus building (see AlignmentType CONSENSUS). Each alignment contains a referenceSequence (the template or consensus) and a collection of AlignedNucleotideSequence entries representing the individual sequences being compared. Alignments are commonly used in Sanger sequencing verification workflows to confirm that a cloned construct matches the expected design.' properties: __typename: type: string alignedNucleotideSequences: description: The Aligned Nucleotide Sequences of the Alignment. format: uri type: string alignmentType: description: The type of the Alignment, whether it is a consensus or template alignment. enum: - TEMPLATE - CONSENSUS type: string createdAt: description: DateTime the Alignment was created. format: datetime type: string id: description: The ID of the Alignment. type: string modifiedAt: description: DateTime the Alignment was last modified. format: datetime type: string name: description: The name of the Alignment. type: string referenceSequence: $ref: '#/components/schemas/NucleotideSequenceRef' description: The template or consensus Nucleotide Sequence associated with the Alignment. type: object InternalServerError: properties: detail: type: - 'null' - string - object errorId: type: string instance: type: string status: type: integer title: type: - 'null' - string type: type: string required: - type - title - detail - status - instance type: object AsyncTaskLink: properties: pollingUri: format: uri type: string taskId: type: string type: object AlignmentFileInput: additionalProperties: false properties: data: type: string name: type: string sequenceId: type: string type: object CreateConsensusAlignmentInput: additionalProperties: false properties: algorithm: enum: - MAFFT - CLUSTALO type: string clustaloOptions: $ref: '#/components/schemas/ClustalOOptionsInput' description: Options to pass to the ClustalO algorithm, only applicable for ClustalO. files: description: Sequence files to align. Minimum 2. items: $ref: '#/components/schemas/AlignmentFileInput' type: array mafftOptions: $ref: '#/components/schemas/MafftOptionsInput' description: Options to pass to the MAFFT algorithm, only applicable for MAFFT. name: description: The name of the alignment. When omitted, a name is automatically generated. If specified, it must contain at least one non-whitespace character. Up to 255 characters. type: string newSequence: $ref: '#/components/schemas/NewSequenceInput' sequenceId: type: string required: - files - algorithm type: object NucleotideAlignmentPaginatedList: additionalProperties: false properties: items: items: $ref: '#/components/schemas/NucleotideAlignment' type: array nextToken: type: string type: object DeleteNucleotideAlignmentInputWithPathParams: additionalProperties: false properties: id: type: string required: - id type: object AlignedNucleotideSequence: description: 'Represents a single sequence row within a NucleotideAlignment. Each AlignedNucleotideSequence contains the aligned bases (including gap characters for insertions/deletions), the original NucleotideSequence if it exists in the registry, and quality trim boundaries. The trimStart and trimEnd fields define the high-quality region of the sequence used for alignment and pairwise identity calculations—bases outside this region are typically low-quality ends from Sanger sequencing reads. For template alignments, pairwiseIdentity indicates the fraction of matching bases within the trimmed region compared to the reference.' properties: __typename: type: string bases: description: The bases of the Aligned Nucleotide Sequence, including gaps. type: string createdAt: description: DateTime the parent Alignment was created. format: datetime type: string id: description: The ID of the Aligned Nucleotide Sequence. type: string name: description: The name of the Aligned Nucleotide Sequence. type: string nucleotideAlignment: $ref: '#/components/schemas/NucleotideAlignmentRef' description: The Nucleotide Alignment the Aligned Nucleotide Sequence belongs to. sequence: description: The Nucleotide Sequence the Aligned Nucleotide Sequence is associated with. oneOf: - $ref: '#/components/schemas/NucleotideSequenceRef' - type: 'null' trimEnd: description: 'End index of the region of bases included in the alignment. Bases outside the trimmed region are excluded from the alignment and from the pairwise identity calculation. The trim region is determined by trace data, but can also be edited manually.' type: integer trimStart: description: 'Start index of the region of bases included in the alignment. Bases outside the trimmed region are excluded from the alignment and from the pairwise identity calculation. The trim region is determined by trace data, but can also be edited manually.' type: integer type: object NewSequenceInput: additionalProperties: false properties: folderId: type: string required: - folderId type: object GeneralError: properties: detail: type: - 'null' - string - object instance: type: string status: type: integer title: type: - 'null' - string type: type: string required: - type - title - detail - status - instance type: object MafftOptionsInput: additionalProperties: false properties: adjustDirection: description: Adjust direction. enum: - FAST - ACCURATE - DISABLED type: string gapExtensionPenalty: description: Gap extension penalty. type: number gapOpenPenalty: description: Gap open penalty. type: number maxIterations: description: Max refinement iterations. Can be in the range 0 to 100. Not applicable for auto strategy, as it will be selected automatically. type: integer retree: description: Tree rebuilding. Only used for 6-mer strategy. type: integer strategy: description: MAFFT strategy preset. enum: - AUTO - SIXMER - LOCALPAIR - GLOBALPAIR type: string type: object AlignedNucleotideSequencePaginatedList: additionalProperties: false properties: items: items: $ref: '#/components/schemas/AlignedNucleotideSequence' type: array nextToken: type: string type: object parameters: sequenceIds.anyOf: description: Restricts results to Nucleotide Alignments owned by any of the specified sequence IDs (i.e. sequences used as the template in a Template Alignment or created as the consensus sequence from a Consensus Alignment). Fails and reports any invalid IDs. Comma-separated list. explode: false in: query name: sequenceIds.anyOf schema: items: type: string maxItems: 100 type: array pageSize: description: Number of results to return. Defaults to 50, maximum of 100. in: query name: pageSize schema: type: integer createdAt.gte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or after the specified time. e.g. >= 2017-04-30. in: query name: createdAt.gte schema: format: datetime type: string modifiedAt.gt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified after the specified time. e.g. > 2017-04-30. in: query name: modifiedAt.gt schema: format: datetime type: string modifiedAt.lte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or before the specified time. e.g. <= 2017-04-30. in: query name: modifiedAt.lte schema: format: datetime type: string id.anyOf: description: Restricts results to those matching any of the specified IDs. Comma-separated list. explode: false in: query name: id.anyOf schema: items: type: string maxItems: 100 type: array omit: description: Comma-separated list of top-level fields to omit from each returned item. Cannot overlap with returning. explode: false in: query name: omit schema: items: type: string type: array modifiedAt.lt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified before the specified time. e.g. < 2017-04-30. in: query name: modifiedAt.lt schema: format: datetime type: string createdAt.gt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created after the specified time. e.g. > 2017-04-30. in: query name: createdAt.gt schema: format: datetime type: string createdAt.lt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created before the specified time. e.g. < 2017-04-30. in: query name: createdAt.lt schema: format: datetime type: string returning: description: Comma-separated list of top-level fields to include in each returned item. Cannot overlap with omit. explode: false in: query name: returning schema: items: type: string type: array nextToken: description: Token for pagination in: query name: nextToken schema: type: string name.anyOf: description: Restricts results to those that match any of the specified names. Case insensitive. Warning - this filter can be non-performant due to case insensitivity. Ensure only one name filter is used at a time. Comma-separated list. explode: false in: query name: name.anyOf schema: items: type: string maxItems: 100 type: array name.anyOf.caseSensitive: description: Restricts results to those that match any of the specified names. Case sensitive. Ensure only one name filter is used at a time. Comma-separated list. explode: false in: query name: name.anyOf.caseSensitive schema: items: type: string maxItems: 100 type: array modifiedAt.gte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or after the specified time. e.g. >= 2017-04-30. in: query name: modifiedAt.gte schema: format: datetime type: string createdAt.lte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or before the specified time. e.g. <= 2017-04-30. in: query name: createdAt.lte schema: format: datetime type: string responses: TooManyRequests: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Too Many Requests NotFound: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Not Found BadRequest: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Bad Request Forbidden: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Forbidden InternalServerError: content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerError' description: Internal Server Error securitySchemes: basicApiKeyAuth: description: Use issued API key for standard access to the API scheme: basic type: http basicClientIdSecretAuth: description: Auth used as part of client credentials OAuth flow prior to receiving a bearer token. scheme: basic type: http oAuth: description: OAuth2 Client Credentials flow intended for service access flows: clientCredentials: scopes: {} tokenUrl: /oauth/token type: oauth2