Note of Pediatric Surgery

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

LEfSeをインストールする

はじめに

LEfSeとは簡単に言うと多重検定を考慮した解析を行ってくれるツールです。bioBakeryから使うこともできますし、webアプリケーションのGalaxyから使うこともできますが、最近、コチラは不安定なことが多いような気がします。

本当は僕もwebアプリケーションを使用する予定だったのですが、どうしても不安定で開けなかったのでインストールすることにしました。実は昔、インストールを試みて挫折したのですが、なんとかできました。コチラのページの " Step 4: Taxonomic biomarker discovery with LEfSe " を参考に進めていきます。

LEfSeをインストールする

$ hg clone ssh://hg@bitbucket.org/nsegata/lefse

remote: Warning: Permanently added the RSA host key for IP address '10X.192.XXX.X' to the list of known hosts.
remote: Permission denied (publickey).
abort: no suitable response from remote hg!

いきなり洗礼を浴びます。というわけでまずはこのエラーメッセージから片付けていくことにしましょう。

Permanently added the RSA host key for IP address '10X.192.XXX.X' to the list of known hosts.

まずはこのエラーメッセージをググります。すると下記のサイトに辿り着きました。

qiita.com

ssh-keygen -R 10X.192.XXX.X

ここにあるように上記の様に入力するとこのエラーメッセージは表示されなくなりましたが、もう1つが残りますので再度ぐぐります。ちなみにIPの数字はエラーメッセージに合わせて変更して下さいね。

remote: Permission denied (publickey).

Bitbucketに登録するSSHキーを作成する

ここから正解にたどり着くまでが結構大変でした。確か下記のサイトに書いてあったスクリプトを動かしたところ解決しました。結論としては、Bitbucketの自分のアカウントにSSHキーを紐付けしていないことが原因のことのようです。以下ではまずSSHキーを作成するところから始めます。

Permission denied (publickey) - Atlassian Documentation

$ ssh-keygen -t rsa
Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):

すると、上記の様に聞かれますので、自分がわかるような名前をつけておきます。今回はBitbucket用のSSHキーでしたので、Bitbucketと入力しました。

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in Bitbucket.
Your public key has been saved in Bitbucket.pub.

するとパスコードを2回入力することを求められ、それが終わるとSSHキーが作成された旨が記載されます。そこで、一応作成されたことを確認しておきます。

$ vagrant@biobakery:~$ ls -la | grep Bitbucket

-rw-------  1 vagrant vagrant      1766 Oct 31 06:53 Bitbucket
-rw-r--r--  1 vagrant vagrant       399 Oct 31 06:53 Bitbucket.pub

と返ってくると思います。このSSHキーを

$ mkdir -p ~/.ssh
$ mv Bitbucket* ~/.ssh

で " ~/.ssh " に移動させてておきます。

$ eval $(ssh-agent) # ssh-agentを起動
$ ssh-add ~/.ssh/Bitbucket
Enter passphrase for /home/vagrant/.ssh/Bitbucket:  # パスコードを入力する
$ cat ~/.ssh/Bitbucket.pub
ssh-rsa AAAAB3NzaXXXXXXXXX...........

ssh-rsaを含む長いコードをコピーしておきます。

Bitbucketにsshキーを登録する

Bitbucketのヘルプページを参考に以後を進めていきます。まずは自分のアカウントを作成します。ここの説明は簡単ですので割愛します。

右上の自分のアイコンをクリック -> アカウントの管理 -> 左のメニューバーのSSHキー -> 鍵を追加

あとはわかるようにラベルをつけて先程コピーした " ssh-rsa ... " をペーストします。

再度lefseをインストールする

$ hg clone ssh://hg@bitbucket.org/nsegata/lefse

destination directory: lefse
requesting all changes
adding changesets
adding manifests
adding file changes
added 35 changesets with 56 changes to 18 files
updating to branch default
18 files updated, 0 files merged, 0 files removed, 0 files unresolved

インストールしたと思ったらどうやらアップデートされたみたいなので、やはりbioBakeryの中にLEfSeは含まれているのでしょう。


必要なパッケージをインストールする

Rのパッケージをインストールする

LEfSeのインストールマニュアルには

Notice that LEfSe has some additional requirements R libraries: splines, stats4, survival, mvtnorm, modeltools, coin, MASS python libraries: rpy2 (v. 2.1 or higher), numpy, matplotlib (v. 1.0 or higher), argparse

と書いてあります。ということで、まずRのpackageも必要となるので一気にダウンロードしてしまう。UbuntuからRをterminalで起動します。

> install.packages("splines")
> install.packages("stats4")
> install.packages("survival")
> install.packages("mvtnorm")
> install.packages("modeltools")
> install.packages("coin")
> install.packages("MASS")
> install.packages("modeltools")

もしかしたら

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages("mvtnorm") :
  'lib = "/usr/local/lib/R/site-library"' is not writable
Would you like to use a personal library instead?  (y/n)

と聞かれるかもしれないのですが、どうやらyと答えてしまってよいようです。そうすると、

Please select a CRAN mirror for use in this session

と来るので適当にJapanを選ぶとダウンロードとインストールが終了しますので、これでおしまいです。

Pythonのパッケージをインストールする

# rpy2のインストール
$ pip install rpy2

# numpyとmatplotlibのインストール
# scipyは必要ないけどどうせなら一緒に
$ sudo apt-get install python-numpy python-scipy python-matplotlib 

# argparseのインストール
$ pip install argparse

これで必要なすべてのパッケージがインストールできました。