Amazon Web Services ブログ
Amazon EMRにおいてApache SparkによるADAMおよびMangoを使用したゲノムデータセットの探索的データ分析
ゲノムシーケンスのコストは急速に低下し、公的に利用可能なゲノムデータ量はここ数年間で上昇しています。新しいコホートおよび研究では、100,000を超える個人で構成される膨大なデータセットが生成されています。同時に、これらのデータセットは、各コホート向けの様々なデータの膨大な量を生成する人口の中で遺伝的変異を抽出するよう処理されています。
ビッグデータのこの時代において、Apache Spark のようなツールはラージデータセットのバッチ処理向けの使いやすいプラットフォームを提供してきました。ただし、現在のバイオインフォマティクスパイプラインへの十分な代替としてこのようなツールを使用するには、ゲノムデータ処理向けのアクセス可能かつ包括的なAPIが必要になります。さらに、これらの処理されたデータセットの相互探査向けのサポートも必要です。
ADAMおよびMangoは、Apache Sparkにおけるラージゲノムデータセットを処理、フィルタリング、視覚化するための統合環境を提供します。ADAMにより、Apache Spark内のデータを収集および選択するためのSpark SQL、SQLインターフェイスを使用して、未加工のゲノムおよび各種データをプログラム的にロード、処理、選択することができます。Mangoは、Jupyterノートパソコン環境において、未加工および収集されたゲノムデータの視覚化をサポートしています。複数の解像度のラージデータセットから結果を出すことができます。
ADAMおよびMangoの組み合わせにより、統合環境におけるデータセットをロード、参照、拡張することができます。単一ノードのバイオインフォマティクスツールを使用して以前には不可能であったゲノムデータを相互に調べることができます。この投稿では、Amazon EMRにおけるADAMおよびMangoを設定および実行する方法を説明しています。1000 Genomesデータセットを調べるために、対話型のノートブック環境内でこれらのツールを使用する方法を実証します。これは、パブリックデータセットとしてAmazon S3で利用可能です。
Amazon EMRでADAMおよびMangoを構成
最初に、EMRクラスターを起動し、構成します。MangoではDockerコンテナを使用してAmazon EMRで簡単に実行します。クラスターの起動により、EMRでは以下のブートストラップアクションを使用して、Dockerおよび必要な起動スクリプトをインストールします。スクリプトは、/home/hadoop/mango-scripts で入手できます。
Mangoノートブックを起動するには、以下を実行します:
このファイルは、Amazon EMRのDockerでMangoを実行する必要がある環境変形の全てをセットアップします。ターミナルで、Mangoノートブックセッション向けのポートおよびJupyterノートブックトークンを確認します。EMRクラスター向けのマスターノードの公開DNS URL上のこのポートへ進みます。
1000 Genomes Projectからデータをロード
作業環境が整うと、ADAMおよびMangoを使用して、トリオ(母、父、子からのデータ)のゲノムシーケンスデータから子の中に興味深い変形を発見します。このデータは、1000 Genomes Project AWS 公開データセットから利用可能です。この分析内で、トリオ(NA19685, NA19661、およびNA19660)を表示し、親内に存在しないが子内に存在する変形を検索します。
特に、デノボ変形として知られている、親内ではなく子内に存在する遺伝子変数を特定したいと考えています。興味深いリージョンがあります。複数の混乱が継続する可能性があるデノボ変形のサイトを示すことができます。
Mango’s GitHub レポジトリ、または /opt/cgl-docker-lib/mango/example-files/notebooks/aws-1000genomes.ipynb in the running Docker container for Mango 内にこれらの例が含まれているJupyterノートブックがあります。
最初に、ADAM およびMangoモジュール、必要なSparkモジュールをインポートします。
次に、Sparkセッションを作成します。変形でSQLクエリを実行するためにこのセッションを使用します。
Spark SQLを使用した変形分析
染色体17から変形データのサブセット内にロード:
データフレーム内のカラムをプリントすることでスキーマで見ることができます。
この下のタイプデータセットには、1000 Genomes Projectからの全てのサンプルが含まれています。そのため、NA19685 トリオ内にあるサンプルのみを考慮した下のタイプをフィルターし、メモリ内に結果をキャッシュします。
次に、各変形のゲノムロケーションを決定するデータフレームに新しいカラムを追加します。これは、染色体 (contigName) および変形の開始や終了位置により定義されます。
現在、デノボ変形を発見するためにデータセットを参照できます。しかし、最初に、Spark SQL でデータフレームを登録しなければなりません。
データフレームが登録されると、SQLクエリを実行できます。最初のクエリで、少なくとも1つの代替 (ALT) 対立遺伝子があるサンプルNA19685に所属する変形の名前を選択します。
次のクエリでは、親が参照対立遺伝子があるサイトをフィルターします。次に、子から事前に生成されたセットによりこれらの変形をフィルターします。
興味深い変形がいくつかあります。メモリからゲノタイプが存続しないようにできます。
アラインメントデータでの作業
多くの潜在的なデノボ変数サイトを見つけました。次に、未加工のアラインメントがデノボヒットに一致することを確認するために、このようなサイトで視覚的に検証できます。
最初に、NA19685トリオ向けのアラインメントデータ内にロードします:
この例では、 s3a:// instead of s3:// style URLs を使用することに注意してください。これは、ADAMフォーマットで、BAMファイルにアクセスするためにJava NIOを使用するためです。これを実施するには、これらのファイルにアクセスするためにHadoop Distributed File System 向けのJSR 203実装を使用しています。これには、 s3a:// protocol が必要です。この GitHub レポジトリ内の実装を表示できます。
トリオ内に3つの個人向けのデータアラインメントデータがあります。ただし、データはメモリへロードされていません。データへ速く後続アクセスするためのデータセットをキャッシュするには、キャッシュ() ファンクションを実行します:
アラインメントデータの品質コントロール
ゲノムアラインメントデータの品質を視覚的に再確認するための1つの一般的な分析は、範囲分布を表示することです。範囲分布では、サンプルにある読み込み範囲のアイディアを提供します。
次に、染色体17で子アラインメント向けのサンプル範囲分布を作成します。
範囲データが計算、キャッシュされ、染色体17の範囲分布がコンピュータ計算され、範囲分布が計画されます:
これは、表示しているデータexomeデータであるため、非常にスタンダードに見えます。そのため、低範囲の多数サイトおよび100リード以上の少数のゲノムポジションを見ることができます。範囲で実行すると、次の分析向けのメモリ内のスペースをクリアするためにこれらのデータセットを存続しないようにできます。
発端者内のミスセンス変形でサイトを表示
アラインメントデータを検証し、変形をフィルターした後に、YBX2、ZNF286B、KSR1、GNA13などを含む、発端者内に潜在的なミスセンス変形がある4つの遺伝子があります。子および親の未加工読み取りのフィルターおよび表示によりこれらのサイトを視覚的に確認できます。
最初に、子の読み取りを表示します。GNA13 変数 (63052580-63052581) のロケーションにズームすると、ヘテロ接合 T から A コールが確認できます:
この位置に変形があり、代替対立遺伝子Aがあるヘテロ接合SNPの可能性があります。この変形が親内に現れないことを確認するために親データを見てみます:
これにより、この変形が、発端者のみでなく親でもあるというフィルターが確認されます。
まとめ
まとめとして、この投稿により、Amazon EMRのADAMおよびMangoを設定および実行する方法を実証しました。1000 Genomesデータセットを探索するために、対話型のノートブック環境内でこれらのツールを使用する方法を実証しました。これは、パブリックデータセットとして Amazon S3 で利用可能です。1000 Genomesデータ品質の検証、ゲノム内の興味深い変形の検証、未加工データの視覚化を通した結果の検証にこれらのツールを使用しました。
Mangoに関する詳細は、Mangoユーザーガイドをご覧ください。ご質問またはご提案については、以下でコメントを残してください。
その他の参考資料
この投稿が有用だとお考えの場合、 Amazon EMR および Amazon AthenaのHailによるゲノム分析, Amazon Athenaを使用したゲノムデータセットの対話型分析、AWS Compute ブログ、AWSにおける高スループットゲノムバッチワークフローの構築: はじめに (パート4-1)をご覧ください。
著者について
Alyssa Marrow は、カリフォルニア大学、バークレイのRISELab および Yosef Lab の大学院生です。彼女の研究は、主にシステムの交差およびコンピュータを利用した生命工学です。これには、オミクスデータの処理およびコンピュータ計算するための拡張可能なシステムの構築および簡単な並行処理アルゴリズムが含まれています。