Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Singularity仮想化でバイオデータ解析
Search
HIGUCHI, Chihiro
December 17, 2023
910
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Singularity仮想化でバイオデータ解析
HIGUCHI, Chihiro
December 17, 2023
More Decks by HIGUCHI, Chihiro
See All by HIGUCHI, Chihiro
RでローカルLLM
zgmfx20a
2
750
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
Ethics towards AI in product and experience design
skipperchong
2
300
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
200
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
140
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
220
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
430
Designing Experiences People Love
moore
143
24k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
380
Abbi's Birthday
coloredviolet
2
7.9k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
Prompt Engineering for Job Search
mfonobong
0
330
Claude Code のすすめ
schroneko
67
230k
Transcript
Singularity仮想化で バイオデータ解析 医薬基盤・健康・栄養研究所 東京医科歯科大学 樋口千洋 2023/12/16 Rの研究集会2023@統計数理研究所 1
Singularity仮想化 • Dockerと同じコンテナ仮想化の一種 / サイエンス指向 • ホストのGPUを使用できる 2023/12/16 Rの研究集会2023@統計数理研究所 2
PLoS One. 2017; 12(5): e0177459.
DockerとSingularity • 大きな違いはroot不要(弱点でもある) 2023/12/16 Rの研究集会2023@統計数理研究所 3
さまざまなスパコンがSingularity環境を サポート(root不要のメリット) 2023/12/16 Rの研究集会2023@統計数理研究所 4 Dockerだと利用者にrootを奪われる可能性
なぜSingularityを使うのか • ヒト試料(ゲノム/腸内細菌)→個人情報→閉鎖環境での解析処理 • 閉鎖環境では解析環境やデータベース導入困難 • 手元のLinux環境でSingularityイメージ構築し転送 • 本イメージは環境設定に不慣れなwet研究者にとっても福音のはず •
Singularityイメージの中身 • Jupyter Lab と様々なデータサイエンスパッケージ • 定番のバイオインフォマティクスツール • BLAST、HMMER、PLINK、ANNOVAR、RとBioconductor、 • 配列データベース • LLM (LoRA、RWKV、phi-2…) 2023/12/16 Rの研究集会2023@統計数理研究所 5
なぜ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
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
Dockerfileの例 • Dockerファイルを作成 • 一行目はベースイメージ • OSパッケージ導入 • Condaパッケージ導入 •
ソースでのインストール • Dockerイメージ作成 • docker build –t XXX . 2023/12/16 Rの研究集会2023@統計数理研究所 8
Dockerイメージからsingularityイメージ 作成 2023/12/16 Rの研究集会2023@統計数理研究所 9 ちなみにarcherは 発表者が所属する 部署名の略称です Artificial Intelligence
Center for Health and Biomedical Research
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
Singularityイメージの起動 1 • Singularity run コマンド • --nvオプション使用可能 • トークン認証とパスワード設
定の画面になる 2023/12/16 Rの研究集会2023@統計数理研究所 11
Singularityイメージの起動 2 • Singularity exec コマンド • オプション指定可能 • 実行例
• --portでポート指定 • 既ポートとバッティングした場合 は自動インクリメント? • --NotebookApp.passwordでパ スワード指定 • “sha1:XXXX”を与えるべき 2023/12/16 Rの研究集会2023@統計数理研究所 12
Singularityイメージの起動 3 • スパコン環境でのジョブコントローラ下でバッチ処理実行 2023/12/16 Rの研究集会2023@統計数理研究所 13
バイオデータ解析環境(非R) 2023/12/16 Rの研究集会2023@統計数理研究所 14
Jupyter環境での実行例 (locuszoomr) 2023/12/16 Rの研究集会2023@統計数理研究所 15
Jupyter環境での実行例 (DiagrammeR) 2023/12/16 Rの研究集会2023@統計数理研究所 16 IJCKG2023 フレイル 健康な状態と要介護状態の中間に位置する心身状態
Seuratパッケージ • Rのシングルセル解析パッケージ • シングルセル解析でできることの例 • 空間トランスクリプトーム解析 • 組織内の位置情報を保持したまま遺伝子発現解析を実施 •
RNA velocity • 細胞の遺伝子発現の動的な変化を理解し細胞の分化や発生過程を推定 • Seuratパッケージ (https://satijalab.org/seurat/) • Satija Labによって開発および維持されている • R的にエレガントな実装(S4クラスによるカプセル化) • Seuratパッケージのインストール • Jupyterの場合はbioconda (r-seurat)で入れるのが確実? 2023/12/16 Rの研究集会2023@統計数理研究所 17
Seuratパッケージの実施例 2023/12/16 Rの研究集会2023@統計数理研究所 18 https://satijalab.org/seurat/archive/v1.2/get_started_v1_2
解決(理解)できていない点 • 環境によってRのパッケージが利用できないことがある • インストールはできているがパスが通ってない • .libPathにライブラリのパスを指定 • Recipeファイルからの直接のSingularityイメージ構築 •
condaやpipでパッケージをイメージに内包できない • 非rootなのでホームディレクトリにインストールされてしまう • Dockerだと任意のユーザ(Jupyterのjovyanなど)でインストール • 一度dockerでイメージを作りそれからsingularityイメージ作成 • 使用するGPU装置暗号の指定 • singularityの中でのstreamlitの挙動(ポートアサインの問題?) • メモリ管理などの制限事項 2023/12/16 Rの研究集会2023@統計数理研究所 19
当日の質疑(発表後の補足含む) 1 • Singularityでもソフトは内包できるのでは(鈴木先生)? • Dockerの場合は、Jovianというユーザを作成して、同ユーザのホーム ディレクトリにパッケージがインストールされ、最後にrootになって イメージが作成されるのでパッケージはイメージに内包されるが、 singularityのrecipeでconda installするとマウントされたホームディ
レクトリにパッケージがインストールされsingularityイメージの中に 残らない • 何故Rstudioを使わないのか(中野先生)? • Rstudioだとコンソールが使えない(という認識な)ので、シンクライア ントなどでブラウザしか使えない場合、コマンドベースの処理ができ ないし、バッチ処理ができない。後日、rockerのRstudioを使えば、 PLINKなどR以外のコマンドもベースOSにインストールでき、バッチ 処理もできると思ったが、コンソールで操作できない。 2023/12/16 Rの研究集会2023@統計数理研究所 20
当日の質疑(発表後の補足含む) 2 • Streamlitは何に使うのか(瓜生先生)? • Singularityイメージの中にLLMなどを同梱した場合に、それらにアク セスする手段を備えておきたい。CGIは使えるはずだが、Jypyterでそ の検索結果を表示できないのはもったいない。 • Rのインストールパスを明記すればよいのでは(谷村先生)?
• Singularityの環境によって、同じSingularityイメージを使っているの に、.libPathにパスがとおっておらず使えない問題について、インス トール時にパスを指定すればいいのではというご指摘を発表後に拝受 し、その通りですねとご返答したが、問題となっているのはmamba installで導入したconda由来のRパッケージの話であり、解決にはいら らないと思われた。 2023/12/16 Rの研究集会2023@統計数理研究所 21
補足) Singularityの セキュリティ上のメリット • マルチユーザで使う場合Dockerだとイメージが丸見え • バイナリであっても構成その他は分かってしまう • Singularityイメージは単一ファイル •
権限がないと見えない 2023/12/16 Rの研究集会2023@統計数理研究所 22
ご清聴 ありがとうございました 2023/12/16 Rの研究集会2023@統計数理研究所 23