macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

初めてコマンドを使う人向けの解説:その2、ツールをインストールする環境の構築 (mac対象)

2019 10/16 誤字とおかしな文章を修正

2019 10/17,10/18,10/20同上 

2019 10/19 次回について追記

2020 4/9 macの写真を更新

2020 4/29動画リンク追記

2020 5/12 anaconda3.8 ダウンロードリンク追記

2020 7/26 仮想環境追記

 

昨日ツイートしていた通り、次世代シーケンス関連の環境構築について書きます。

 

 最近は様々な場所で初学者向け講習会や勉強会が開催されており、やる気さえあれば確立された解析フローを短期間で学ぶことができるようになっています。このようなブログを読むより、手を実際に動かして五感を活用して学ぶ講習会の方が学習曲線は短くなるはずです。しかし実際には、このブログを書いている私の方にも各方面の研究者の方からツールのインストールができない、動かないという連絡をいただくことが増えています。講習会が増えているのなら、そこで学べるはずです。なぜこのような問い合わせが増えているのでしょうか?この文章をタイプしながら改めて考えていますが、背景には、次世代シーケンスを活用して結果を出したい研究者の数が今も増え続けているが、一方でツールのインストールや細かい使い方のtipsを学ぶ場所や機会が乏しいことが理由にあるのだと考えます。ツールの開発やビルドを日々行なっている方にとっては大きな問題にならない事ですが、そうでない方にとってコマンドラインのツールのインストールは完全に未知の作業です。それにも関わらず、講習会や勉強会に参加しても解析ツールのインストール手順や原理はほとんど学べません。講習会の目的は一般に特定の解析手順を習得する事に重きを置いているためです(講習会などではツールがプリインストールされた主催側のパソコンや計算機サーバにログインして進めます(*1))。また、そもそも企業の研究者の方々にはなかなか講習会の情報が回ってこないのかもしれません。そうなると、暗闇の中で雲を探すようなことになってしまい、正しい手順を学ぶのはより困難になります。このような理由で、ツールのインストール方法について学ぶ機会がほとんどないことが原因で問い合わせが増えているのだと考えています。

 前置きが長くなりました。そこでこの記事は自分のmacにツールをインストールする環境の構築手順について簡単に説明します。そのためには使用しているmacの機種がデータ解析に適しているかが大事です。そこで、遠回りしてまず2019年10月現在に推奨されるmacの機種について書きます。それからツールのインストール環境の構築手順について説明します。

 

  • この記事の対象とする人、対象としない人(scope of this document)

既存のバイオインフォマティクスツールを使ってシーケンシングデータを処理し、結果や洞察を得たいと考えている方の中で、そもそもツールのインストールはどうしたらいいのか分からない、という方が対象となります。バイオインフォの別のクラスタ、例えば核酸やタンパク質の構造解析、相互作用、シミュレーションなどのクラスタのことは全然分かりません。そのような分野の方は初学者でも参考にしないで下さい。またツールの開発環境(各ツールの統合開発環境など)を探している方も対象外になります。ご注意ください。

 

オススメの本。初めてコマンドを使う人向けに分かりやく説明されています。ツールのインストール方法まで記述した本はほとんどないのですが、以下の2冊ではしっかり記述されています。

1、生命科学者のためのDr.Bonoデータ解析実践道場 単行本 – 2019/9/27

f:id:kazumaxneo:20191016152910p:plain

2、Dr. Bonoの生命科学データ解析 単行本 – 2017/9/29

f:id:kazumaxneo:20191016134719p:plain

アルゴリズムについて学ぶ

 

コマンドの使い方がイマイチわからないと言う方はこの動画を視聴してみて下さい。分かりやすく説明されています。

 

 

1、推奨されるmacの機種

 ショットガンのシーケンシングデータは膨大なリード情報から構成されています。そのため、macの性能が低いと処理に非常に時間がかかり、最悪途中で止まってしまいます。よってある程度ハイスペックなmacを用意する必要があります。

まずは自分のmacのスペックを把握しておきましょう。macの左上のリンゴマーク =>このmacについて、をクリックして下さい。以下のようなウィンドウが出てくるはずです。下に私の使っている機種のスクリーンショットを載せました。

f:id:kazumaxneo:20191016153626p:plain

mac mini2018のカスタムを使っています。

f:id:kazumaxneo:20191016153658p:plain

まず注目すべきはOSのバージョンです。上の機種は10.14のバージョン6です。10.13、10.14、または最新の10.15であれば問題ありませんが、それ以下のバージョンならアップデートを考えて下さい。macのメインサポートは直近3世代のOSで、それ以上古いOSだと一部のツールのインストールに支障が出ます。一方、新しすぎる10.15では古いソフトが動かないリスクもあります。枯れた10.13−10.14あたりをオススメします。

 

f:id:kazumaxneo:20191016153734p:plain

macの機種は新しいほどベターです。私が現在使っているメインマシンはmac mini2018のカスタムです。速度に不満はありません。2011年以降の機種、できれば過去数年以内のモデルを使って下さい。2010年以前のモデルなら黄信号から赤信号に差し掛かっています。もしintel系でない2004年以前のmacintoshをお使いでしたら、それは使えません。15年前のmacintoshと現行macには、大袈裟に言うと自動車のT型フォードとプリウスくらい差があります。古い機種ではまともに計算できません(*3)。

 

f:id:kazumaxneo:20191016153800p:plain

次にメモリに注目して下さい。上の機種は32GBになっています。先ほど説明したように、たくさんのシーケンスデータをメモリにキャッシュして作業を行うため、メモリはどうしても多めに必要です。最低8GB、推奨16GB以上です。大きなデータを扱うなら、メモリは32GB ~ 64GBあっても困りません(重たいツールは128GBくらいあっという間に使い切ります)。

 

f:id:kazumaxneo:20191016153757p:plain

プロセッサはcore i7を選んでください。計算が早く終わります。ちなみにノート向けのcore i7は実際のコア数が少なくて、デスクトップほど性能が出ない可能性があります。Appleストアには対応する知識をもつ専門のスタッフがいますので、Appleストアに行ってスタッフに聞くか、周りの詳しい人に聞いて判断して下さい。

 

ストレージのタブに切り替えると、その機種のストレージ容量を確認できます。

f:id:kazumaxneo:20191016120818p:plain

ストレージ容量は500GB以上推奨です。macosはHDDだと非常に重くなってしまうので、出来るだけフラッシュストレージを選んで下さい。macはフラッシュストレージの性能を重要視しており、高品質のパーツを使っています。容量は多めにしておくと後悔がありません。

 

 これらの事を考えると、2019年10月現在の推奨買い替え機種はmac mini 2018モデルです。パーツを細かくカスタムできるのが魅力で、DDR4 32GB、SSD 512GB、core i7、10Gb Ethernetあたりを選んでも20万円くらいで購入できます。物価上昇もあって昔より随分高くなりましたが、それでも同等性能の他の機種と比べるとリーズナブルです。また、背面にたくさんのポートがついており、拡張性の高さも魅力の1つです(*4)。USB type-Aの外付けHDDもtype-Cの外付けHDDも繋げます。HDMI2.0もついており、標準で4Kディスプレイもサポートしています(4kで繋ぐには別売りのHDMI2.0対応HDMIケーブルが必要)(*8)。

