Amazon Omics入門(Omics Storageへデータ保存)
こんにちは!コンサル部のinomaso(@inomasosan)です。
最近、大村 保貴にAmazon Omicsを教えて貰う機会があり、最初の一歩としてOmics Storageへのファイル保存をレクチャーして貰ったので、復習も兼ねてブログにすることにしました。
ざっくり前提知識
そもそもゲノムデータ分析をどのような流れで実施しているかを把握するには、以下の図がわかりやすかったです。
Omics Storageの以下ストアにゲノムデータをそれぞれ保存することで、Omics Workflowsの処理・解析に使用することができます。
- リファレンスゲノム(FASTA形式)を保存するリファレンスストア
- リード配列、シーケンスデータ(FASTQ形式等)を保存するシーケンスストア
また、Omics Storageに保存することでS3バケットよりも保存コストが安くなるという側面もあります。 ゲノムデータはサイズが肥大化しやすい認識なので、このメリットは大きいと思います。
やってみた
概要
今回はOmics Analyticsによる分析に必要なデータを、Omics Storageに保存するところまで実施していきます。 データを保存する手順を図解したブログがありますので、最初にこちらを見て頂けると理解が捗るかと思います。
尚、今回はAmazon Omicsが対応しているバージニア北部リージョンで検証しています。
S3に必要なデータを保存
Omics Storageの仕様でデータはS3バケットを経由して保存する必要があります。
2023/2/22時点でOmicsコンソールにてS3バケット作成までは対応していないため、S3コンソールで事前に作成しておきましょう。
尚、S3バケットはAmazon Omicsと同じリージョンに作成しなければならないので注意しましょう。
S3バケットの作成が完了したら、FASTAとFASTQのサンプルファイルをダウンロードしていきます。 今回はゲノムが小さいショウジョウバエのデータをダウンロードします。
リファレンスゲノム(FASTA形式)
以下ページのDownloadボタンを押下します。
Download PackageでSelect file sourceでRefSeq only (1)を選択し、Downloadボタンを押下します。
Zipファイルをダウンロードできたら解凍して、GCF_000001215.4_Release_6_plus_ISO1_MT_genomic.fnaというファイルを、先ほど作成したS3バケットにアップロードします。
リード配列、シーケンスデータ(FASTQ形式)
以下ページのGSM868349_Tot_0-1h_emb_NoAdapter_inserts.fastq.gzをftp
かhttp
のリンクを押下して、ダウンロードします。
こちらのファイルは解凍不要なため、そのままS3バケットにアップロードします。
リファレンスストアの作成とデータ保存
FASTAファイルをOmics Storageのリファレンスストアへ保存していきます。
内部的な動作としてはS3からデータをインポートする流れとなります。
まずはリファレンスストアの作成が必要なのですが、Omicsの仕様で1リージョンに1つのリファレンスストアのみ作成可能です。 名前の変更もできないため、共通の命名にしておいた方が良いでしょう。
まずは先ほど作成したS3バケットと同じリージョンを選択しOmicsコンソールを開きます。
左ペインのReference store
からImport reference genome
をクリックします。
Create reference genome import job
の画面が表示されるので、まずはReference store
でManual creatを選択し、Reference store name
はMyReferenceStoreとしました。
Data encryption
はデフォルトのAWS管理キーであるUse AWS owned keyにしておきます。
General Details
で先ほどS3バケットにアップロードしたショウジョウバエのFASTAファイルを指定します。
Reference genome name
にFruitflyと入力し、Select reference from S3
にS3バケットのFASTAファイルのS3 URI
を指定していきます。
今回入力するS3 URIはs3://<S3バケット名>/GCF_000001215.4_Release_6_plus_ISO1_MT_genomic.fnaとなりますので、S3バケット名は適宜置き換えてください。
Service access
でOmicsにS3やKMS用のIAMロールを指定or新規作成を選択できます。
初回はIAMロールがないので、Create and use a new service roleを選択します。
IAMロール名はデフォルトですとOmicsStorage-20230222T140792といった名前で生成されるので、次回以降にも汎用的に使用できる名前に変更してあげます。
今回はOmicsStorage-service-roleという名前にします。
最後に画面右下のImport reference genome
をクリックします。
Status
がCompletedとなっていることを確認しましょう。
シーケンスストアの作成とデータ保存
FASTQファイルを保存するために、Omics Storageのシーケンスストアを作成します。
左ペインのReference store
からImport reference genome
をクリックします。
General details
のSequence store name
は、ショウジョウバエのデータのためFruitflySequenceStoreと入力します。
Data encryption
はデフォルトのAWS管理キーであるUse AWS owned keyにしておきます。
最後に画面右下のCreate a sequence store
をクリックします。
ショウジョウバエ用のシーケンスストアが作成されたことを確認します。
次にFASTQファイルをシーケンスファイルに保存するために上図のImport genomic files
をクリックします。
Store details
でショウジョウバエ用のシーケンスストアが選択されていることを確認します。
Reference genome
でリファレンスストアに保存したリファレンスゲノムであるFruitflyを選択します。
Service access
は先ほど作成したIAMロールを使用するため、Use an existing service roleでOmicsStorage-service-roleを選択します。
Manifest file
は事前にJSONかYAMLで作成する必要があります。
これはリファレンスストアに保存したリファレンスゲノムと関連づけるために作成するファイルとなります。
以下、Manifest fileのサンプル例です。
sourceFiles: source1: "s3://<S3バケット名>/GSM868349_Tot_0-1h_emb_NoAdapter_inserts.fastq.gz" sourceFileType: "FASTQ" subjectId: "Fruitfly" sampleId: "SampleFruitfly" referenceArn: "arn:aws:omics:us-east-1:<AWSアカウントID>:referenceStore/<リファレンスストアID>/reference/<リファレンスゲノムID>" name: "Fruitfly"
sourceFiles
はS3バケットに保存したファイルのS3 URIで、referenceArn
はリファレンスストアに保存したショウジョウバエのリファレンスゲノムのARNとなりますので、適宜置き換えてください。
Status
がCompletedとなっていることを確認しましょう。
後片付け
S3バケットにアップロードしたファイルはそのまま削除すれば良いのですが、リファレンスストアとシーケンスストアの削除は、お互いストアの関連付けを考慮する必要があります。 詳細な解説や削除方法につきましては、以下のブログをご参照願います。
まとめ
Amazon Omicsを初めて触ってみたのですが、AWSに加えてゲノム関連の専門用語も頻出するため四苦八苦しながらブログにまとめました。 次回は分析を試したブログを書く予定です!
この記事が、どなたかのお役に立てば幸いです。それでは!