Amazon HealthOmics · Arazzo Workflow

Amazon HealthOmics Provision Genomics Stores

Version 1.0.0

Stand up a reference store with an imported reference, then a sequence store ready for read sets.

1 workflow 1 source API 1 provider
View Spec View on GitHub BioinformaticsGenomicsHealthcareLife SciencesCloud ComputingArazzoWorkflows

Provider

amazon-healthomics

Workflows

provision-genomics-stores
Create a reference store, import a reference, then create a sequence store.
Creates a reference store, starts and polls a reference import job until it is COMPLETED or FAILED, and on success creates a sequence store keyed to the same project naming. The reference import poll branches on the ReferenceImportJobStatus enum.
4 steps inputs: referenceSources, referenceStoreName, roleArn, sequenceStoreName outputs: referenceImportJobId, referenceStoreId, sequenceStoreId
1
createReferenceStore
CreateReferenceStore
Create a reference store to hold the project's reference genome.
2
startReferenceImport
StartReferenceImportJob
Start a reference import job that loads the reference genome into the store.
3
pollReferenceImport
GetReferenceImportJob
Poll the reference import job until it reaches a terminal status. The status enum is SUBMITTED, IN_PROGRESS, CANCELLING, CANCELLED, FAILED, COMPLETED, or COMPLETED_WITH_FAILURES.
4
createSequenceStore
CreateSequenceStore
Create a sequence store that will hold read sets aligned to the imported reference.

Source API Descriptions

Arazzo Workflow Specification

amazon-healthomics-provision-genomics-stores-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon HealthOmics Provision Genomics Stores
  summary: Stand up a reference store with an imported reference, then a sequence store ready for read sets.
  description: >-
    A bootstrap flow that prepares the storage foundation for a HealthOmics
    genomics project. The workflow creates a reference store, imports a reference
    genome and polls the import to completion, then creates a sequence store that
    will hold read sets aligned against that reference. Each step spells out its
    AWS REST-JSON request inline so the flow can be read and executed without
    opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: healthOmicsApi
  url: ../openapi/amazon-healthomics-openapi.yaml
  type: openapi
workflows:
- workflowId: provision-genomics-stores
  summary: Create a reference store, import a reference, then create a sequence store.
  description: >-
    Creates a reference store, starts and polls a reference import job until it
    is COMPLETED or FAILED, and on success creates a sequence store keyed to the
    same project naming. The reference import poll branches on the
    ReferenceImportJobStatus enum.
  inputs:
    type: object
    required:
    - referenceStoreName
    - sequenceStoreName
    - roleArn
    - referenceSources
    properties:
      referenceStoreName:
        type: string
        description: A name for the reference store.
      sequenceStoreName:
        type: string
        description: A name for the sequence store.
      roleArn:
        type: string
        description: The service role ARN used to import the reference.
      referenceSources:
        type: array
        description: The reference import sources (each with sourceFile S3 URI and name).
        items:
          type: object
  steps:
  - stepId: createReferenceStore
    description: Create a reference store to hold the project's reference genome.
    operationId: CreateReferenceStore
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.referenceStoreName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      referenceStoreId: $response.body#/id
  - stepId: startReferenceImport
    description: Start a reference import job that loads the reference genome into the store.
    operationId: StartReferenceImportJob
    parameters:
    - name: referenceStoreId
      in: path
      value: $steps.createReferenceStore.outputs.referenceStoreId
    requestBody:
      contentType: application/json
      payload:
        roleArn: $inputs.roleArn
        sources: $inputs.referenceSources
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      referenceImportJobId: $response.body#/id
  - stepId: pollReferenceImport
    description: >-
      Poll the reference import job until it reaches a terminal status. The
      status enum is SUBMITTED, IN_PROGRESS, CANCELLING, CANCELLED, FAILED,
      COMPLETED, or COMPLETED_WITH_FAILURES.
    operationId: GetReferenceImportJob
    parameters:
    - name: referenceStoreId
      in: path
      value: $steps.createReferenceStore.outputs.referenceStoreId
    - name: id
      in: path
      value: $steps.startReferenceImport.outputs.referenceImportJobId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      jobStatus: $response.body#/status
    onSuccess:
    - name: referenceReady
      type: goto
      stepId: createSequenceStore
      criteria:
      - context: $response.body
        condition: $.status == "COMPLETED"
        type: jsonpath
    - name: referenceFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "FAILED" || $.status == "CANCELLED"
        type: jsonpath
    - name: referenceStillImporting
      type: goto
      stepId: pollReferenceImport
      criteria:
      - context: $response.body
        condition: $.status == "IN_PROGRESS" || $.status == "SUBMITTED"
        type: jsonpath
  - stepId: createSequenceStore
    description: Create a sequence store that will hold read sets aligned to the imported reference.
    operationId: CreateSequenceStore
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.sequenceStoreName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      sequenceStoreId: $response.body#/id
      sequenceStoreArn: $response.body#/arn
  outputs:
    referenceStoreId: $steps.createReferenceStore.outputs.referenceStoreId
    referenceImportJobId: $steps.startReferenceImport.outputs.referenceImportJobId
    sequenceStoreId: $steps.createSequenceStore.outputs.sequenceStoreId