Mac mini - Apple(日本)

f:id:kazumaxneo:20200409161307p:plain

 キーボード、マウス、ディスプレイは別売りです。以前質問がありましたが、バッテリーは内蔵されておりません。小さいですが、デスクトップマシンなので据え置きして使う機種です。ご注意下さい。

 

(2020 10/6追記)もう少し資金の融通がきくなら、iMacも良い選択肢になります。オプションで10コアCPUモデルを選べるためmac miniより高速です。メモリも公式で128GB詰めます(2014年当初は5K描画がきつかったため推奨できなかったが、現在は問題ない)。ストレージは最低512GB以上のSSDを選んで下さい。サイズは27インチ推奨です。

持ち運ぶならラップトップマシンから選ぶ事になります。機種はできる限りmacbook proを選んでください(*9)。フットプリントが小さく軽い方が良ければ、13インチのメモリ16GB、SSD512GB以上、corei7モデルをオススメします。予算に余裕があれば32GBメモリ、1TB~2TB SSDを推奨します。性能や画面の大きさを重視するなら、16インチのメモリ16-64GB (32GB以上推奨)、SSD 512GB以上 (1TB以上推奨)、corei7-corei9モデルが良いでしょう(*2)。

16インチMacBook Pro - Apple(日本)

f:id:kazumaxneo:20200409161204p:plain

imacimac pro、mac proも要件は同じです。ここではGPUのことは触れません。

もっと高性能な計算機を考えておられるなら、macだと非常に高くつきます。Linuxの計算機サーバーを考えて下さい。

 

2、環境構築

実は色々な方法があり、どんなツールも動く万能な環境はありません。ですが、2019年現在で最も活発なバイオインフォ向けコミュニティとしてBiocondaコミュニティがあり、この仕組みを利用するのがおそらくベストです。Biocondaコミュニティの継続的な取り組みにより、最新のツールがすぐに動作する状態でクラウドに維持されており(*14)、、大半のツールをコマンド1つでインストールできるからです(Biocondaは次世代関係のツールに強く、主要なツールが網羅されています)。そこで、この記事ではAnaconda社 (link)の提供しているanacondaディストリビューションを選択することにします。anacondaを入れ、ツールをインストールして使うまでの手順を学びます。時間は1時間程度かかります。pyenvと組みわせてもいいのですが、pyenvは全て支配下に置く強欲な面があるので、ライブラリのパス関係でトラブルが出ることがあります。

  

2.1 では始めましょう。最初にAnaconda/Minicondaをダウンロードします。GUI版が必要ないなら以下の手順でいけます。まずターミナルを起動します。アプリケーション(commnad + shift + A)=>ユーティリティにあります(tips: 該当フォルダでキーを押すと素早くジャンプできます。airMacならaiと素早くタイプしてください)。

ターミナルを起動したところ

f:id:kazumaxneo:20191016020023p:plain

 

2.2 以下のコマンドをコピペして下さい。wgetというコマンドを使ってanacondaをインストールするシェルスクリプトをダウンロードします。

#anaconda3を入れる
#mac python3.7,64bit
wget https://repo.anaconda.com/archive/Anaconda3-2019.07-MacOSX-x86_64.sh
#linux(x86) python3.7,64bit
wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh


#または容量を節約でき、余計なものも入らないminiconda3を入れる
#mac python3.7,64bit
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh

#linux(x86) python3.7,64bit
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

ダウンロードが終わったら2.3に飛んで下さい。ストレージ容量がほとんど空いていないなら、とりあえずMinicondaを入れるのも手です(*7)。結局あとで色々入れることになるかもしれませんが、取り合えずのディスクスペースは節約できます。

コメント;古いインストーラーはアーカイブから利用できます(リンク)。

 

 捕捉

wgetがないとメッセージが出たら、wgetを"curl -O"に変えるか、以下の補足を参考にwgetを導入して下さい。

wgetを先にインストールします。

brew install wget

今度はbrewがないとメッセージが出るかもしれません。その場合、まずhomebrewを導入、次にwgetを入れてきます  (homebrewとは?)。

#homebrewのインストール
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 今度はrubyがないとメッセージが出るかもしれません。その場合は以下をコピペ実行してください。

xcode-select --install

 画面に出る指示に従ってxcodeをインストールして下さい(xcodeとは?)。終わったらもう一度homebrewのインストールのコードを実行し、それからbrew install wgetを実行、最後に2.2のコードを実行して下さい。

=======捕捉はここまで=======

 

 

2.3 まずはヘルプを表示させてみます。

bash Anaconda3-2019.07-MacOSX-x86_64.sh -h

$ bash Anaconda3-2019.07-MacOSX-x86_64.sh -h

 

usage: Anaconda3-2019.07-MacOSX-x86_64.sh [options]

 

Installs Anaconda3 2019.07

 

-b           run install in batch mode (without manual intervention),

             it is expected the license terms are agreed upon

-f           no error if install prefix already exists

-h           print this help message and exit

-p PREFIX    install prefix, defaults to /Users/kazu/anaconda3, must not contain spaces.

-s           skip running pre/post-link/install scripts

-u           update an existing installation

-t           run package tests after installation (may install conda-build)

いくつかのオプションが利用できることが分かりました。ではインストールしていきましょう。

 

2.4  以下のコマンドを実行してAnacondaをインストールします。anacondaはユーザのホームに入れます(*6)。wgetでダウンロードしたanacondaを指定して以下のように打ちます。ここでは私(ユーザ名:kazu)のhomeである/Users/kazu/のanaconda3に入れたいので、-pで/Users/kazu/anaconda3と指定しています。これはなくても大丈夫です。テストもするなら-tもつけて下さい。-uをつけるとすでにあるanaconda3をupdateします。

bash Anaconda3-2019.07-MacOSX-x86_64.sh -t -p 
  • -p <PREFIX>    install prefix, defaults to /Users/kazu/anaconda3, must not contain spaces.
  • -t    run package tests after installation (may install conda-build)
  • -f    no error if install prefix already exists
  • -u   update an existing installation

 

はじめに"Anaconda End User License Agreement"が表示されます。スペースキーなどを押し続けると下に進みます。最後に承認するが聞いてきます。yesとタイプします。noならインストールはキャンセルされます。

f:id:kazumaxneo:20191016152044p:plain

 

次にanacondaをインストールする場所(パス)を聞いてきます。-pで指定したパスがデフォルトになっています。Enterを押すとそのパスにインストールされます。

f:id:kazumaxneo:20191016141245p:plain

スクリプトを実行しているだけなので、CtrlCを押して終了かCtrl + Zを押して一時停止することもできます。一時停止した後の再開は"fg"です。

