Glow | Databricks on AWS [2022/3/2時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
Glowは、DatabricksとRegeneron Genetics Centerとコラボレーションを通じて開発されたオープンソースプロジェクトです。Glowの機能に関する情報については、Glow documentationをご覧ください。
Glowノートブックをワークスペースに同期
- Glow github repoをフォークします。
- Reposを用いて、フォークをDatabricksワークスペースにクローンします。
- ノートブックは
docs/source/_static
の下に配置されます。
Glow環境のセットアップ
Databricks Container Servicesを用いて、Dockerを通じてDatabricksクラスターにGlowをインストールします。
ProjectGlow Dockerhubページでコンテナを見つけることができます。これらは、GlowやDatabricks Runtime for Genomics(非推奨となりました)の他のライブラリを含む環境をセットアップします。projectglow/databricks-glow:<databricks_runtime_version>
のタグを利用可能なDatabricksランタイムバージョンで置き換えて使用してください。
あるいは、これら両方をクラスターライブラリとしてインストールします。
- Maven:
io.projectglow:glow-spark3_2.12:<version>
- PyPI:
glow.py==<version>
重要!
- GlowをスタンドアローンのPyPiパッケージとしてインストールする場合は、%pipマジックコマンドを使うノートスコープライブラリではなく、クラスターライブラリとしてインストールしてください。
- MavenコーディネートとPyPIパッケージの両方がクラスターでインストールされ、バージョンがマッチしていることを確認してください。
- デフォルトでGlow v0.6がインストールされているDatabricks Runtime for Genomics (deprecated)ではなく、Databricksランタイム上に最新のGlowをインストールしてください。
- Hail Matrix Tableから遺伝子型を抽出する場合を除き、Glowと一緒にクラスターにHailをインストールしないでください。
Glowを使い始める
リアルなデータを使う前に、ノートブックで提供されるデータに対してテストノートブックを実行することをお勧めします。これらのノートブックは最新バージョンのGlow Dockerコンテナでテストされています。
重要!
- 遺伝子型データの取り込み、変換の後にはDelta Lakeにチェックポイントを作成してください。
自動化ジョブのセットアップ
サンプルノートブックを実行した後は、リアルなデータにコードを実行し、ジョブを用いてお使いのパイプラインを自動化する準備ができたことになります。
重要!
- スモールにスタートしてください。個々の変異体、サンプル、染色体で実験してください。
- 実行する計算処理のタイプによっては、パイプラインのステップが異なるクラスター設定を必要とする場合があります。
ティップス
- クラウドオブジェクトストレージから変異体データを読み込む際にはコンピュート最適化VMを使ってください。
- 変異体データをクエリーする際にはDeltaキャッシュ高速化VMを使用してください。
- 遺伝子関連解析にはメモリー最適化VMを使ってください。
- 大規模マシンのクラスターよりも、複数の小規模マシンのクラスターの方がコストパフォーマンスが優れています。
- Glow Pipe Transformerは、GPUで実行するディープラーニングツールの並列化をサポートしています。
以下のサンプルのクラスター設定は、単一の染色体に対して遺伝子関連解析を実行します。必要に応じてnotebook_pathと<databricks_runtime_version>
を編集します。
databricks jobs create --json-file glow-create-job.json
glow-create-job.json
{
"name": "glow_gwas",
"notebook_task": {
"notebook_path" : "/Users/<user@organization.com>/glow/docs/source/_static/notebooks/tertiary/gwas-quantitative",
"base_parameters": {
"allele_freq_cutoff": 0.01
}
},
"new_cluster": {
"spark_version": "<databricks_runtime_version>.x-scala2.12",
"aws_attributes": {
"availability": "SPOT",
"first_on_demand": 1
},
"node_type_id": "r5d.4xlarge",
"driver_node_type_id": "r5d.4xlarge",
"num_workers": 32,
"spark_conf": {
"spark.sql.execution.arrow.maxRecordsPerBatch": 100
},
"docker_image": {
"url": "projectglow/databricks-glow:<databricks_runtime_version>"
}
}
}