大規模GWASやPRS研究を可能にするHail(6)
Takeru Elysia news!
大規模GWASやPRS研究を可能にするHail(6)
Takeru ElysiaはApache Sparkが利用可能な大規模計算プラットフォームです。従来のジョブスケジューラーを用いたものと異なり、複数台の計算機を使う同じcluster構成でも、次のような特徴を持っています。- 自分でデータ分割をする必要がない
- 並列処理を自動実行してくれる
- 計算にnfsを使用しないため、ファイルI/Oがボトルネックになりにくい
- 高い拡張性を持っており、数ノードからスタートして数百ノード以上にスケールすることができる
今日の内容:
Spark上でPandas風にデータ分析ができるライブラリ、Koalasを使う
使用するvcfファイルについて:
使用するvcfファイルは、1000genomesより取得したものです。 圧縮した状態で合計1.3TB程度あります。 HailはPython上で動作します。まず、notebook上でHailを動作させます。 この試験ではkubernetes上にspark clusterをデプロイしています。データの読み込み
vcfファイルとannotationファイルを読み込み, 1塩基多型のみに絞り込み, 両者を結合しておきます。In [2]:
Koalasを使ってみる
KoalasはSpark上でPandasと同じようなコードの書き方ができるライブラリです。 次のようにpipでインストールできます。In [3]:
SparkのDataFrameからKoalasのDataFrameをつくるには, to_koalas()を使います。
KoalasのDataFrameへ変換
KoalasはSpark cluster上で動作するため、メモリ不足にならずに高速処理にすることができます。In [4]:
In [5]:
Out[5]:
In [6]:
In [7]:
Out[7]:
In [8]:
今回は次のような操作を行いました。
・前回Pandasで読み込めなかったデータを、Spark上でPandas風にデータ分析ができるライブラリKoalasを使って読み込み
今回はhailのデータをKoalasのDataFrameへと変換をしました。
Pandasではメモリ不足に陥るような大きなデータでも、KoalasのDataFrameなら問題なく処理するができました。
次回の内容はひとまず未定ですが、お楽しみにしてください。