[アップデート] Amazon Omics Storage のシーケンスストアへファイルを直接保存できるようになりました
Amazon Omics Storage のシーケンスストアにシーケンスファイル(FASTQ
, BAM
, CRAM
形式)を直接アップロードできるようになりました。と書くと今までどうやってアップロード(保存)していたのか疑問ですよね、S3 を経由しないとファイルを保存できませんでした。
Inventory icons created by Freepik - Flaticon
従来のアップロード方法は?
これまでシーケンスストアへファイルにデータを保存(シーケンスファイルのアップロード)するためには前もって S3 バケットに保存したいデータをアップロードし、それから S3 バケットのデータをシーケンスストアへ取り込む方法しかサポートされていませんでした。
Inventory icons created by Freepik - Flaticon
2023年5月15日のアップデートで新たな保存方法が追加され、S3 バケットを経由せずにシーケンスストアへデータを直接保存できるようになりました。
検証環境
作成済みのシーケンスストアへ直接シーケンスファイルを保存を試してみます。
シーケンスストア、シーケンスストアを作成するために必要なリファレンスストアを未作成の場合は以下のリンクを参考にストアを作成してください。
やってみた
機能追加アップデートに伴い直接アップロードのドキュメントが追加されていたため、ドキュメントに沿って試してみます。
Direct upload to a sequence store - Amazon Omics
作業概要
3ステップを経てシーケンスストアへファイルを直接アップロードができます。直接アップロードできるようになったと言っても、S3 バケットへaws s3 sync
やaws s3 cp
でファイルをアップロードする感覚では利用できませんでした。
- 転送開始コマンド
- ファイル転送コマンド
- 転送終了コマンド
転送開始コマンド
「マルチパートアップロードを開始します」という開始手続きが最初に必要です。
アップロード先のシーケンスストの ID が必要になり、マネージメントコンソールからだとここに表示されている値です。
aws omics create-multipart-read-set-upload
の実行例です。
aws omics create-multipart-read-set-upload \ --sequence-store-id 7280775986 \ --name MyReadSet \ --source-file-type FASTQ \ --subject-id DrosophilaMelanogaster20230516\ --sample-id Sample1\ --reference-arn "arn:aws:omics:us-east-1:123456789012:referenceStore/7383825511/reference/6329765065"
次の工程で必要になるuploadID
の値を実行結果から控えておきます。
{ "sequenceStoreId": "7280775986", "uploadId": "6383291986", "sourceFileType": "FASTQ", "subjectId": "DrosophilaMelanogaster20230516", "sampleId": "Sample1", "referenceArn": "arn:aws:omics:us-east-1:123456789012:referenceStore/7383825511/reference/6329765065", "name": "MyReadSet", "creationTime": "2023-05-17T04:21:27.791408+00:00" }
Reference
- create-multipart-read-set-upload — AWS CLI 2.11.21 Command Reference
- CreateMultipartReadSetUpload - Amazon Omics
ファイル転送コマンド
aws s3 sync
に該当するファイルをアップロードする工程です。ポイントはアップロードしたからシーケンスストアにファイルを保存されるわけではなく、保存をコミットするのはさらに次の工程(転送終了コマンド)です。
aws omics upload-read-set-part
コマンドの実行例です。転送開始コマンドの項で確認したuploadID
が引数で必要になります。
注意事項はファイルサイズが大きいとファイルを分割してアップロードする必要があるようです。テストアップロードに使用した gzip圧縮済みの FASTQ ファイルは 80MB のためエラーなくアップロードできました。
ちなみに大きいファイルサイズの具体的な容量を示す数値での説明はドキュメン類に記載はありませんでした。分割したファイルは--part-number
のオプションで数値をインクリメントして指定することになると思います。API の仕様上は10,000
まで指定可能となっています。
aws omics upload-read-set-part \ --sequence-store-id 7280775986 \ --upload-id 6383291986 \ --part-source SOURCE1 \ --part-number 1 \ --payload \ /Users/ohmura.yasutaka/aws/work/omics/fruit_fly/GSM868349_Tot_0-1h_emb_0-29_nt_inserts.fastq.gz
次の工程で必要になるchecksum
の値を実行結果から控えておきます。
{ "checksum": "0sVAhGwo//M8GBtygTqyCbTOOOE4Saz7UlpxKoxPlho=" }
Reference
転送終了コマンド
「マルチパートアップロードを終了します」という終了手続きを実行してはじめて前の工程(ファイル転送コマンド)でアップロードしたファイルがシーケンスストアへ保存されます。
aws omics complete-multipart-read-set-upload
コマンドの実行例です。ここまでに指定してきた引数の値が必要です。とくに--parts
の入力ミスに気をつけてください。
aws omics complete-multipart-read-set-upload \ --sequence-store-id 7280775986 \ --upload-id 6383291986 \ --parts partNumber=1,partSource="SOURCE1",checksum="0sVAhGwo//M8GBtygTqyCbTOOOE4Saz7UlpxKoxPlho="
{ "readSetId": "7780555737" }
実行結果に表示されたリードセット ID と同じ ID をマネージメントコンソールからも確認できます。
ここまでの一連の作業を経てシーケンスストアへ直接ファイルをアップロードできるというのが今回のアップデート内容です。
Reference
- complete-multipart-read-set-upload — AWS CLI 2.11.20 Command Reference
- CompleteMultipartReadSetUpload - Amazon Omics
まとめ
シーケンスストアへファイルをアップロードできる新しい選択肢が増えました。
Inventory icons created by Freepik - Flaticon
おわりに
ローカルから Opmics Storage へ保存できるようになり、NGS から出力したデータをシーケンスストアへ保存したいなど Omics Storage の利用用途が広がったのではないでしょうか。
3ステップが必要があるのですがシーケンスストアへ直接アップロードできることを確認しました。直接アップロードの AWS CLI の手順が煩雑ですが、S3 バケット経由と比べるとマニュフェストファイルの作成が不要になっているので手間を比べるとどっこいどっこいだと思います。だけど、大量のシーケンスデータがある場合は引き続き S3 バケットにアップロードして、非同期のバッチ処理でシーケンスストアへする方法も有効ですね。