本日やったこと - pathを綺麗に。pythonインストール


本日の目的

最近結構PCの内部がごちゃごちゃしていて、気持ちが悪かったのと、もう古いPCからのデータが残っていたのを放置していて、PATHなどもぐちゃぐちゃだったというか、よくわからなくなっていたので、綺麗にしようと決意。
というのも、ChIP-seqの解析をmacs2でやろうとしたところ、(こんなウエットな人間にできるわけないというご指摘はごもっともで、間違えもあるかもしれないのですが。)masc2が動かず、調べてみると、python2でないと動かないとのこと。もうこのPCのpythonは何が何だかよくわからなかったので、一度綺麗にしたいと思ってので、ちょうどいいと。

今回は、今後もあると思われる、かつ同じような人がいるかもしれないので、書いてみようと思う。

前提条件 

使用PC; iMAC2014
もう5年ほど使っていて、結構ごちゃごちゃしていた。
昔のMBAからのデータもあったので、それのせいもあって・・・
実際、このPCのpythonは,pyenvでインストールしたものだけで、以下の通り。
* system (set by /Users/UserName/.pyenv/version)
2.7.6
* 3.3.3 (set by /Users/UserName/.pyenv/version)
anaconda3-4.0.0
anaconda3-4.2.0
anaconda3-5.0.1
pypy-2.2.1
tornado-py333

(PATHとは何?とかその辺からちゃんと勉強し直しました。それについては、他の人の記事を見てもらえたら、と思います。)

困っていたこと

1, ターミナルを開くと、

-bash: /Users/氏名A/.bash_profile: Permission denied
-bash: /Users/氏名A/c: Permission denied
-bash: /Users/氏名B/Library/Enthought/Canopy_64bit/User/bin/activate: No such file or directory

というエラーがずっと出ていました。
氏名Aは今ログインしているもので、氏名Bは以前のPCのものと思われますが、もう使用していません。

2, macs2でChIP-seqのデータを解析しようとしたところ、動きませんでした。理由はpython2にしないといけないようですが、僕の環境ではぐちゃぐちゃでよくわかりませんでした。
pyenvというので、2と3を行き来できるらしいのですが、いつもそれを見ながらやって、できませんでした。

解決1

まず、.bash_profileと.bashrcについて、これらが何なのか、についてはネット上にたくさん説明があるので、見てください。
結局のところ、.bashrcは何も書かれていなくていいのでは?ということを学びました。

これらのファイルを変更する方法が結構ややっこしかったので、ちゃんと書いておきます。
というか、結構初心者で、最初ここでつまずいたよ、って思ったので、しっかり書きます笑

まず、ターミナルを開いたとき、すぐにいる場所は、自分のホームディレクトリです(つまり、ファインダで家のマークがついているところ)。
これをファインダに出すのは、
ファインダー→Finder環境設定→サイドバー家のマークにチェックを入れます。
後、私はFinderでフルパス(つまり自分がどの階層にどうやってきたか)を表示させておくと、便利です。
ターミナルを開いて、

$ defaults write com.apple.finder _FXShowPosixPathInTitle -boolean true
$ killall Finder

としたら、Finder上部に見えるようになります。とりあえずは、これで自分がどこにいるのかわかりやすくなったと思います。

ここで、

$ cat .bashrc

としたところ、何かしら書かれていました。これは、ターミナルのカラーを変えるために入れてみたものなのですが、何かしら変なことをしているのかもしれないなーと思いました。
また、

$ cat .bash_profile

をしたところ、
色々かかれていました。これは多分PATHを通すために書かれているのだと思いますが、一度綺麗にしたかったのと、昔の氏名Bの入ったものがあったので、氏名Bのところだけまず消しました。
と簡単に書きましたが、そこが難しかったです。(Vimを使うなど色々書かれているのがありますが、そこまでのレベルではなかったので、まずは、一番簡単と思われる方法でやりました。)

まず、

$ vi ~/.bash_profile

と打ち込むと何か別の画面にいきます。
そこでは
何も書き込めないので、

i

を打ちます。すると変更可能になりました。そこでいらないと思われる氏名Bの箇所を全部消します。
次に、この書き込める状況を抜けるために、escボタンを押します。
そして、

:wq

として保存しました。
.bashrcも同様に、

vi ~/. bashrc 

として、全部消しました。

すると、
-bash: /Users/氏名B/Library/Enthought/Canopy_64bit/User/bin/activate: No such file or directory
こちらは消えましたが、なぜかまだ上二つは残っていました。.bashrcは空なのに・・・と思いながら仕方がないので、
.bash_profileについて、とりあえず、消してしまおう!と考えました。
色々調べて、

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

だけ残しました。
すると綺麗にエラーがなくなりました!!!

ということで長年気持ちが悪かったものは、消えてくれました。

解決2

さて、次は、pythonをいじりたい。ここでもpython2,3どっちがいいとかそういうのはよくわからないが、どっちかでしか動かないソフトがあることは確かなので、仕方がないので、両方を入れることに。
そこで有用そうなのが、pyenv. これを使って、anaconda2,3を入れて使えばいいのでは、と思いました。
これについては
https://qiita.com/nakamura_hikaru/items/639204ee7c7c8cd51a90
を参照して、やりました。

つまずいた点をいくつか。
pyenv にパスを通すというのは、
もう面倒だったので、直接上記方法で、

export PATH="$PYENV_ROOT/bin:$PATH"
export PYENV_ROOT="$HOME/.pyenv"
eval "$(pyenv init -)"

を書き込みました・・・

これでもちゃんと動きました。

次に引っかかったのが、pyenv でanacondaをインストールするところ。
うまく動きません。エラーが出て、

dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.d

となってしまいました。
実際ここをみてみると、そんなファイルはない。。。
しかしlibreadline8はあるので、それの問題らしい。そこで、調べたところ、

ln -s /usr/local/opt/readline/lib/libreadline.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
ln -s /usr/local/opt/readline/lib/libhistory.dylib /usr/local/opt/readline/lib/libhistory.7.dylib

と打ち込んであげると一応うまくいきとあったので、それに従いました。
anaconda2-2019.03
anaconda3-2019.03
があったので、それらをインストール。
そこで気づいたのが、
インストールされているものを見ていたら、
Installed Anaconda2-2019.03-MacOSX-x86_64 to /Users/Username/.pyenv/versions/anaconda2-2019.03

と書かれている。
これは、ここに入るのか!!と気づきました。
僕はHPからダウンロードしたanaconda2,3もあって、それはホームディレクトリの下に入っていたのですが、それとは違うことに気づき、なるほど・・・と。そこで、このフォルダをみてみると、(みてみると書いているのは、Finderの移動→フォルダへ移動→.pyenv)色々いらなそうなものが入っている・・・・
そこで、それらは手動で消しました。
その後、

$ pyenv versions
  system
  2.7.6
  3.3.3
* anaconda2-2019.03 (set by /Users/Username/.pyenv/version)
  anaconda3-2019.03

と確認できました。

バージョンの切り替えも完璧です。

macs2で解析

https://bi.biopapyrus.jp/hts/chipseq/bowtie2-macs2.html
こちらのHPでいつも勉強しているのですが、
MACS2を使用してピークコール、というところでつまずいていたので、
そこからやり直し。

macs2はpipでインストール可能なので、

pip install MACS2

で入りました。

Successfully built MACS2
Installing collected packages: MACS2
Successfully installed MACS2-2.1.2

と表示。

これでやったところ、.r, .narrowpeak, .xls, .bedファイルができました。
一応大丈夫そうですね。