アメリエフの技術ブログ

Amelieff Staff Blog

簡単♪環境構築① 入門編

ブログ二本目のh--ishiです.
大型連休も終わり初夏に差し掛かって参りましたが,
暑かったり,寒かったりしますね.
みなさまも,季節の変わり目はお体にはお気をつけください.

さて,今回紹介するのはYAMLファイルを使ったAnacondaでの簡単解析環境構築です.

「削除してしまったあの解析環境を復元したいけど,
いちいちconda installでツールを一からインストールするのも面倒だなあ」

「使用しているツールがバージョンアップしてしまったが,
ツール依存の関係で解析環境を一新しなければならない.
でも,今の解析環境も保存しておきたいなあ」

「複数人で簡単に同じ環境を作りたいけど,共同サーバーとかないなあ」

みたいなシーンがあったかもしれません.
そんな時に便利なのが,AnacondaでのYAMLを用いた環境構築!!

YAMLとは?

YAML(ヤメル,ヤムル)とは...
構造化データやオブジェクトを文字列にシリアライズ(直列化)するための
データ形式の一種.(https://ja.wikipedia.org/wiki/YAML

ん...んん?

なにやら仰々しく書いてありますが,決まったお作法で書かれたテキストファイルです.(今回はこの程度の理解で十分だと思います)

AnacondaとYAMLファイルをつかった解析環境構築

Anacondaではconda env create -n <環境名>で仮想環境を作成して,
conda install <パッケージ名>で解析ツールなどを仮想環境に一つずつインストールすることで解析環境構築ができます.

さらに,Anacondaでは
YAMLファイルを構築したい解析環境の設計図のように用いることができます.
事前にどんなツールを入れるのかを書いたYAMLファイルを
下記コマンドのように-fオプションで参照することで,
conda君が自動的に解析環境の構築をしてくれます.

conda env create -f environmet.yml

「習うより慣れろ!」ということで,さっそくYAMLファイルを使って環境構築していきましょう.

YAMLファイルの作成

早速,YAMLファイルを作成していきます.
conda env createに用いるYAMLファイル(仮にファイル名をtest.ymlとしておきます)の書き方は以下のようになります.

'
name: 'TEST'    # nameには環境名を書く
channels:   # インストール元のチャンネル名を書く
  - r
  - bioconda
  - conda-forge
  - defaults
dependencies:   # depedenciesには'インストールパッケージ'='version'を描く(versionは指定しなくても可)
  - python=3.6
  - hoge=x.x
  - fuga
  pip:  # pipでpythonパッケージをインストールする場合はこのように書く
    - hogehoge
    - fugafuga
'



conda env create!!!

YAMLファイルができたら,できたら解析環境の構築をしましょう!
conda env create -f test.yml
上記コマンド実行後,test.ymlに書いてあるパッケージとその依存ツール・ライブラリの情報を集めてインストールしてくれます.
依存ツールの情報などを集めるために時間がかかるかもしれませんが,下記表示がでたら一応成功です.

<略>
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate test
#
# To deactivate an active environment, use
#
#     $ conda deactivate


作成した環境のエクスポート (作成した環境のYAMLファイルを作る)

今回は最初からYAMLファイルを用いて環境構築をしました.
仮にYAMLファイルを使わずに環境構築をした場合でも,
その環境へconda installでインストールしたツールが記載されたYAMLファイルを下記コマンドでエクスポートできます.
conda env export > out.yml


もし,構築した時に使用したYAMLに何かのパッケージを記載し忘れたとしても,
インストール忘れたパッケージを環境に手動でのインストール後に,
conda env exportを行って最新のYAMLファイルに更新すれば大丈夫です^^b

おまけ:解析環境の再構築

ああああああああああああああああああ!!!
しまった!!!
手が滑ってせっかく作った環境を削除してしまったあああああああ!!!

rm -rf .pyenv/versions/anaconda3-5.1.0/envs/test


そんな時にもYAMLファイルがあれば,簡単に修復可能.
バックアップとしても使えますねb

conda env create -f test.yml


まとめ

  • conda では解析環境の設計図をYAMLファイルに書けば,一つのコマンドで構築可能!
  • YAMLはテキストなので,非常にコンパクトな形でバックアップを取れる!
  • 間違えて環境を削除してしまった,あるいは環境が壊れてしまった場合にもYAMLファイルさえあれば一つのコマンドで修復可能!
  • 次回は今回の内容をつかって,バイオインフォマティクス解析環境を構築してみようと思います!