Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Singularity仮想化でバイオデータ解析

HIGUCHI, Chihiro
December 17, 2023
750

 Singularity仮想化でバイオデータ解析

HIGUCHI, Chihiro

December 17, 2023
Tweet

Transcript

  1. なぜSingularityを使うのか • ヒト試料(ゲノム/腸内細菌)→個人情報→閉鎖環境での解析処理 • 閉鎖環境では解析環境やデータベース導入困難 • 手元のLinux環境でSingularityイメージ構築し転送 • 本イメージは環境設定に不慣れなwet研究者にとっても福音のはず •

    Singularityイメージの中身 • Jupyter Lab と様々なデータサイエンスパッケージ • 定番のバイオインフォマティクスツール • BLAST、HMMER、PLINK、ANNOVAR、RとBioconductor、 • 配列データベース • LLM (LoRA、RWKV、phi-2…) 2023/12/16 Rの研究集会2023@統計数理研究所 5
  2. なぜ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
  3. 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
  4. Dockerfileの例 • Dockerファイルを作成 • 一行目はベースイメージ • OSパッケージ導入 • Condaパッケージ導入 •

    ソースでのインストール • Dockerイメージ作成 • docker build –t XXX . 2023/12/16 Rの研究集会2023@統計数理研究所 8
  5. 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
  6. Singularityイメージの起動 2 • Singularity exec コマンド • オプション指定可能 • 実行例

    • --portでポート指定 • 既ポートとバッティングした場合 は自動インクリメント? • --NotebookApp.passwordでパ スワード指定 • “sha1:XXXX”を与えるべき 2023/12/16 Rの研究集会2023@統計数理研究所 12
  7. Seuratパッケージ • Rのシングルセル解析パッケージ • シングルセル解析でできることの例 • 空間トランスクリプトーム解析 • 組織内の位置情報を保持したまま遺伝子発現解析を実施 •

    RNA velocity • 細胞の遺伝子発現の動的な変化を理解し細胞の分化や発生過程を推定 • Seuratパッケージ (https://satijalab.org/seurat/) • Satija Labによって開発および維持されている • R的にエレガントな実装(S4クラスによるカプセル化) • Seuratパッケージのインストール • Jupyterの場合はbioconda (r-seurat)で入れるのが確実? 2023/12/16 Rの研究集会2023@統計数理研究所 17
  8. 解決(理解)できていない点 • 環境によってRのパッケージが利用できないことがある • インストールはできているがパスが通ってない • .libPathにライブラリのパスを指定 • Recipeファイルからの直接のSingularityイメージ構築 •

    condaやpipでパッケージをイメージに内包できない • 非rootなのでホームディレクトリにインストールされてしまう • Dockerだと任意のユーザ(Jupyterのjovyanなど)でインストール • 一度dockerでイメージを作りそれからsingularityイメージ作成 • 使用するGPU装置暗号の指定 • singularityの中でのstreamlitの挙動(ポートアサインの問題?) • メモリ管理などの制限事項 2023/12/16 Rの研究集会2023@統計数理研究所 19
  9. 当日の質疑(発表後の補足含む) 1 • Singularityでもソフトは内包できるのでは(鈴木先生)? • Dockerの場合は、Jovianというユーザを作成して、同ユーザのホーム ディレクトリにパッケージがインストールされ、最後にrootになって イメージが作成されるのでパッケージはイメージに内包されるが、 singularityのrecipeでconda installするとマウントされたホームディ

    レクトリにパッケージがインストールされsingularityイメージの中に 残らない • 何故Rstudioを使わないのか(中野先生)? • Rstudioだとコンソールが使えない(という認識な)ので、シンクライア ントなどでブラウザしか使えない場合、コマンドベースの処理ができ ないし、バッチ処理ができない。後日、rockerのRstudioを使えば、 PLINKなどR以外のコマンドもベースOSにインストールでき、バッチ 処理もできると思ったが、コンソールで操作できない。 2023/12/16 Rの研究集会2023@統計数理研究所 20
  10. 当日の質疑(発表後の補足含む) 2 • Streamlitは何に使うのか(瓜生先生)? • Singularityイメージの中にLLMなどを同梱した場合に、それらにアク セスする手段を備えておきたい。CGIは使えるはずだが、Jypyterでそ の検索結果を表示できないのはもったいない。 • Rのインストールパスを明記すればよいのでは(谷村先生)?

    • Singularityの環境によって、同じSingularityイメージを使っているの に、.libPathにパスがとおっておらず使えない問題について、インス トール時にパスを指定すればいいのではというご指摘を発表後に拝受 し、その通りですねとご返答したが、問題となっているのはmamba installで導入したconda由来のRパッケージの話であり、解決にはいら らないと思われた。 2023/12/16 Rの研究集会2023@統計数理研究所 21