Skip to main content

몇 가지 기능과 알아둘 것들

서비스 Quota와 리전

AWS의 거의 모든 서비스가 그러하듯 HealthOmics에서도 Quota가 존재합니다. 또한 사용 가능한 리전이 현재 제한적입니다. (서울 리전은 사용 불가능)

주요 Quota 항목

실제 프로덕션 또는 테스트 환경에서 동시에 다수의 샘플을 처리할 경우, 아래 Quota 항목들을 사전에 확인하고 조정 신청이 필요합니다.

- Workflows - Maximum concurrent tasks per run
  - 기본값: 25 / 조정 예시: 50~200
  - 워크플로우마다 다르지만, 최대 동시 실행 케이스를 고려해 기본값보다 늘리는 것을 권장합니다.

- Workflows - Maximum concurrent active runs using static run storage
  - static 스토리지(Lustre)를 사용하는 경우, 동시에 처리할 샘플 수만큼 설정합니다.
  - 예: 100개 샘플을 한 번에 처리하려면 100으로 지정. 10으로 설정 시 최대 10개씩 순차 실행됩니다.

- Workflows - Maximum concurrent active runs using dynamic run storage

- Workflows - Transactions per second (TPS) for the StartRun operation
  - 기본값: 0.1 TPS (10초에 1번 API 호출 가능)
  - 코드로 동시에 여러 run을 실행할 경우 (run group 기능 활용 시), 기본값으로는 연속 API 호출 시 실패가 발생합니다.
  - 조정 예시: 0.2 TPS → 10초에 2번 API 실행 가능

Quota 증가 신청 시 참고사항

Quota 증가 요청 시 AWS로부터 사용 사례(use case)를 요청받을 수 있습니다. 아래와 같이 간단히 작성하면 됩니다.

- 사용 목적 예시: "임상 분석 - Targeted Seq / 데이터분석부 - WGS"
- 동시 처리 샘플 수 포함하여 기재

실제 제약사 지원 경험상, 기본 Quota로는 대규모 샘플 처리에 한계가 있어 조정이 필요한 경우가 많습니다.

Quota 확인 및 변경 방법

AWS 콘솔 → Service Quotas → AWS HealthOmics 에서 현재 적용된 Quota를 확인하고 증가 요청을 할 수 있습니다.

참고: https://docs.aws.amazon.com/omics/latest/dev/service-quotas.html

HealthOmics Etag 및 데이터 출처

HealthOmics의 Etag 란 시퀀스 저장소에 있는 데이터의 Hash를 말합니다. 이렇게 하면 데이터의 컨텐츠 무결성을 유지하면서 데이터 검색 및 처리를 간소화 합니다.

Etag는 메타데이터가 아니라 객체의 시맨틱 컨텐츠에 대한 변경 사항을 반영합니다. 설명하면 파일에는 bitwise identity와 semantic identity가 있는데, 비트는 파일의 비트가 동일하다는 의미이고 시맨틱은 파일의 내용이 동일함을 의미합니다. 시맨틱은 그래서 파일의 컨텐츠 무결성을 캡처하므로 메타 데이터 변경이나 압축 변경을 해도 된다는 바뀌지 않는 다는 의미입니다.

HealthOmics의 시퀀스 저장소의 Read sets은 객체 수명 주기 전반에 걸쳐 압축/압축 해제 주기와 데이터 출처 추적을 거칩니다. 어 처리과정에서 파일의 비트는 변경될 수 있지만 시맨틱은 그대로 유지됩니다.

더 자세한 설명은 아래 링크를 참고하세요.

https://docs.aws.amazon.com/omics/latest/dev/etags-and-provenance.html

시퀀스 스토리지로 바로 업로드하기

HealthOmics Transfer Manager를 사용해서 직접 업로드할 수도 있습니다. 이때 멀티파트 업로드를 사용할 수도 있습니다.

https://docs.aws.amazon.com/omics/latest/dev/synchronous-uploads.html

시퀀스 스토리지에 있는 데이터를 다른 3rd party에서 바로 접근하기

  • Integrative Genomics Viewer (IGV)나 UCSC Genome Browser
  • CWL, WDL 및 Nextflow 와 같은 워크플로우에서 Amazon S3 확장을 사용할 때
  • 인증을 구현해서 액세스 포인트 Amazon S3 URIs 또는 presigned Amazon S3 URIs를 읽을 때
  • Mountpoint나 CloudFront와 같은 Amazon S3 의 유틸리티 기능이 필요할 때

