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
2、Dr. Bonoの生命科学データ解析 単行本 – 2017/9/29
アルゴリズムについて学ぶ
コマンドの使い方がイマイチわからないと言う方はこの動画を視聴してみて下さい。分かりやすく説明されています。
1、推奨されるmacの機種
ショットガンのシーケンシングデータは膨大なリード情報から構成されています。そのため、macの性能が低いと処理に非常に時間がかかり、最悪途中で止まってしまいます。よってある程度ハイスペックなmacを用意する必要があります。
まずは自分のmacのスペックを把握しておきましょう。macの左上のリンゴマーク =>このmacについて、をクリックして下さい。以下のようなウィンドウが出てくるはずです。下に私の使っている機種のスクリーンショットを載せました。
mac mini2018のカスタムを使っています。
まず注目すべきはOSのバージョンです。上の機種は10.14のバージョン6です。10.13、10.14、または最新の10.15であれば問題ありませんが、それ以下のバージョンならアップデートを考えて下さい。macのメインサポートは直近3世代のOSで、それ以上古いOSだと一部のツールのインストールに支障が出ます。一方、新しすぎる10.15では古いソフトが動かないリスクもあります。枯れた10.13−10.14あたりをオススメします。
macの機種は新しいほどベターです。私が現在使っているメインマシンはmac mini2018のカスタムです。速度に不満はありません。2011年以降の機種、できれば過去数年以内のモデルを使って下さい。2010年以前のモデルなら黄信号から赤信号に差し掛かっています。もしintel系でない2004年以前のmacintoshをお使いでしたら、それは使えません。15年前のmacintoshと現行macには、大袈裟に言うと自動車のT型フォードとプリウスくらい差があります。古い機種ではまともに計算できません(*3)。
次にメモリに注目して下さい。上の機種は32GBになっています。先ほど説明したように、たくさんのシーケンスデータをメモリにキャッシュして作業を行うため、メモリはどうしても多めに必要です。最低8GB、推奨16GB以上です。大きなデータを扱うなら、メモリは32GB ~ 64GBあっても困りません(重たいツールは128GBくらいあっという間に使い切ります)。
プロセッサはcore i7を選んでください。計算が早く終わります。ちなみにノート向けのcore i7は実際のコア数が少なくて、デスクトップほど性能が出ない可能性があります。Appleストアには対応する知識をもつ専門のスタッフがいますので、Appleストアに行ってスタッフに聞くか、周りの詳しい人に聞いて判断して下さい。
ストレージのタブに切り替えると、その機種のストレージ容量を確認できます。
ストレージ容量は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)。
キーボード、マウス、ディスプレイは別売りです。以前質問がありましたが、バッテリーは内蔵されておりません。小さいですが、デスクトップマシンなので据え置きして使う機種です。ご注意下さい。
(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)。
imac、imac 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と素早くタイプしてください)。
ターミナルを起動したところ
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ならインストールはキャンセルされます。
次にanacondaをインストールする場所(パス)を聞いてきます。-pで指定したパスがデフォルトになっています。Enterを押すとそのパスにインストールされます。
スクリプトを実行しているだけなので、Ctrl + Cを押して終了か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を選択。
-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は外しています。
(以下略)
数えたところ、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を入れます。
またはこちら
https://anaconda.org/bioconda/seqkit
バージョン指定して導入します。
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のところを読んでみます。
なるほど、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
使えるようになりました。使い終わったら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の移動からもジャンプできます。
*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を使う
Mambaforgeもあります。