Slide 1

Slide 1 text

Singularity仮想化で バイオデータ解析 医薬基盤・健康・栄養研究所 東京医科歯科大学 樋口千洋 2023/12/16 Rの研究集会2023@統計数理研究所 1

Slide 2

Slide 2 text

Singularity仮想化 • Dockerと同じコンテナ仮想化の一種 / サイエンス指向 • ホストのGPUを使用できる 2023/12/16 Rの研究集会2023@統計数理研究所 2 PLoS One. 2017; 12(5): e0177459.

Slide 3

Slide 3 text

DockerとSingularity • 大きな違いはroot不要(弱点でもある) 2023/12/16 Rの研究集会2023@統計数理研究所 3

Slide 4

Slide 4 text

さまざまなスパコンがSingularity環境を サポート(root不要のメリット) 2023/12/16 Rの研究集会2023@統計数理研究所 4 Dockerだと利用者にrootを奪われる可能性

Slide 5

Slide 5 text

なぜSingularityを使うのか • ヒト試料(ゲノム/腸内細菌)→個人情報→閉鎖環境での解析処理 • 閉鎖環境では解析環境やデータベース導入困難 • 手元のLinux環境でSingularityイメージ構築し転送 • 本イメージは環境設定に不慣れなwet研究者にとっても福音のはず • Singularityイメージの中身 • Jupyter Lab と様々なデータサイエンスパッケージ • 定番のバイオインフォマティクスツール • BLAST、HMMER、PLINK、ANNOVAR、RとBioconductor、 • 配列データベース • LLM (LoRA、RWKV、phi-2…) 2023/12/16 Rの研究集会2023@統計数理研究所 5

Slide 6

Slide 6 text

なぜJupyter Labをベースにするか • Rが使える • パッケージのインストールにバリエーション • ソース、Ubuntuバイナリ、(bio)conda (r-xxxx, bioconductor-xxxx) • vignetteの表示が変 / df_Summaryの表示が崩れる • もちろんPythonも使えGPUベースの深層学習が利用できる • Rpy2を使うとRとPythonのコードがセル単位で同一ページに混在可 • WebブラウザがあればJupyter Labが使える • Jupyter Labでコンソールが使える • ブラウザ利用のみ許可されたシンクライアントでの利用など • Singularity起動のオプションで対話的か否かを切り替え可能 • スパコンのジョブシステムでバッチ処理できる 2023/12/16 Rの研究集会2023@統計数理研究所 6

Slide 7

Slide 7 text

Singularityイメージの構築 • 今回はDockerイメージを作成しsingularityに変換 • recipeファイル(singularityでのdockerfileに相当)から直接作成も可 • ベースとなるDockerイメージ候補 • datascience-notebook • 様々なパッケージが入っている • https://github.com/jupyter/docker-stacks • gpu-jupyter • GPU対応のパッケージあるがOSが古い(Ubuntu20.04) • https://github.com/iot-salzburg/gpu-jupyter • 今回はこちらを使用 2023/12/16 Rの研究集会2023@統計数理研究所 7

Slide 8

Slide 8 text

Dockerfileの例 • Dockerファイルを作成 • 一行目はベースイメージ • OSパッケージ導入 • Condaパッケージ導入 • ソースでのインストール • Dockerイメージ作成 • docker build –t XXX . 2023/12/16 Rの研究集会2023@統計数理研究所 8

Slide 9

Slide 9 text

Dockerイメージからsingularityイメージ 作成 2023/12/16 Rの研究集会2023@統計数理研究所 9 ちなみにarcherは 発表者が所属する 部署名の略称です Artificial Intelligence Center for Health and Biomedical Research

Slide 10

Slide 10 text

Singularityの実行方法 • コマンドのようにsifname.sifと入力して実行 • strings sifname.sif | head -1 • #!/usr/bin/env run-singularity • singularity run [--nv] sifname.sif • singularity exec [--nv] sifname.sif /bin/bash 2023/12/16 Rの研究集会2023@統計数理研究所 10

Slide 11

Slide 11 text

Singularityイメージの起動 1 • Singularity run コマンド • --nvオプション使用可能 • トークン認証とパスワード設 定の画面になる 2023/12/16 Rの研究集会2023@統計数理研究所 11

Slide 12

Slide 12 text

Singularityイメージの起動 2 • Singularity exec コマンド • オプション指定可能 • 実行例 • --portでポート指定 • 既ポートとバッティングした場合 は自動インクリメント? • --NotebookApp.passwordでパ スワード指定 • “sha1:XXXX”を与えるべき 2023/12/16 Rの研究集会2023@統計数理研究所 12

Slide 13