インストールされるパッケージ一覧が表示されます。計算を高速化するのに欠かせないNumPyやSCiPy、またPandas等も入りますし、seabornやmatplotlib、jupyter notebookなども利用できるようになります。

The following NEW packages will be INSTALLED:

 

  _ipyw_jlab_nb_ext~ pkgs/main/osx-64::_ipyw_jlab_nb_ext_conf-0.1.0-py37_0

  alabaster          pkgs/main/osx-64::alabaster-0.7.12-py37_0

  anaconda           pkgs/main/osx-64::anaconda-2019.07-py37_0

  anaconda-client    pkgs/main/osx-64::anaconda-client-1.7.2-py37_0

  anaconda-navigator pkgs/main/osx-64::anaconda-navigator-1.9.7-py37_0

  anaconda-project   pkgs/main/noarch::anaconda-project-0.8.3-py_0

  appnope            pkgs/main/osx-64::appnope-0.1.0-py37_0

  appscript          pkgs/main/osx-64::appscript-1.1.0-py37h1de35cc_0

  asn1crypto         pkgs/main/osx-64::asn1crypto-0.24.0-py37_0

  astroid            pkgs/main/osx-64::astroid-2.2.5-py37_0

  astropy            pkgs/main/osx-64::astropy-3.2.1-py37h1de35cc_0

  atomicwrites       pkgs/main/osx-64::atomicwrites-1.3.0-py37_1

  attrs              pkgs/main/osx-64::attrs-19.1.0-py37_1

  babel              pkgs/main/noarch::babel-2.7.0-py_0

  backcall           pkgs/main/osx-64::backcall-0.1.0-py37_0

  backports          pkgs/main/noarch::backports-1.0-py_2

  backports.functoo~ pkgs/main/noarch::backports.functools_lru_cache-1.5-py_2

  backports.os       pkgs/main/osx-64::backports.os-0.1.1-py37_0

  backports.shutil_~ pkgs/main/osx-64::backports.shutil_get_terminal_size-1.0.0-py37_2

  backports.tempfile pkgs/main/noarch::backports.tempfile-1.0-py_1

  backports.weakref  pkgs/main/noarch::backports.weakref-1.0.post1-py_1

  beautifulsoup4     pkgs/main/osx-64::beautifulsoup4-4.7.1-py37_1

  bitarray           pkgs/main/osx-64::bitarray-0.9.3-py37h1de35cc_0

  bkcharts           pkgs/main/osx-64::bkcharts-0.2-py37_0

  blas               pkgs/main/osx-64::blas-1.0-mkl

  bleach             pkgs/main/osx-64::bleach-3.1.0-py37_0

  blosc              pkgs/main/osx-64::blosc-1.16.3-hd9629dc_0

  bokeh              pkgs/main/osx-64::bokeh-1.2.0-py37_0

  boto               pkgs/main/osx-64::boto-2.49.0-py37_0

  bottleneck         pkgs/main/osx-64::bottleneck-1.2.1-py37h1d22016_1

  bzip2              pkgs/main/osx-64::bzip2-1.0.8-h1de35cc_0

  ca-certificates    pkgs/main/osx-64::ca-certificates-2019.5.15-0

  certifi            pkgs/main/osx-64::certifi-2019.6.16-py37_0

  cffi               pkgs/main/osx-64::cffi-1.12.3-py37hb5b8e2f_0

  chardet            pkgs/main/osx-64::chardet-3.0.4-py37_1

  click              pkgs/main/osx-64::click-7.0-py37_0

  cloudpickle        pkgs/main/noarch::cloudpickle-1.2.1-py_0

  clyent             pkgs/main/osx-64::clyent-1.2.2-py37_1

  colorama           pkgs/main/osx-64::colorama-0.4.1-py37_0

  conda              pkgs/main/osx-64::conda-4.7.10-py37_0

  conda-build        pkgs/main/osx-64::conda-build-3.18.8-py37_0

  conda-env          pkgs/main/osx-64::conda-env-2.6.0-1

  conda-package-han~ pkgs/main/osx-64::conda-package-handling-1.3.11-py37_0

  conda-verify       pkgs/main/noarch::conda-verify-3.4.2-py_1

  contextlib2        pkgs/main/osx-64::contextlib2-0.5.5-py37_0

  cryptography       pkgs/main/osx-64::cryptography-2.7-py37ha12b0ac_0

  curl               pkgs/main/osx-64::curl-7.65.2-ha441bb4_0

  cycler             pkgs/main/osx-64::cycler-0.10.0-py37_0

  cython             pkgs/main/osx-64::cython-0.29.12-py37h0a44026_0

  cytoolz            pkgs/main/osx-64::cytoolz-0.10.0-py37h1de35cc_0

  dask               pkgs/main/noarch::dask-2.1.0-py_0

  dask-core          pkgs/main/noarch::dask-core-2.1.0-py_0

  dbus               pkgs/main/osx-64::dbus-1.13.6-h90a0687_0

  decorator          pkgs/main/osx-64::decorator-4.4.0-py37_1

  defusedxml         pkgs/main/noarch::defusedxml-0.6.0-py_0

  distributed        pkgs/main/noarch::distributed-2.1.0-py_0

  docutils           pkgs/main/osx-64::docutils-0.14-py37_0

  entrypoints        pkgs/main/osx-64::entrypoints-0.3-py37_0

  et_xmlfile         pkgs/main/osx-64::et_xmlfile-1.0.1-py37_0

  expat              pkgs/main/osx-64::expat-2.2.6-h0a44026_0

  fastcache          pkgs/main/osx-64::fastcache-1.1.0-py37h1de35cc_0

  filelock           pkgs/main/noarch::filelock-3.0.12-py_0

  flask              pkgs/main/noarch::flask-1.1.1-py_0

  freetype           pkgs/main/osx-64::freetype-2.9.1-hb4e5f40_0

  future             pkgs/main/osx-64::future-0.17.1-py37_0

  get_terminal_size  pkgs/main/osx-64::get_terminal_size-1.0.0-h7520d66_0

  gettext            pkgs/main/osx-64::gettext-0.19.8.1-h15daf44_3

  gevent             pkgs/main/osx-64::gevent-1.4.0-py37h1de35cc_0

  glib               pkgs/main/osx-64::glib-2.56.2-hd9629dc_0

  glob2              pkgs/main/noarch::glob2-0.7-py_0

  gmp                pkgs/main/osx-64::gmp-6.1.2-hb37e062_1

  gmpy2              pkgs/main/osx-64::gmpy2-2.0.8-py37h6ef4df4_2

  greenlet           pkgs/main/osx-64::greenlet-0.4.15-py37h1de35cc_0

  h5py               pkgs/main/osx-64::h5py-2.9.0-py37h3134771_0

  hdf5               pkgs/main/osx-64::hdf5-1.10.4-hfa1e0ec_0

  heapdict           pkgs/main/osx-64::heapdict-1.0.0-py37_2

  html5lib           pkgs/main/osx-64::html5lib-1.0.1-py37_0

  icu                pkgs/main/osx-64::icu-58.2-h4b95b61_1

  idna               pkgs/main/osx-64::idna-2.8-py37_0

  imageio            pkgs/main/osx-64::imageio-2.5.0-py37_0

  imagesize          pkgs/main/osx-64::imagesize-1.1.0-py37_0

  importlib_metadata pkgs/main/osx-64::importlib_metadata-0.17-py37_1

  intel-openmp       pkgs/main/osx-64::intel-openmp-2019.4-233

  ipykernel          pkgs/main/osx-64::ipykernel-5.1.1-py37h39e3cac_0

  ipython            pkgs/main/osx-64::ipython-7.6.1-py37h39e3cac_0

  ipython_genutils   pkgs/main/osx-64::ipython_genutils-0.2.0-py37_0

  ipywidgets         pkgs/main/noarch::ipywidgets-7.5.0-py_0

  isort              pkgs/main/osx-64::isort-4.3.21-py37_0

  itsdangerous       pkgs/main/osx-64::itsdangerous-1.1.0-py37_0

  jbig               pkgs/main/osx-64::jbig-2.1-h4d881f8_0

  jdcal              pkgs/main/noarch::jdcal-1.4.1-py_0

  jedi               pkgs/main/osx-64::jedi-0.13.3-py37_0

  jinja2             pkgs/main/osx-64::jinja2-2.10.1-py37_0

  joblib             pkgs/main/osx-64::joblib-0.13.2-py37_0

  jpeg               pkgs/main/osx-64::jpeg-9b-he5867d9_2

  json5              pkgs/main/noarch::json5-0.8.4-py_0

  jsonschema         pkgs/main/osx-64::jsonschema-3.0.1-py37_0

  jupyter            pkgs/main/osx-64::jupyter-1.0.0-py37_7

  jupyter_client     pkgs/main/noarch::jupyter_client-5.3.1-py_0

  jupyter_console    pkgs/main/osx-64::jupyter_console-6.0.0-py37_0

  jupyter_core       pkgs/main/noarch::jupyter_core-4.5.0-py_0

  jupyterlab         pkgs/main/osx-64::jupyterlab-1.0.2-py37hf63ae98_0

  jupyterlab_server  pkgs/main/noarch::jupyterlab_server-1.0.0-py_0

  keyring            pkgs/main/osx-64::keyring-18.0.0-py37_0

  kiwisolver         pkgs/main/osx-64::kiwisolver-1.1.0-py37h0a44026_0

  krb5               pkgs/main/osx-64::krb5-1.16.1-hddcf347_7

  lazy-object-proxy  pkgs/main/osx-64::lazy-object-proxy-1.4.1-py37h1de35cc_0

  libarchive         pkgs/main/osx-64::libarchive-3.3.3-h786848e_5

  libcurl            pkgs/main/osx-64::libcurl-7.65.2-h051b688_0

  libcxx             pkgs/main/osx-64::libcxx-4.0.1-hcfea43d_1

  libcxxabi          pkgs/main/osx-64::libcxxabi-4.0.1-hcfea43d_1

  libedit            pkgs/main/osx-64::libedit-3.1.20181209-hb402a30_0

  libffi             pkgs/main/osx-64::libffi-3.2.1-h475c297_4

  libgfortran        pkgs/main/osx-64::libgfortran-3.0.1-h93005f0_2

  libiconv           pkgs/main/osx-64::libiconv-1.15-hdd342a3_7

  liblief            pkgs/main/osx-64::liblief-0.9.0-h2a1bed3_2

  libpng             pkgs/main/osx-64::libpng-1.6.37-ha441bb4_0

  libsodium          pkgs/main/osx-64::libsodium-1.0.16-h3efe00b_0

  libssh2            pkgs/main/osx-64::libssh2-1.8.2-ha12b0ac_0

  libtiff            pkgs/main/osx-64::libtiff-4.0.10-hcb84e12_2

  libxml2            pkgs/main/osx-64::libxml2-2.9.9-hf6e021a_1

  libxslt            pkgs/main/osx-64::libxslt-1.1.33-h33a18ac_0

  llvm-openmp        pkgs/main/osx-64::llvm-openmp-4.0.1-hcfea43d_1

  llvmlite           pkgs/main/osx-64::llvmlite-0.29.0-py37h98b8051_0

  locket             pkgs/main/osx-64::locket-0.2.0-py37_1

  lxml               pkgs/main/osx-64::lxml-4.3.4-py37hef8c89e_0

  lz4-c              pkgs/main/osx-64::lz4-c-1.8.1.2-h1de35cc_0

  lzo                pkgs/main/osx-64::lzo-2.10-h362108e_2

  markupsafe         pkgs/main/osx-64::markupsafe-1.1.1-py37h1de35cc_0

  matplotlib         pkgs/main/osx-64::matplotlib-3.1.0-py37h54f8f79_0

  mccabe             pkgs/main/osx-64::mccabe-0.6.1-py37_1

  mistune            pkgs/main/osx-64::mistune-0.8.4-py37h1de35cc_0

  mkl                pkgs/main/osx-64::mkl-2019.4-233

  mkl-service        pkgs/main/osx-64::mkl-service-2.0.2-py37h1de35cc_0

  mkl_fft            pkgs/main/osx-64::mkl_fft-1.0.12-py37h5e564d8_0

  mkl_random         pkgs/main/osx-64::mkl_random-1.0.2-py37h27c97d8_0

  mock               pkgs/main/osx-64::mock-3.0.5-py37_0

  more-itertools     pkgs/main/osx-64::more-itertools-7.0.0-py37_0

  mpc                pkgs/main/osx-64::mpc-1.1.0-h6ef4df4_1

  mpfr               pkgs/main/osx-64::mpfr-4.0.1-h3018a27_3

  mpmath             pkgs/main/osx-64::mpmath-1.1.0-py37_0

  msgpack-python     pkgs/main/osx-64::msgpack-python-0.6.1-py37h04f5b5a_1

  multipledispatch   pkgs/main/osx-64::multipledispatch-0.6.0-py37_0

  navigator-updater  pkgs/main/osx-64::navigator-updater-0.2.1-py37_0

  nbconvert          pkgs/main/noarch::nbconvert-5.5.0-py_0

  nbformat           pkgs/main/osx-64::nbformat-4.4.0-py37_0

  ncurses            pkgs/main/osx-64::ncurses-6.1-h0a44026_1

  networkx           pkgs/main/noarch::networkx-2.3-py_0

  nltk               pkgs/main/osx-64::nltk-3.4.4-py37_0

  nose               pkgs/main/osx-64::nose-1.3.7-py37_2

  notebook           pkgs/main/osx-64::notebook-6.0.0-py37_0

  numba              pkgs/main/osx-64::numba-0.44.1-py37h6440ff4_0

  numexpr            pkgs/main/osx-64::numexpr-2.6.9-py37h7413580_0

  numpy              pkgs/main/osx-64::numpy-1.16.4-py37hacdab7b_0

  numpy-base         pkgs/main/osx-64::numpy-base-1.16.4-py37h6575580_0

  numpydoc           pkgs/main/noarch::numpydoc-0.9.1-py_0

  olefile            pkgs/main/osx-64::olefile-0.46-py37_0

  openpyxl           pkgs/main/noarch::openpyxl-2.6.2-py_0

  openssl            pkgs/main/osx-64::openssl-1.1.1c-h1de35cc_1

  packaging          pkgs/main/osx-64::packaging-19.0-py37_0

  pandas             pkgs/main/osx-64::pandas-0.24.2-py37h0a44026_0

  pandoc             pkgs/main/osx-64::pandoc-2.2.3.2-0

  pandocfilters      pkgs/main/osx-64::pandocfilters-1.4.2-py37_1

  parso              pkgs/main/noarch::parso-0.5.0-py_0

  partd              pkgs/main/noarch::partd-1.0.0-py_0

  path.py            pkgs/main/noarch::path.py-12.0.1-py_0

  pathlib2           pkgs/main/osx-64::pathlib2-2.3.4-py37_0

  patsy              pkgs/main/osx-64::patsy-0.5.1-py37_0

  pcre               pkgs/main/osx-64::pcre-8.43-h0a44026_0

  pep8               pkgs/main/osx-64::pep8-1.7.1-py37_0

  pexpect            pkgs/main/osx-64::pexpect-4.7.0-py37_0

  pickleshare        pkgs/main/osx-64::pickleshare-0.7.5-py37_0

  pillow             pkgs/main/osx-64::pillow-6.1.0-py37hb68e598_0

  pip                pkgs/main/osx-64::pip-19.1.1-py37_0

  pkginfo            pkgs/main/osx-64::pkginfo-1.5.0.1-py37_0

  pluggy             pkgs/main/noarch::pluggy-0.12.0-py_0

  ply                pkgs/main/osx-64::ply-3.11-py37_0

  prometheus_client  pkgs/main/noarch::prometheus_client-0.7.1-py_0

  prompt_toolkit     pkgs/main/osx-64::prompt_toolkit-2.0.9-py37_0

  psutil             pkgs/main/osx-64::psutil-5.6.3-py37h1de35cc_0

  ptyprocess         pkgs/main/osx-64::ptyprocess-0.6.0-py37_0

  py                 pkgs/main/osx-64::py-1.8.0-py37_0

  py-lief            pkgs/main/osx-64::py-lief-0.9.0-py37h1413db1_2

  pycodestyle        pkgs/main/osx-64::pycodestyle-2.5.0-py37_0

  pycosat            pkgs/main/osx-64::pycosat-0.6.3-py37h1de35cc_0

  pycparser          pkgs/main/osx-64::pycparser-2.19-py37_0

  pycrypto           pkgs/main/osx-64::pycrypto-2.6.1-py37h1de35cc_9

  pycurl             pkgs/main/osx-64::pycurl-7.43.0.3-py37ha12b0ac_0

  pyflakes           pkgs/main/osx-64::pyflakes-2.1.1-py37_0

  pygments           pkgs/main/noarch::pygments-2.4.2-py_0

  pylint             pkgs/main/osx-64::pylint-2.3.1-py37_0

  pyodbc             pkgs/main/osx-64::pyodbc-4.0.26-py37h0a44026_0

  pyopenssl          pkgs/main/osx-64::pyopenssl-19.0.0-py37_0

  pyparsing          pkgs/main/noarch::pyparsing-2.4.0-py_0

  pyqt               pkgs/main/osx-64::pyqt-5.9.2-py37h655552a_2

  pyrsistent         pkgs/main/osx-64::pyrsistent-0.14.11-py37h1de35cc_0

  pysocks            pkgs/main/osx-64::pysocks-1.7.0-py37_0

  pytables           pkgs/main/osx-64::pytables-3.5.2-py37h5bccee9_1

  pytest             pkgs/main/osx-64::pytest-5.0.1-py37_0

  pytest-arraydiff   pkgs/main/osx-64::pytest-arraydiff-0.3-py37h39e3cac_0

  pytest-astropy     pkgs/main/osx-64::pytest-astropy-0.5.0-py37_0

  pytest-doctestplus pkgs/main/osx-64::pytest-doctestplus-0.3.0-py37_0

  pytest-openfiles   pkgs/main/osx-64::pytest-openfiles-0.3.2-py37_0

  pytest-remotedata  pkgs/main/osx-64::pytest-remotedata-0.3.1-py37_0

  python             pkgs/main/osx-64::python-3.7.3-h359304d_0

  python-dateutil    pkgs/main/osx-64::python-dateutil-2.8.0-py37_0

  python-libarchive~ pkgs/main/osx-64::python-libarchive-c-2.8-py37_11

  python.app         pkgs/main/osx-64::python.app-2-py37_9

  pytz               pkgs/main/noarch::pytz-2019.1-py_0

  pywavelets         pkgs/main/osx-64::pywavelets-1.0.3-py37h1d22016_1

  pyyaml             pkgs/main/osx-64::pyyaml-5.1.1-py37h1de35cc_0

  pyzmq              pkgs/main/osx-64::pyzmq-18.0.0-py37h0a44026_0

  qt                 pkgs/main/osx-64::qt-5.9.7-h468cd18_1

  qtawesome          pkgs/main/osx-64::qtawesome-0.5.7-py37_1

  qtconsole          pkgs/main/noarch::qtconsole-4.5.1-py_0

  qtpy               pkgs/main/noarch::qtpy-1.8.0-py_0

  readline           pkgs/main/osx-64::readline-7.0-h1de35cc_5

  requests           pkgs/main/osx-64::requests-2.22.0-py37_0

  rope               pkgs/main/noarch::rope-0.14.0-py_0

  ruamel_yaml        pkgs/main/osx-64::ruamel_yaml-0.15.46-py37h1de35cc_0

  scikit-image       pkgs/main/osx-64::scikit-image-0.15.0-py37h0a44026_0

  scikit-learn       pkgs/main/osx-64::scikit-learn-0.21.2-py37h27c97d8_0

  scipy              pkgs/main/osx-64::scipy-1.3.0-py37h1410ff5_0

  seaborn            pkgs/main/osx-64::seaborn-0.9.0-py37_0

  send2trash         pkgs/main/osx-64::send2trash-1.5.0-py37_0

  setuptools         pkgs/main/osx-64::setuptools-41.0.1-py37_0

  simplegeneric      pkgs/main/osx-64::simplegeneric-0.8.1-py37_2

  singledispatch     pkgs/main/osx-64::singledispatch-3.4.0.3-py37_0

  sip                pkgs/main/osx-64::sip-4.19.8-py37h0a44026_0

  six                pkgs/main/osx-64::six-1.12.0-py37_0

  snappy             pkgs/main/osx-64::snappy-1.1.7-he62c110_3

  snowballstemmer    pkgs/main/noarch::snowballstemmer-1.9.0-py_0

  sortedcollections  pkgs/main/osx-64::sortedcollections-1.1.2-py37_0

  sortedcontainers   pkgs/main/osx-64::sortedcontainers-2.1.0-py37_0

  soupsieve          pkgs/main/osx-64::soupsieve-1.8-py37_0

  sphinx             pkgs/main/noarch::sphinx-2.1.2-py_0

  sphinxcontrib      pkgs/main/osx-64::sphinxcontrib-1.0-py37_1

  sphinxcontrib-app~ pkgs/main/noarch::sphinxcontrib-applehelp-1.0.1-py_0

  sphinxcontrib-dev~ pkgs/main/noarch::sphinxcontrib-devhelp-1.0.1-py_0

  sphinxcontrib-htm~ pkgs/main/noarch::sphinxcontrib-htmlhelp-1.0.2-py_0

  sphinxcontrib-jsm~ pkgs/main/noarch::sphinxcontrib-jsmath-1.0.1-py_0

  sphinxcontrib-qth~ pkgs/main/noarch::sphinxcontrib-qthelp-1.0.2-py_0

  sphinxcontrib-ser~ pkgs/main/noarch::sphinxcontrib-serializinghtml-1.1.3-py_0

  sphinxcontrib-web~ pkgs/main/noarch::sphinxcontrib-websupport-1.1.2-py_0

  spyder             pkgs/main/osx-64::spyder-3.3.6-py37_0

  spyder-kernels     pkgs/main/osx-64::spyder-kernels-0.5.1-py37_0

  sqlalchemy         pkgs/main/osx-64::sqlalchemy-1.3.5-py37h1de35cc_0

  sqlite             pkgs/main/osx-64::sqlite-3.29.0-ha441bb4_0

  statsmodels        pkgs/main/osx-64::statsmodels-0.10.0-py37h1d22016_0

  sympy              pkgs/main/osx-64::sympy-1.4-py37_0

  tblib              pkgs/main/noarch::tblib-1.4.0-py_0

  terminado          pkgs/main/osx-64::terminado-0.8.2-py37_0

  testpath           pkgs/main/osx-64::testpath-0.4.2-py37_0

  tk                 pkgs/main/osx-64::tk-8.6.8-ha441bb4_0

  toolz              pkgs/main/noarch::toolz-0.10.0-py_0

  tornado            pkgs/main/osx-64::tornado-6.0.3-py37h1de35cc_0

  tqdm               pkgs/main/noarch::tqdm-4.32.1-py_0

  traitlets          pkgs/main/osx-64::traitlets-4.3.2-py37_0

  unicodecsv         pkgs/main/osx-64::unicodecsv-0.14.1-py37_0

  unixodbc           pkgs/main/osx-64::unixodbc-2.3.7-h1de35cc_0

  urllib3            pkgs/main/osx-64::urllib3-1.24.2-py37_0

  wcwidth            pkgs/main/osx-64::wcwidth-0.1.7-py37_0

  webencodings       pkgs/main/osx-64::webencodings-0.5.1-py37_1

  werkzeug           pkgs/main/noarch::werkzeug-0.15.4-py_0

  wheel              pkgs/main/osx-64::wheel-0.33.4-py37_0

  widgetsnbextension pkgs/main/osx-64::widgetsnbextension-3.5.0-py37_0

  wrapt              pkgs/main/osx-64::wrapt-1.11.2-py37h1de35cc_0

  wurlitzer          pkgs/main/osx-64::wurlitzer-1.0.2-py37_0

  xlrd               pkgs/main/osx-64::xlrd-1.2.0-py37_0

  xlsxwriter         pkgs/main/noarch::xlsxwriter-1.1.8-py_0

  xlwings            pkgs/main/osx-64::xlwings-0.15.8-py37_0

  xlwt               pkgs/main/osx-64::xlwt-1.3.0-py37_0

  xz                 pkgs/main/osx-64::xz-5.2.4-h1de35cc_4

  yaml               pkgs/main/osx-64::yaml-0.1.7-hc338f04_2

  zeromq             pkgs/main/osx-64::zeromq-4.3.1-h0a44026_3

  zict               pkgs/main/noarch::zict-1.0.0-py_0

  zipp               pkgs/main/noarch::zipp-0.5.1-py_0

  zlib               pkgs/main/osx-64::zlib-1.2.11-h1de35cc_3

  zstd               pkgs/main/osx-64::zstd-1.3.7-h5bba6e5_0

 

