Amazon HealthOmics · Arazzo Workflow

Amazon HealthOmics Import Variants

Version 1.0.0

Create a variant store, start a variant import job, and poll it to completion.

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

Provider

amazon-healthomics

Workflows

import-variants
Create a variant store then import variants and wait for completion.
Creates a variant store referencing a genome, starts a variant import job against it by destination store name, and polls GetVariantImportJob until the job is COMPLETED, COMPLETED_WITH_FAILURES, CANCELLED, or FAILED.
3 steps inputs: items, referenceArn, roleArn, storeName outputs: finalStatus, importJobId, variantStoreId
1
createVariantStore
CreateVariantStore
Create a variant store bound to the supplied genome reference.
2
startImportJob
StartVariantImportJob
Start a variant import job that loads the VCF items into the new store.
3
pollImportJob
GetVariantImportJob
Poll the variant import job until it reaches a terminal status. The status enum is SUBMITTED, IN_PROGRESS, CANCELLED, COMPLETED, FAILED, or COMPLETED_WITH_FAILURES.

Source API Descriptions

Arazzo Workflow Specification

amazon-healthomics-import-variants-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon HealthOmics Import Variants
  summary: Create a variant store, start a variant import job, and poll it to completion.
  description: >-
    Variant stores hold the called variants from genomic analysis in a queryable
    form. This workflow creates a variant store bound to a genome reference,
    starts a variant import job that loads VCF source items from Amazon S3 into
    the store, and polls GetVariantImportJob until the job reaches a terminal
    state. 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: import-variants
  summary: Create a variant store then import variants and wait for completion.
  description: >-
    Creates a variant store referencing a genome, starts a variant import job
    against it by destination store name, and polls GetVariantImportJob until
    the job is COMPLETED, COMPLETED_WITH_FAILURES, CANCELLED, or FAILED.
  inputs:
    type: object
    required:
    - storeName
    - referenceArn
    - roleArn
    - items
    properties:
      storeName:
        type: string
        description: A name for the new variant store (lowercase, starts with a letter).
      referenceArn:
        type: string
        description: The genome reference ARN the store is bound to.
      roleArn:
        type: string
        description: The service role ARN that HealthOmics assumes to read source files.
      items:
        type: array
        description: The variant import items, each with an S3 source URI.
        items:
          type: object
  steps:
  - stepId: createVariantStore
    description: Create a variant store bound to the supplied genome reference.
    operationId: CreateVariantStore
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.storeName
        reference:
          referenceArn: $inputs.referenceArn
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      variantStoreId: $response.body#/id
      variantStoreName: $response.body#/name
      storeStatus: $response.body#/status
  - stepId: startImportJob
    description: Start a variant import job that loads the VCF items into the new store.
    operationId: StartVariantImportJob
    requestBody:
      contentType: application/json
      payload:
        destinationName: $steps.createVariantStore.outputs.variantStoreName
        roleArn: $inputs.roleArn
        items: $inputs.items
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      importJobId: $response.body#/jobId
  - stepId: pollImportJob
    description: >-
      Poll the variant import job until it reaches a terminal status. The status
      enum is SUBMITTED, IN_PROGRESS, CANCELLED, COMPLETED, FAILED, or
      COMPLETED_WITH_FAILURES.
    operationId: GetVariantImportJob
    parameters:
    - name: jobId
      in: path
      value: $steps.startImportJob.outputs.importJobId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      jobStatus: $response.body#/status
      statusMessage: $response.body#/statusMessage
    onSuccess:
    - name: importComplete
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "COMPLETED"
        type: jsonpath
    - name: importFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "FAILED" || $.status == "CANCELLED"
        type: jsonpath
    - name: importStillRunning
      type: goto
      stepId: pollImportJob
      criteria:
      - context: $response.body
        condition: $.status == "IN_PROGRESS" || $.status == "SUBMITTED"
        type: jsonpath
  outputs:
    variantStoreId: $steps.createVariantStore.outputs.variantStoreId
    importJobId: $steps.startImportJob.outputs.importJobId
    finalStatus: $steps.pollImportJob.outputs.jobStatus