Slide 13 text

Singularityイメージの起動 3 • スパコン環境でのジョブコントローラ下でバッチ処理実行 2023/12/16 Rの研究集会2023@統計数理研究所 13

Slide 14

Slide 14 text

バイオデータ解析環境(非R) 2023/12/16 Rの研究集会2023@統計数理研究所 14

Slide 15

Slide 15 text

Jupyter環境での実行例 (locuszoomr) 2023/12/16 Rの研究集会2023@統計数理研究所 15

Slide 16

Slide 16 text

Jupyter環境での実行例 (DiagrammeR) 2023/12/16 Rの研究集会2023@統計数理研究所 16 IJCKG2023 フレイル 健康な状態と要介護状態の中間に位置する心身状態

Slide 17

Slide 17 text

Seuratパッケージ • Rのシングルセル解析パッケージ • シングルセル解析でできることの例 • 空間トランスクリプトーム解析 • 組織内の位置情報を保持したまま遺伝子発現解析を実施 • RNA velocity • 細胞の遺伝子発現の動的な変化を理解し細胞の分化や発生過程を推定 • Seuratパッケージ (https://satijalab.org/seurat/) • Satija Labによって開発および維持されている • R的にエレガントな実装(S4クラスによるカプセル化) • Seuratパッケージのインストール • Jupyterの場合はbioconda (r-seurat)で入れるのが確実? 2023/12/16 Rの研究集会2023@統計数理研究所 17

Slide 18

Slide 18 text

Seuratパッケージの実施例 2023/12/16 Rの研究集会2023@統計数理研究所 18 https://satijalab.org/seurat/archive/v1.2/get_started_v1_2

Slide 19

Slide 19 text

解決(理解)できていない点 • 環境によってRのパッケージが利用できないことがある • インストールはできているがパスが通ってない • .libPathにライブラリのパスを指定 • Recipeファイルからの直接のSingularityイメージ構築 • condaやpipでパッケージをイメージに内包できない • 非rootなのでホームディレクトリにインストールされてしまう • Dockerだと任意のユーザ(Jupyterのjovyanなど)でインストール • 一度dockerでイメージを作りそれからsingularityイメージ作成 • 使用するGPU装置暗号の指定 • singularityの中でのstreamlitの挙動(ポートアサインの問題?) • メモリ管理などの制限事項 2023/12/16 Rの研究集会2023@統計数理研究所 19

Slide 20

Slide 20 text

当日の質疑(発表後の補足含む) 1 • Singularityでもソフトは内包できるのでは(鈴木先生)? • Dockerの場合は、Jovianというユーザを作成して、同ユーザのホーム ディレクトリにパッケージがインストールされ、最後にrootになって イメージが作成されるのでパッケージはイメージに内包されるが、 singularityのrecipeでconda installするとマウントされたホームディ レクトリにパッケージがインストールされsingularityイメージの中に 残らない • 何故Rstudioを使わないのか(中野先生)? • Rstudioだとコンソールが使えない(という認識な)ので、シンクライア ントなどでブラウザしか使えない場合、コマンドベースの処理ができ ないし、バッチ処理ができない。後日、rockerのRstudioを使えば、 PLINKなどR以外のコマンドもベースOSにインストールでき、バッチ 処理もできると思ったが、コンソールで操作できない。 2023/12/16 Rの研究集会2023@統計数理研究所 20

Slide 21

Slide 21 text

当日の質疑(発表後の補足含む) 2 • Streamlitは何に使うのか(瓜生先生)? • Singularityイメージの中にLLMなどを同梱した場合に、それらにアク セスする手段を備えておきたい。CGIは使えるはずだが、Jypyterでそ の検索結果を表示できないのはもったいない。 • Rのインストールパスを明記すればよいのでは(谷村先生)? • Singularityの環境によって、同じSingularityイメージを使っているの に、.libPathにパスがとおっておらず使えない問題について、インス トール時にパスを指定すればいいのではというご指摘を発表後に拝受 し、その通りですねとご返答したが、問題となっているのはmamba installで導入したconda由来のRパッケージの話であり、解決にはいら らないと思われた。 2023/12/16 Rの研究集会2023@統計数理研究所 21

Slide 22

Slide 22 text

補足) Singularityの セキュリティ上のメリット • マルチユーザで使う場合Dockerだとイメージが丸見え • バイナリであっても構成その他は分かってしまう • Singularityイメージは単一ファイル • 権限がないと見えない 2023/12/16 Rの研究集会2023@統計数理研究所 22

Slide 23

Slide 23 text

ご清聴 ありがとうございました 2023/12/16 Rの研究集会2023@統計数理研究所 23