GithubHelp home page GithubHelp logo

markjschreiber / amazon-omics-webapp-integrations Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aws-samples/amazon-omics-webapp-integrations

0.0 0.0 0.0 2.76 MB

This project contains the webapp sample integrated with Amazon Omics, which allows users such as admin and bioinformaticians to operate Amazon Omics workflow easily and check the run command status with charts and tables.

License: MIT No Attribution

JavaScript 10.39% TypeScript 40.82% HTML 0.79% Vue 46.56% SCSS 0.43% Velocity Template Language 1.01%

amazon-omics-webapp-integrations's Introduction

AWS HealthOmics Webapp

This webapp allows users such as admin and bioinformaticians to operate AWS HealthOmics workflow easily. Admin can create new users and add them a group to access this webapp. Users like bioinformaticians can create new repository in Amazon ECR, create new workflow and run the workflow in AWS HealthOmics. This webapp visualizes the run command status with the chart and tables.

Architecture overview

Architecture overview You can create new workflow, execute a run command and visualize the job status related to AWS HealthOmics in the webapp. The webapp contains the features in the following pages. As default, the admin and bioinformatician groups are created by this app.

Dashboard

Dashboard

You can see the run command status, run command details and run tasks timeline.

Repository

Repository You can create new repository in Amazon ECR.

Workflow

Private workflow

Workflow You can create new private workflow in AWS HealthOmics

Ready2Run workflow

Ready2Run You can see the list of Ready2Run workflows, and run the selected workflow.

Job

Job You can exectue new run command in AWS HealthOmics. In addition, you can see the AWS HealthOmics workflow list and run command list in this page.

Users (Only Admin)

Users

Only admin can access to this page and add new user or add a user to a group in Amazon Cognito. Also, admin can delete a user if needed in this page.

Prerequisites

  • An AWS accoount
  • Create the buckets for Omics
    • Need to create the input and output bucket for AWS HealthOmics before deploying the webapp. Put the workflow definition file and datasets for running workflow in the input bucket. The output files from your run command are stored in the output bucket.
  • Create reference and sequence stores in AWS HealthOmics depending on your workflow and definition
  • Deploy Region
    • The frontend stack like AWS WAF, Amazon CloudFront and S3 is deployed on us-east-1 and other services are deployed in your selected region. However, be careful of the supported region in AWS HealthOmics. See this document if you get more information.

Note

Cross region imports are not supported in AWS HealthOmics at this moment. If you want to use the sample data in the AWS HealthOmics - End to End environment for the webapp and deploy the webapp in another supported region outside of us-east-1, copy the example data to your input bucket in that region.

Configuration for the webapp

Add your context parameters to cdk.json as follows, then run npm run <cmd>.

"profile": "<Your AWS profile>"  // Utilize the profile to deploy the stack by CDK
"context": {
    "base": {
      "deployAwsEnv": {},
      "awsProfile": "<Your AWS profile>" // Utilize the profile to get and put some parameters for SSM Parametor Store
    },
    "stage": "dev",
    "dev": {
      "appName": "omics-app-dev", // Application name
      "alias": "japan-hcls", // Your alias
      "appAdminEmail": "<Your admin email address>", // Admin email address for Cognito
      "allowedIps": ["<Allowed CIDR>"], // Allowed CIDR list to access CloudFront with WAF
      "omicsBuckets": {
        "input": "<Your input bucket name>",  // Your input bucket for Omics
        "output": "<Your output bucket name>" // Your output bucket for Omics
      }
    },
    "prod": {
      "appName": "omics-app-prod",
      "alias": "admin",
      "appAdminEmail": "<Your admin email address>",
      "allowedIps": ["<Allowed CIDR>"],
      "omicsBuckets": {
        "input": "<Your input bucket name>",
        "output": "<Your output bucket name>"
      }
    }
  }

Deployment

  1. Install the dependencies
npm ci
  1. Deploy AWS resources
# Deploy the infrastructure and frontend stacks with AWS CDK
npm run deployAll

Notice

Execute the bootstarp command as follows if you have never executed bootstrap command with CDK in your region.

npm run cdk bootstrap

Cleanup

# Destroy all stacks(the infrastructure and frontend stack) with AWS CDK
npm run destroyAll

Notice

The following destroy failures may occur because the files in your bucket cannot be emptied. If it occurred, please empty them from AWS Management Console and rerun the command

XXX was not successfully deleted: The following resource(s) failed to delete: [XXomicsappfrontendStackwebappspaCloudFrontLoggingB
ucketXX].

Also, delete your repositories in ECR if you need.

Commands

  • npm run deployInfra

    • Deploy the infrastructure stack with AWS CDK
  • npm run deployFrontend

    • Deploy the frontend stack with AWS CDK
  • npm run deployAll

    • Deploy the infrastructure and frontend stacks with AWS CDK
  • npm run destroyInfra

    • Destroy the infrastructure stack with AWS CDK
  • npm run destroyFrontend

    • Destroy the frontend stack with AWS CDK
  • npm run destroyAll

    • Destroy all stacks(the infrastructure and frontend stack) with AWS CDK

Security

See CONTRIBUTING for more information.

License

This code is licensed under the MIT-0 License. See the LICENSE file.

amazon-omics-webapp-integrations's People

Contributors

hidenori14 avatar dependabot[bot] avatar amazon-auto avatar markjschreiber avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.