yesを選択。 

f:id:kazumaxneo:20191016141542p:plain

-tをつけておくと、最後にテストが実行され、正常に動作しない可能性があるものを教えてくれます。

 

 

2.5 インストールが無事に終わったらanacondaのパッケージマネージャとしても働く(ツールやライブラリのインストールを自動で実行してくれる)condaコマンドが動くか確かめます。condaと打って下さい。

conda

condaと打ってcondaのヘルプが表示されたら次に行って下さい。そうではなく

$ conda

-bash: conda: command not found

このメッセージが出てしまうなら、source/exportか再起動してcondaのパスを通します。sourceはシェルの設定を反映させるコマンドです。以下のようにします。

source ~/.bashrc 
#または
source ~/.bash_profile

#または以下を実行。.profileもbashrcを読みに行くので同じ
source ~/.profile

これでパスが通るのは、~/.bashrcに以下が追加されているためです。

# >>> conda initialize >>>

# !! Contents within this block are managed by 'conda init' !!

__conda_setup="$('/root/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"

if [ $? -eq 0 ]; then

    eval "$__conda_setup"

else

    if [ -f "/root/miniconda3/etc/profile.d/conda.sh" ]; then

        . "/root/miniconda3/etc/profile.d/conda.sh"

    else

        export PATH="/root/miniconda3/bin:$PATH"

    fi

