Amazon Web Services ブログ
Amazon Genomics CLI がオープンソースとなって一般提供を開始
70 年に満たない期間の中で、DNA の二重らせん構造という史上最大の発見の 1 つから、研究はさらに進められました。現在では、DNA は、塩基と呼ばれる 4 種類の化合物で構成される、ねじれたはしごのようなものであることがわかっています。これら 4 つの塩基は通常大文字で識別されます。すなわち、アデニン (A)、グアニン (G)、シトシン (C)、チミン (T) です。二重らせん構造が提唱された理由の一つは、これらの化合物がはしごの両側にあるとき、A は常に T と結合し、C は常に G と結合するということです。
テーブルの上ではしごを広げると、「文字」からなる 2 つの塩基配列を目にすることになります。そして、両側には同じ遺伝情報があります。例えば、次のように 2 つの配列 (AGCT
と TCGA
) が結合されています。
これらの文字の配列は非常に長くなることがあります。例えば、ヒトゲノムは 30 億文字を超えるコードで構成され、ヒトのすべての細胞の生物学的な設計図として機能します。ヒトのゲノムに含まれる情報は、個人、さらには人類全体の健康を向上させるために、高度にパーソナライズされた治療法を生み出すために利用することができます。同様に、ゲノムデータは、感染症の追跡、診断の改善、さらにはエピデミック、食品病原体、および毒素の追跡にも利用できます。これは環境ゲノミクスの新興分野です。
ゲノムデータの利用のためにはゲノム配列決定が必要です。最近の技術の進歩により、大規模な個人のグループに対して、かつてないほど迅速かつ費用対効果の高い方法でゲノム配列決定を行うことが可能となっています。今後 5 年間でゲノミクスデータセットは増加し、配列決定された 10 億を超えるゲノムを含むようになると推定されています。
ゲノミクスデータ解析の仕組み
ゲノミクスデータ解析では、特定の手順またはワークフローとしてオーケストレートされる必要があるさまざまなツールを利用します。ワークフローの開発、共有、および実行を容易にするために、ゲノミクスおよびバイオインフォマティクスのコミュニティは、WDL、Nextflow、CWL、Snakemake などの特殊なワークフロー定義言語を開発しました。
しかし、このプロセスではペタバイト規模の生ゲノムデータが生成されるため、ゲノミクスおよびライフサイエンスのエキスパートは、このような巨大な規模のデータを処理するためにコンピューティングリソースとストレージリソースをスケールするのに苦労しています。
データを処理して迅速に答えを得るには、コンピューティング、ストレージ、ネットワーキングなどのクラウドリソースを解析ツールと連携するように構成する必要があります。その結果、科学者や研究者は、ゲノミクス分野におけるイノベーションへの貢献ではなく、インフラストラクチャのデプロイやオープンソースのゲノム解析ツールの変更に貴重な時間を費やさなければならないことがよくあります。
Amazon Genomics CLI について
数か月前、当社は、AWS においてペタバイト規模でゲノミクスデータをより簡単に処理できるようにするツールである Amazon Genomics CLI のプレビューを共有しました。2021 年 9 月 27 日、Amazon Genomics CLI がオープンソースプロジェクトとなり、一般利用が可能となったことをお知らせします。開始点として、公開されているワークフローとともにこの CLI を利用し、その結果を踏まえて解析を進めることができます。
Amazon Genomics CLI は、クラウドインフラストラクチャのデプロイを簡素化および自動化します。これにより、使いやすいコマンドラインインターフェイスを提供して、お客様が AWS でゲノミクスワークフローを迅速にセットアップおよび実行できるようにします。クラウドにおけるゲノミクスのワークフローの設定と実行での手間のかかる作業を排することにより、ソフトウェアデベロッパーや研究者は、クラウドリソースを自動的にプロビジョン、設定、およびスケールして、より迅速かつ費用対効果の高い集団レベルの遺伝学の研究、創薬サイクルなどを実現できます。
Amazon Genomics CLI を利用することで、最適化されたクラウドインフラストラクチャでワークフローを実行できます。具体的には、CLI は次のとおりです。
- ゲノミクスワークフローエンジンの改善を含んでおり、より良好に AWS と統合できます。これにより、オープンソースツールを手動で変更したり、効率的に実行できるように大規模にチューニングしたりする負担が軽減されます。これらのツールは、Amazon Elastic Container Service (Amazon ECS)、Amazon DynamoDB、Amazon Elastic File System (Amazon EFS)、および Amazon Simple Storage Service (Amazon S3) 間でシームレスに機能し、EC2 スポットインスタンスなどの機能を使用して、コンピューティングとストレージをスケールしながら、同時にコストを最適化するのに役立ちます。
- ストレージとコンピューティング容量のプロビジョニング、ゲノミクスワークフローエンジンのデプロイ、ワークフローの実行に使用されるクラスターのチューニングなど、最も時間のかかるタスクを排します。
- ワークロードに基づいてクラウドリソースを自動的に増減します。これにより、容量を過剰に購入したり、購入量が不足したりするリスクを排除できます。
- リソースにタグを付けて、AWS のコストと使用状況レポートなどのツールを使用して、複数の AWS のサービスにまたがって実行されるゲノミクスデータ解析に関連するコストを理解できるようにします。
Amazon Genomics CLI の利用は、次の 3 つの主要な概念に基づいています。
ワークフロー – これらは、WDL や Nextflow などの言語で記述されたバイオインフォマティクスのワークフローです。単一のスクリプトファイルとすることも、複数のファイルのパッケージとすることもできます。これらのワークフロースクリプトファイルはワークフロー定義であり、定義が記述されているワークフロー言語などの追加のメタデータと組み合わせて、適切なコンピューティングリソースでワークフローを実行するために CLI によって使用されるワークフロー仕様を形成します。
コンテキスト – コンテキストは、ワークフローエンジンの設定とデプロイ、データアクセスポリシーの作成、および大規模なオペレーションのための (AWS Batch を使用して管理される) コンピューティングクラスターの調整といった、時間のかかるタスクをカプセル化および自動化します。
プロジェクト – プロジェクトは、ワークフロー、データセット、およびそれらの処理に使用されるコンテキストをリンクします。ユーザーの観点からは、プロジェクトは、同じ問題に関連するリソース、または同じチームによって使用されるリソースを処理します。
ここからは、実際にどのように機能するのかを見ていきましょう。
Amazon Genomics CLI を利用する
Amazon Genomics CLI をノートパソコンにインストールする手順を実行します。これで、agc
コマンドを使用してゲノムワークロードを管理できるようになりました。次のコマンドを実行すると、利用可能なオプションが表示されます。
初めて使用するときには、AWS アカウントをアクティブ化します。
これにより、Amazon Genomics CLI の運用に必要なコアインフラストラクチャが作成されます。これには、S3 バケット、仮想プライベートクラウド (VPC)、および DynamoDB テーブルが含まれます。S3 バケットは耐久性のあるメタデータのために使用され、VPC はコンピューティングリソースを分離するために使用されます。
オプションで、自分の VPC を利用できます。AWS Command Line Interface (CLI) のために自分の名前付きプロファイルの 1 つを使用することもできます。このようにして、Amazon Genomics CLI によって使用される AWS リージョンと AWS アカウントをカスタマイズできます。
メールアドレスをローカル設定で構成します。これは CLI によって作成されたリソースにタグを付けるために使用されます。
Amazon Genomics CLI インストールによって含まれるサンプルフォルダには、いくつかのデモプロジェクトがあります。これらのプロジェクトは、Cromwell や Nextflow など、さまざまなエンジンを使用します。demo-wdl-project
フォルダ内の agc-project.yaml
ファイルには、Demo
プロジェクトのためのワークフロー、データ、およびコンテキストが記述されています。
---
name: Demo
schemaVersion: 1
workflows:
hello:
type:
language: wdl
version: 1.0
sourceURL: workflows/hello
read:
type:
language: wdl
version: 1.0
sourceURL: workflows/read
haplotype:
type:
language: wdl
version: 1.0
sourceURL: workflows/haplotype
words-with-vowels:
type:
language: wdl
version: 1.0
sourceURL: workflows/words
data:
- location: s3://gatk-test-data
readOnly: true
- location: s3://broad-references
readOnly: true
contexts:
myContext:
engines:
- type: wdl
engine: cromwell
spotCtx:
requestSpotInstances: true
engines:
- type: wdl
engine: cromwell
このプロジェクトには、4 つのワークフロー (hello
、read
、words-with-vowels
、および haplotype
) があります。このプロジェクトは、2 つの S3 バケットへの読み取り専用アクセス権を有しており、2 つのコンテキストを使用してワークフローを実行できます。どちらのコンテキストも Cromwell エンジンを使用します。1 つのコンテキスト (spotCtx
) では、Amazon EC2 スポットインスタンスを使用してコストを最適化します。
demo-wdl-project
フォルダで、Amazon Genomics CLI を使用して spotCtx
コンテキストをデプロイします。
数分後、コンテキストの準備が整い、ワークフローを実行できるようになりました。コンテキストを開始すると、1 時間あたり約 0.40 USD のベースラインコストが発生します。これらのコストには、ワークフローを実行するために作成されたリソースは含まれません。これらのリソースは、特定のユースケースによって異なります。コンテキストでは、requestSpotInstances
フラグを設定に追加することによって、オプションでスポットインスタンスを使用できます。
CLI を使用して、プロジェクトのコンテキストのステータスを表示します。
ここで、このプロジェクトに含まれるワークフローを見てみましょう。
最もシンプルなワークフローは hello
です。hello.wdl
ファイルの内容は、プログラミング言語をご存知であれば、大部分を理解できるでしょう。
hello
ワークフローは、コマンドの出力内容を出力する単一のタスク (hello
) を定義します。タスクは特定のコンテナイメージ (ubuntu:latest
) で実行されます。出力は、プロセスが出力を書き込むことができるデフォルトのファイル記述子である標準出力 (stdout
) から取得されます。
ワークフローの実行は非同期プロセスです。CLI からワークフローを送信すると、完全にクラウドで処理されます。一度に複数のワークフローを実行できます。基盤となるコンピューティングリソースは自動的にスケールされ、利用した分の料金のみを支払います。
CLI を使用して、hello
ワークフローを開始します。
ワークフローは正常に送信されました。最後の行はワークフロー実行 ID です。この ID を使用して、特定のワークフロー実行を参照できます。ここで、ワークフローのステータスを確認します。
hello
ワークフローはまだ実行中です。数分後、もう一度確認します。
ワークフローは終了しました。これで完了です。ワークフローログを見ます。
ログでは、想定どおり、ワークフローによって出力される Hello Amazon Genomics CLI!
メッセージを確認できます。
また、上記のログの情報を使用して、S3 の hello-stdout.log
の内容を確認することもできます。
うまくいきました! ここからは、より複雑なワークフローを見ていきましょう。プロジェクトを変更する前に、Demo
プロジェクトのコンテキストを破棄します。
gatk-best-practices-project
フォルダには、プロジェクトで使用可能なワークフローが一覧表示されます。
agc-project.yaml
ファイルでは、gatk4-data-processing
ワークフローは同じ名前のローカルディレクトリをポイントしています。これは、そのディレクトリの内容です。
このワークフローは、バリアントの発見に重点を置いたゲノム解析ツールキットである GATK4 を使用して、ハイスループットのシーケンシングデータを処理します。
ディレクトリには MANIFEST.json
ファイルが含まれています。マニフェストファイルには、実行するメインワークフローが格納されているファイル (ディレクトリに WDL ファイルが複数ある場合があります) と、入力パラメータとオプションがある場所が記述されています。マニフェストファイルの内容は次のとおりです。
gatk-best-practices-project
フォルダに、ワークフローを実行するコンテキストを作成します。
その後、gatk4-data-processing
ワークフローを開始します。
数時間後、ワークフローは終了しました。
ログを見てみます。
結果は、アカウントのアクティベーション中に作成された S3 バケットに書き込まれています。バケットの名前はログに表示されていますが、AWS Systems Manager によってパラメータとして保存されていることもわかります。次のコマンドを実行することで、環境変数に保存できます。
AWS Command Line Interface (CLI) を使用して、S3 バケットの結果を調査し、ワークフローの出力を取得できるようになりました。
結果を見る前に、コンテキストを停止して不要なリソースを削除します。これにより、すべてのコンピューティングリソースが破棄されますが、S3 のデータは保持されます。
異なるコンテキストの設定と追加のワークフローの実行に関する追加の例は、GitHub のドキュメントに記載されています。
利用可能なリージョンと料金
Amazon Genomics CLI はオープンソースのツールであり、AWS GovCloud (米国) と中国にあるリージョンを除くすべての AWS リージョンで今すぐご利用いただけます。AWS Genomics CLI の利用にコストはかかりません。CLI によって作成された AWS リソースの料金はお支払いいただきます。
Amazon Genomics CLI を使用すると、インフラストラクチャの設計ではなく、科学に注力できます。これにより、より迅速に稼働し、研究、開発、およびワークロードのテストが可能となります。数千の並列ワークフローにスケールする本稼働ワークロードについて、当社では、AWS Step Functions などの追加の Amazon のサービスを活用するための推奨される方法をご提示できます。詳細については、当社のアカウントチームまでお問い合わせください。
– Danilo
原文はこちらです。