Note of Pediatric Surgery

腸内細菌、R、ときどき小児外科

Dockerを使ってLEfSeを超簡単に実行する

16S rRNAアンプリコンシーケンシングによる菌叢解析をする際、relative abundanceの群間の検定には、多くの論文でLEfSeが使われています。

galaxyproject.org

LEfSeのインストールは、一昔前はそれなりに大変で、こんな記事を書いたりしたものです。

pediatricsurgery.hatenadiary.jp

久しぶりにローカルで動かそうと思ったのですが、そういえばどこかでDockerイメージができたって書いてあったなと思って、探してみたらありました。

hub.docker.com

ちょっとつまづいたところもありましたが、めちゃくちゃ簡単で感激したので、備忘録を残しておきます。ちなみにDockerとは、この記事あたりがわかりやすいですかね。

qiita.com

Dockerのインストール

Docker for Macこちらからダウンロードして、インストールします。その後、ターミナルで

docker version

と実行して、Dockerがインストールされているか確認します。

DockerでLEfSeを動かす

Dockerで普通にLEfSeを動かすには、ターミナルで

docker run -it biobakery/lefse bash

でいいのですが、自分のMac上で作った.txtファイルを使うことになると思うので、自分のMac (ホスト) とDockerのコンテナでの共有フォルダを作成しておく方がいいと思います。

hodalog.com

こちらを参考すると

docker run -v ホスト側フォルダ:コンテナ側フォルダ ドッカーのイメージ /bin/bash

と指定してdocker runを実行すると、共有フォルタが作成された状態でLEfSeが立ち上がるようですので、下記の通り実行するといいと思います。この前に、ホームディレクトリにDocker/sharedというフォルダを作成しておきます。

docker run -it -v ~/Docker/shared:/shared biobakery/lefse /bin/bash

これでLEfSeにsharedという共有フォルダが作成されていると思います。

sharedのディレクトリに移動して解析を行う

実はここがつまづいた部分で、LEfSeを立ち上げてからすぐ

ls

を実行してもsharedが見つからないんですよね。うまく作成されてないんだと思ってましたが、実はデフォルトの階層よりも上に作成されています

cd ../../
ls

sharedが確認できるので

cd shared

に入ります。このディレクトリに到達できれば、ホスト側で作成したファイルが共有されているので、このファイルを使って、format_input.pyrun_lefse.pyを実行してあげればいいと思います。簡単すぎて腰抜かしました。