https://docs.aws.amazon.com/omics/latest/dev/s3-access.html

자동 주기 변환 

HealthOmics 스토리지를 사용하여 유전체학 데이터를 저렴한 비용으로 효율적으로 저장, 검색, 구성 및 공유할 수 있습니다.

ACTIVE 상태로 저장된 데이터는 즉시 검색할 수 있습니다.30일 이상 액세스하지 않은 데이터는 ARCHIVE 상태로 저장됩니다.

만일 파일을 ACTIVE로 전환 하려면 아래 링크를 참고하세요. ReadSet 크기에 따라 다시 활성화하는 데 몇 분에서 몇 시간이 걸릴 수 있습니다. (마치 Amazon S3 Glacier Instant Retrieval Storage Class 에서 데이터 검색 요청하는 것과 유사함)

예를들어 2023년 10월 기준으로 1Gbase파일은 3분이내에 활성화되고 110Gbase 파일이 2시간 45분 만에 활성화됩니다.

https://docs.aws.amazon.com/omics/latest/dev/activating-read-sets.html


변이 스토어 다루기

AWS Lake Formation과 Amazon Athena 나 AMaozn EMR을 사용해 변이 스토어에 대한 쿼리를 수행할 수 있습니다.

2024년 9월 26일 이후 생성된 변이 스토어에 대해 HealthOmics는 샘플 아이디를 기준으로 스토어를 분할합니다. 이러한 파티셔닝은 HealthOmics가 샘플 ID를 사용하여 변형 정보를 저장하는 최적화를 의미합니다. 샘플 정보를 필터로 사용할 경우 쿼리에서 스캔하는 데이터 양이 적기 때문에 결과를 더 빨리 반환합니다.

데이터를 수집하기 전에 샘플 ID에 PHI 데이터가 포함되어 있는지 확인하세요. 만일 포함되었다면 샘플 아이디를 변경해야 합니다. (HIPAA 규정준수 참고)

워크플로우 실행 전 검사 하기

워크플로를 만든 후 첫 실행을 시작하기 전에 워크플로에서 린터를 실행하는 것이 좋습니다. 린터는 실행 실패의 원인이 될 수 있는 오류를 탐지합니다.

WDL의 경우 HealthOmics는 워크플로를 생성할 때 자동으로 린터를 실행합니다. 린터 출력은 get-Workflow 응답의 StatusMessage 필드에서 사용할 수 있습니다.다음 CLI 명령을 사용하여 상태 출력을 검색합니다 (생성한 WDL 워크플로의 워크플로 ID 사용).

  • WDL – A public Amazon ECR image to run a WDL linter.

  • Nextflow – A public Amazon ECR image to run Linter rules for Nextflow. You can access the source code for this linter from GitHub.

  • CWL – not available

https://docs.aws.amazon.com/omics/latest/dev/workflows-linter.html

워크플로우의 콜 캐싱 기능

HealthOmics는 비공개 워크플로에 대한 콜 캐싱을 지원합니다. 콜 캐싱은 실행 완료 후 완료된 워크플로 작업의 출력을 저장합니다. 후속 실행에서는 작업 출력을 다시 계산하는 대신 캐시의 작업 출력을 사용할 수 있습니다. 호출 캐싱은 컴퓨팅 리소스 사용량을 줄여 실행 기간을 단축하고 컴퓨팅 비용을 절감합니다.

실행이 완료된 후 캐시된 작업 출력 파일에 액세스할 수 있습니다. 개발 중에 고급 디버깅 및 문제 해결을 수행하기 위해 중간 작업 파일을 캐시하려는 경우 워크플로 정의에서 이러한 파일을 작업 출력으로 선언하십시오.

프로덕션 워크플로의 경우 호출 캐싱을 사용하여 실행 실패로 인한 완료된 작업 결과를 저장하십시오.다음 실행은 완료된 작업을 다시 계산하는 대신 성공적으로 완료된 마지막 작업부터 시작합니다.

HealthOmics에서 작업과 일치하는 캐시 항목을 찾지 못하더라도 실행은 실패하지 않습니다. HealthOmics는 작업과 종속 작업을 다시 계산합니다.

https://docs.aws.amazon.com/omics/latest/dev/workflows-call-caching.html

HealthOmics의 공유 기능

- HealthOmics variant stores, HealthOmics annotation stores, Private workflows

HealthOmics의 알림 구성 (EventBridge 연동)