fi

unset __conda_setup

# <<< conda initialize <<<

赤字のところです。しかもこのパスが最優先指定になっているので(*10)、間違いなくcondaなどが使えます。

 

念の為、パスが通っているか確認しましょう。

echo $PATH

$ echo $PATH

/Users/kazu/anaconda3/bin:/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

/Users/kazu/anaconda3/binが最初にあり最優先で 通ってます。condaコマンドは/Users/kazu/anaconda3/binにあるので、/Users/kazu/anaconda3/binにパスが通っているなら、フルパスで打たなくてもシステムが認識できるわけです。

 

 

2.6    このブログでも度々お世話になっているseqkit(Wei Shenさんが開発)を導入してみます。以下のコマンドを打って下さい。

conda install -c bioconda -y -v seqkit
  • -c   Additional channel to search for packages. These are URLs searched in the order they are given (including file:// for local directories). Then, the defaults or
    channels from .condarc are searched (unless --override-channels is given). You can use 'defaults' to get the default packages for conda. You can also use any name and the .condarc channel_alias value will be prepended. The default channel_alias is http://conda.anaconda.org/.
  • -y   Do not ask for confirmation.
  • -v   Can be used multiple times. Once for INFO, twice for DEBUG, three times for TRACE.
  • -d,  Only display what would have been done.

-yを除くと、インストール前に導入するかしないかyes|noで判断できます。-vを1度つけると細かい情報も画面に出力されます。-dをつけるとドライランできます(実際は導入されないがコンフリクトが起こるかなどインストール時の挙動を確認できる)。この他、conda installの詳細は"conda install -h"を打ってください。

 

 

2.7  インストール後、seqkitと打ってヘルプが出れば成功しています。

seqkit

$ seqkit

SeqKit -- a cross-platform and ultrafast toolkit for FASTA/Q file manipulation

 

Version: 0.11.0

 

導入できています。anaconda のデフォルトやanaconda cloud(link)ではバイナリの各プラットフォーム向けにコンパイルした状態のプログラムが管理されています。biocondaはそのバイオインフォマティクス向けチャネルになります(document)。

わかってきたら、定番のツールを入れてみましょう。 同時に入れることも可能です。

#提供されている最新版を同時に入れる
conda install -c bioconda -y -v samtools bedtools minimap2

#または順番に入れる。
conda install -c bioconda -y -v samtools
conda install -c bioconda -y -v bedtools
conda install -c bioconda -y -v minimap2

samtoolsとかbedtoolsとか打ってヘルプが出れば導入成功しています。

 

 

2.8   インストールされているパッケージはconda listで確認できます。

conda list |grep -n "seqkit"

ここではgrepと組み合わせてseqkitの行のみ表示させます。 

$ conda list |grep -n "seqkit"

229:seqkit                    0.11.0                        0    bioconda

seqkitが出てきます。右端の列にbiocondaとあるので、bioconda チャネルからダウンロードされたことがわかります。 

 

2.8  さて、この方法で様々なツールをインストールできることがわかってきましたが、調子に乗って色々インストールしていると、すぐにコンフリクトが起こるようになります。理由は、各ツールの依存するライブラリや別のツールの要求するバージョンが違うためです。

これを実感するため、バクテリア/アーキア/ウィルスの自動アノテーションを行うことができるツール:prokkaを入れてみます(prokka紹介)。

conda install -c bioconda prokka

実際にはキャンセルするので-yは外しています。

f:id:kazumaxneo:20191016183113p:plain

 (以下略)

数えたところ、215のパッケージがbiocondaやanaconda デフォルトから導入されることがわかりました。prokkaが正常動作するには、これだけのライブラリやツールの助けが必要なわけです。いくつものツールを導入するとき、ライブラリやツールの指定バージョンの違いによる衝突が起こりやすいのが何となくわかっていただけたかと思います。この対策は後に回します(=> 2.12へ)。

 

 

2.9 メタゲノムのcontigを複数ツールでbinningし、binning精度の向上を図るツールmetawrapの導入を試みます(metawrap紹介)。依存が140くらいあり、conda等を使わず普通に入れるとそれなりにしんどいツールです。このmetawrapを導入してみましょう。Githubで必要な条件を確認します。

Dependencyのところに、metawrapはpython2.7と書かれています。つまりこのツールはpythn2.7でないと動かないわけです。ここでanacndaで上書きされたpythonのバージョンをチェックしてみます。

> python --version

$ python --version

Python 3.7.3

3.7.3です。python2系と3系はpirnt関数の扱いからして違うので、python3のコードはpython2環境では動きません。その逆もまた然りです。よってmetawrapを動かしたければpython2.7環境をどうにかして用意しなければいけません。pythonには標準で仮想環境を作るvirtualenvやvenvコマンドが用意されていますが(*11)、anacondaを使っている場合、condaで作成するのがセオリーです。以下のコマンドを実行します。

conda create -n metawrap python=2.7

The following packages will be downloaded:

 

    package                    |            build

    ---------------------------|-----------------

    certifi-2019.9.11          |           py27_0         154 KB

    pip-19.2.3                 |           py27_0         1.9 MB

    python-2.7.16              |       h97142e2_7         9.2 MB

    setuptools-41.4.0          |           py27_0         656 KB

    sqlite-3.30.0              |       ha441bb4_0         2.4 MB

    wheel-0.33.6               |           py27_0          40 KB

    ------------------------------------------------------------

                                           Total:        14.3 MB

 

 

Proceed ([y]/n)? y

聞いてきますので、yと打つと導入されます。

Preparing transaction: done

Verifying transaction: done

Executing transaction: done

#

# To activate this environment, use

#

#     $ conda activate metawrap

#

# To deactivate an active environment, use

#

#     $ conda deactivate

処理が終わっても、仮想環境はまだアクティブになっていません。メッセージにあるようにコマンドを打って仮想環境をアクティブにします。

conda activate metawrap

$ conda activate metawrap

(metawrap) kamisakakazumanoMac-mini:~ kazu$ 

仮想環境に入ると、左端に括弧づけで仮想環境名が表示されます。素晴らしいことに、これだけでpython2.7の専用の環境を作ることができました。

 

では、今いる場所がどうなっているのか、先ほど入れたseqkitと打って確認してみます。  ...どうでしたか?おそらく何も表示されないはずです。何が起こっているのか、環境変数$PATHを確認してみます。

$ echo $PATH

/Users/kazu/anaconda3/envs/metawrap/bin:/Users/kazu/anaconda3/condabin:/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

なるほど、先ほど入れた/Users/kazu/anaconda3/binが/Users/kazu/anaconda3/envs/metawrap/binに切り替わっていますね。他も変化しています。

 

 

2.10   ここが今までのツールのパスが見えない環境とわかったところで、ここに改めてseqkitを入れてみます。seqkitのgithubとbiocondaのseqkitのページでバージョンを確認します。 存在する中で一番古いバージョン0.3.4.1を入れます。

f:id:kazumaxneo:20191016191109p:plain

またはこちら

https://anaconda.org/bioconda/seqkit

f:id:kazumaxneo:20191016203658p:plain

バージョン指定して導入します。

conda install -c bioconda -y -v seqkit==0.3.4.1-0

動作チェック

seqkit

$ seqkit

SeqKit -- a cross-platform and ultrafast toolkit for FASTA/Q file manipulation

 

Version: 0.3.4.1

以下略

 0.3.4.1が入ってます。このように、環境を隔離することで、同じツールの異なるバージョンをコンフリクトなく導入できるというわけです。例えばjellyfishの1系とか古いbowtie2とかも安心して導入できますね。

 

 

2.11 ではmetawrapを入れてみます。

conda install -c bioconda -d -y metawrap

$ conda install -c bioconda -d -y metawrap

Collecting package metadata (current_repodata.json): done

Solving environment: failed with initial frozen solve. Retrying with flexible solve.

Collecting package metadata (repodata.json): done

Solving environment: failed with initial frozen solve. Retrying with flexible solve.

 

PackagesNotFoundError: The following packages are not available from current channels:

 

  - metawrap

 

Current channels:

失敗しました。なぜかというと、metawrapはまだ積極的にbug fixされている途中で、安定板がbiocondaのチャネルに提供されていないためです。Githubのbetter instlationのところを読んでみます。

f:id:kazumaxneo:20191016192326p:plain

なるほど、python2.7の仮想環境を作り、上の順番でチャネル指定し、urskyのチャネルも指定して依存を入れろと書かれています。しかし、よくよく読むとlinux/unix onlyになっています。これは全部ではないにしろ、一部の依存がlinux向けにしかビルド済みでサーバーサイドに用意されていないため起きます(おそらく)。私の場合、この時点でmetawrapをmacで動作させるのはしんどいと判断します(*12)。一旦引くことも時には大事です。

 

 

2.12  気を取り直してprokkaを入れてみます。その前に、今は metawrapの仮想環境にいるので、deactivateして本環境に戻ります。

conda deactivate

では改めて仮想環境名"prokka"を作成し(-n prokka)、同時にbiocondaチャネルからprokkaをインストールします。pythonの特定のバージョンと紐づけて使う必要があるなら python=3.7などでpythonのバージョンも指定します。

conda create -n prokka python=3.7 -c bioconda -y prokka 

#activate
conda activate prokka

> prokka

f:id:kazumaxneo:20191016194843p:plain

使えるようになりました。使い終わったらdeactivateしましょう。

作成した仮想環境の一覧は

conda info -e

で確認できます。

いらなければ削除します。作成したmetawrapを消します。

conda remove --all -n metawrap 

yesで消去。

 

追記

condaはインストールに時間がかかるので、pipにも対応しているパッケージならpipを使った方が早くなります。その場合、pipはcondaの仮想環境に直接対応しているわけではないので、condaで仮想環境を作るときにpython環境を指定して入れておくのが重要です。すなわち、pythonのバージョンを指定して例えば3.8の環境を作ります。

conda create -n test python=3.8 -y
conda activate test

アクティブにすると、python3.8とともにpipも導入されます。pipで導入されたライブラリは仮想環境のパスに置かれるため、本環境を汚染する心配がなくなります。

pip install numpy
pip install biopython

  という感じです。

追記

不要なパッケージやキャッシュを消す(リンク)。

conda clean --all

 前回実行時は不要なキャッシュを削減するだけで10GBほど空き容量を増やすことができた。

 

このように、condaを使ってbicondaチャネルから導入することで様々なツールを簡単に利用できることがわかりました。biocondaコミュニティの取り組みと他の様々なツールの開発者に感謝しつつ、ツールの導入や再現性の担保に活用してください。

 

 

追記

パッケージを色々導入していると、システムディスクの容量をかなり占有してしまうことになります。何を入れたかも分からなくなってきたら、いったん全データを消すのも手です。システムディスクの空き容量を相当回復できます。注意点ですが、論文のデータ取りの最中に行わないでください。多くのツールはバージョンアップしていっているので、新しい環境では結果が変わる可能性があります。それでもどうしても行うなら、環境のenvファイルをexportし、anacondaの消去&再導入後にenvファイルからimportして下さい。

 参考


いったんanacondaを消す。自己責任で行ってください。

rm -rf ~/miniconda3
rm -rf ~/anaconda3

 

mambaを最初から使えるインストーラーもあります。

 

最後に

他にも書きたいことは色々ありますが、今回は環境作りということでここまでにします。冒頭の"この記事の対象とする人"を読まれた上で、あまり良い方法ではないなと思われたらご一報ください。精査して修正します。

 

次回

結構反響をいただいたので、でもう1−2回続けようと思います。今回はRのことを全く書けていないので、次回はR studioかJupyter notebookあたりの簡単な使い方について書きつつ、データ解析を通してRの基本的な使い方を説明できればと思います。ただこのあたりはすでにwebにも良記事がたくさんあるので、googleの cloud genomicsあたりにするかもしれません。まだ未定です。

 

引用

Bioconda: sustainable and comprehensive software distribution for the life sciences.
Grüning B, Dale R, Sjödin A, Chapman BA, Rowe J, Tomkins-Tinch CH, Valieris R, Köster J; Bioconda Team.

Nat Methods. 2018 Jul;15(7):475-476. doi: 10.1038/s41592-018-0046-7.

 

 

*1  参加者のコンピュータはバラバラなので、統一した説明が難しいことが背景にあります。一般的には、説明冒頭のスライドや口頭で簡単に説明するだけではないでしょうか。ちゃんと時間を割いて説明しているとのことでしたらご一報ください。また、もしそのようなスライドを公開されていたらご連絡下さい。ご支障なければリンクを張らさせていただきます。

 

*2  corei9モデルは熱が多く出ます。部屋が暑かったり、長時間計算すると、CPUのクロックが上がらず思ったより性能が出ない場合があります。この背景にも色々あって面白いのですが、記事内容と関係ないので触れません。

 

*3  アランチューリングの映画を見れば計算機の重要性は一目瞭然です。計算機が遅いと暗号解読できず勝負には勝てません(映画wiki)。

 

*4  thunderbolt3(USB-C)に繋げば、高速にデータをやりとりすることが可能です。例えばUSB3.1 type C gen2接続のM.2 SSDケースを買って、そこにmacOSを入れれば、費用を抑えながら本体のストレージ容量を増やすことも可能です。

 

*5  ここではamazonにリンクを張っておりますが、このブログ記事を書いている現在、私はこのブログからいかなる金銭的収入も得ておりません(最初からそのスタンスです。面倒というのも大きいです)。あらかじめご承知おきください。

 

*6  command + shift + Hでショートカットジャンプできるのがユーザのhomeです。Homeの下に、デスクトップをはじめとする各フォルダが配置されています。Finderの移動からもジャンプできます。

f:id:kazumaxneo:20191016135944p:plain

 

*7


*8  5KディスプレイはTB3で繋ぐ。相性に注意。

 

*9  macbookディスコンになっています。macbook airはproよりCPU性能やストレージ性能が劣ります。メモリも不足気味です(ただし新しいモデルはカスタムでメモリを16GBに増設可能)。

 

*10   "/root/miniconda3/bin:$PATH"で$PATHより先にあるので、$PATHより/root/miniconda3/binが優先。こちらを参照して下さい。

 

*11

仮想環境について分かりやすくまとめられています。

 

*12  dockerも用意されていますし、mac上でubuntuのイメージを走らせるのも手ですが、計算スピードはかなり落ちます。日常的に使うならOSネイティブの環境で動かす事をおすすめします。dokcerについては下にリンクを張ったBiocontainer〜やORCAの紹介時に触れています。参考にして下さい。

 

*13   詳しくは以下の記事を読んでください。分かり易く説明されています。

Anaconda は Environment Isolation Tool (環境分離ツール) ではない

 

*14   詳細は2018年の論文を読んでください (pubmed)。Preprintも出ています(link))。ビルド済みのバイナリを引っ張ってくるため、ビルドでコケることなく使えます。

 

追記

 インストール済みのAnacondaを消す。


2020 11/11 追記

apple siliconへの対応も徐々に進みつつあります。

 

 関連

dockerを使う(本環境を汚さずツールを使う)。


 Rのツールをインストールするためのガイド


2021 5/5

Apple siliconのmacなら MiniForgeを使う

Github

Mambaforgeもあります。