Nabe International | Takeru Boost >> Takeruを回せ! >>

Galaxyをわかりたい!(3) Dockerイメージをカスタマイズして使えるPythonやRStudio

前回までの記事 Galaxyをわかりたい!(1) Galaxyのキホン Galaxyをわかりたい!(2) Galaxyの拡張機能紹介 今回は「Interactive Environment」という便利な機能をご紹介します。

Interactive Environmentとは

「Interactive Environment」は、PythonやRなどのプログラミング言語やその他可視化ツールをGalaxyのUI上で利用できる機能です。特にPythonやRは対話形式でコードを書いて実行したり、GalaxyヒストリーのデータをJupyter/RStudioにインポート/エクスポートすることができます。Galaxy上のツールで解析した結果をインタラクティブに分析したりデータを可視化したりといった作業がGalaxyのUI内で完結できます。 このInteractive Environmentの内部では解析環境 (Pythonの場合はJupyter Notebook、Rの場合はRStudio) が実装されたDockerコンテナを起動し、Galaxy UIと連携させて実行・表示できるようにしています。詳しくはGalaxyの公式ドキュメントにも説明があります。(主に管理者向け)

Interactive Environmentの起動方法

それではGalaxyのUI上での使用方法をご説明していきます。 まずはヒストリーにあるデータをから起動する場合です。ヒストリー上の「Visualize this data」アイコンをクリックします。 中央パネルに表示されたリストから目的の解析環境を選択します。 Jupyterをクリックしてみます。起動まで少し待たされます。 Jupyterが起動しました。

JupyterやRStudioでの基本的な操作

Jupyter Notebook

  • Galaxyのヒストリーから42番のデータをインポートする (get)
handle = open(get(42), 'r')
  • 上記でgetできたデータをpython上で処理します
  • Notebook上で作成したデータをGalaxyのヒストリーに出力する (put)

put('filename.txt')

RStudio

  • Galaxyヒストリーから16番のデータをインポートする
gx_get(16)
  • 上記でインポートしたデータをR上で処理します

  • RStudio上で作成したデータをGalaxyヒストリーに出力する

gx_put("filename.txt")

Dockerコンテナのカスタマイズ例

起動したJupyterやRStudioからはpipやinstall.packages()が利用可能なのでパッケージを追加することができます。 ちょっとした「あのパッケージ使いたいな」に対応することができます。 一方で、よく使うパッケージを予めインストールしたコンテナを作成し、Galaxyに登録して利用することも可能です。

  • コンテナは次のファイルを編集することで登録できます。
/home/galaxy/galaxy/config/plugins/interactive_environments/jupyter/config/allowed_images.yml
  • 例えば次のようにDockerfileを書くことで、SeuratをインストールしたRStudioをつくることができます。
# RStudio container used for Galaxy RStudio Integration

FROM quay.io/erasche/docker-rstudio-notebook:19.05

# Adjust rstudio uid/gid to galaxy server's galaxy uid/gid
RUN sed -i s/1000:1000/11003:11003/ /etc/passwd && \
sed -i s/:1000:/:11003:/ /etc/group && \
chown rstudio.rstudio /home/rstudio -R && \
mv /usr/local/lib/R/etc/Rprofile.site /tmp && \
apt update &&\
apt install -y libpng-dev && \
Rscript -e 'BiocManager::install(c("scater","DropletUtils","multtest","loomR"))' && \
Rscript -e 'install.packages(c("Seurat","dplyr","uwot","Rtsne","tidyverse","cowplot"), repos = "http://cran.us.r-project.org")' && \
Rscript -e 'reticulate::install_miniconda(path = "/home/rstudio/.local/share/r-miniconda")' && \
chown rstudio.rstudio /home/rstudio -R && \
mv /tmp/Rprofile.site /usr/local/lib/R/etc/Rprofile.site

ENV DEBUG=false \
GALAXY_WEB_PORT=10000 \
CORS_ORIGIN=none \
DOCKER_PORT=none \
API_KEY=none \
HISTORY_ID=none \
REMOTE_HOST=none \
GALAXY_URL=none \
RSTUDIO_FULL=1 \
DISABLE_AUTH=true

WORKDIR /import/

EXPOSE 80
Interactive Environmentを使うことで、Galaxyに登録してあるツールだけではできなかったデータ処理や図表作成ができるようになります。 便利な機能ですのでぜひお試しください。