4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

バイオインフォマティクス関係のトラブルシューティング集(なぐり書き)

Last updated at Posted at 2020-06-10

はじめに

 こんにちは!バイオインフォマティクス系オタク修士学生のroadricefieldです!僕は学部は生物科学科卒で今いる大学院は生物科学専攻なのでプログラミングやコマンドライン操作などはほとんど独学で勉強しました. (冗談抜きで『学校では教えてくれない』)

 さて, 2020年, 僕がいるラボではたくさんの人たちがバイオインフォマティクスを触るようになりました.

 みなさん急に馴染みの無い黒画面に, 右も左もわからない状態(僕も最初はそうでした. そして僕のときは周りに教えてくれる人がいなかった...)でコマンドを打ち込むものですからエラーがラボ内で頻発しています...

 そこでこの記事ではバイオインフォマティクスでよく遭遇するエラーを解決する方法を書きなぐっていこうと思います.

コマンドライン関係

"No such file or directory"

 ファイル指定で打ち間違えとるんや確認してくれ!!!! それから相対パスの参照はあっとるんか? コマンド叩いた位置からcdでその相対パスを指定してちゃんと飛べるんか? そこでも-bash: cd: hoge: No such file or directoryって言われるんやったらパスが間違えとるんやで. 頼むわほんま.

"Command 'hoge' not found"

 コマンドの名前打ち間違えてないか!!?? ちゃんと確認してくれ! 大文字と小文字も間違えたらあかん!!

コマンド名ちゃんと確認して打ち間違えてないのにそんなコマンドは無いって怒られる!!

 落ち着け!! 落ち着いてまずはwhichコマンドを使ってパスが通っとるか確認や. 例えばbamCoverageというコマンドが動かへんとするで. そしたら以下を実行してくれ.

which bamCoverage

 ちゃんとパスが通っとる場合は下のようにその位置が出力される.

/mnt/c/linux_home/tools/deepTools/bin/bamCoverage

 何も出力されへん場合はパスが通ってへんのやわ. パスっていうのはコマンドの実行ファイル(コンピュータ語で書かれた命令文)が入ってるディレクトリのことやな. コンピュータはコマンドを渡されたら登録されとるパスの中から渡されたコマンドと同じ実行ファイルを探し出してそれを読んで命令を実行するんや.

 例に挙げたbamCoveragedeepToolsっていうパッケージの中のコマンドの一つや. たぶんdeepToolsのコマンドの実行ファイルはdeepToolsのフォルダの中のbinっていう名前のディレクトリに入っとる. パッケージにもよるけど実行ファイルはbinっていうディレクトリに集められとることが多い. ここでは$HOME/tools/deepTools/binに実行ファイルがあるとするで. $HOMEはホームディレクトリのことな.

 ホームディレクトリに戻ってくれ. cdコマンドに何も指定せんかったら戻れる. そこで以下を実行してくれ.

vim .bash_profile

 .bash_profileっていうのはパスを書き込んだりするテキストファイルのことや. vimっていうエディタが開くからescキーを押してからiのキーを押してinsert modeにしてくれ. もうすでに何か書いてあるかもしれんけど新しい行に以下のように書いといてくれ.

.bash_profile
PATH=$PATH:$HOME/tools/deepTools/bin

 書けたらもう一回escキーを押して:wqと入力してEnterや. これで保存できた. このあとターミナルを再起動させるか以下のように入力してくれ.

source .bash_profile

 これで.bash_profileへの変更が反映された. これでbamCoverageが動くはずや. bamCoverageって実行してヘルプが出たり「引数が与えられとらへんやんかい!!」とか言ってキレてきたらちゃんとパスが通って使えるようになっとる.

 それから基本的にソフトは全部AnacondaかMinicondaで管理したらめっちゃ楽や. 全部conda installで簡単にインストールできるし, パスを通す必要もない. ワイが書いた以下の記事の最初の方でMinicondaを使った環境構築のやり方を説明してるから参考にしたってや.

 ゼロからはじめるChIP-seq解析

 

プログラムが途中で止まってもてエラーで何か違うプログラムの名前が書いてあるで

 ちゃんとその動かしてるプログラムのRequirements確認したんか?? そのプログラムが依存してる他ののプログラムが入ってない可能性が高い. 例えばsamtoolsとかbedtoolsとか. インストールできたらもう一回試してみてや.

何かFile "hoge.py", line 31, ~ SyntaxError:~ みたいなようわからんエラーが出るんやけど

 出た!エラーの形式的に多分それはPython2系, 3系問題や!!!!この問題は世界を混乱に陥れてるから将来歴史の教科書に載る.

 たぶんそのソフトはPython2系で書かれとるんやと思う. 実はPython2系からPython3のメジャーアップデートされたときに文法が変わりまくってPython2系で書かれたプログラムは基本的にPython3系では動かされへん.

 でも基本的にワイらのコンピュータのPythonは3系や. Python2系の環境を作る必要がある. そこでAnaconda/Minicondaや. どっちかをインストールしてPython2系の仮想環境を作るで.

conda create -n py27 python=2.7

 これはpy27って名前のPython2.7が動く仮想環境を作ってやって意味な. もろもろインストールが終わったら以下を実行や.

conda activate py27

 これでターミナルのユーザー名の左に,

(py27) roadricefield@hogehoge:$

 
みたいな感じでpy27って表示されてたら成功やpython --versionを実行してPythonのバージョンを確認してな.

 元の環境に戻るときは,

conda deactivate

を実行してな. py27の環境でもう一度プログラムを実行してみてほしい. もしかしたらpysamとかPythonのライブラリが必要かもしれんからよくRequirementsを確認してconda installしてくれ. Python2になったら改めて入れなあかんで.

conda activate py27のときに何かエラーが出た人はconda initって実行してからやってみてな.

結果が画面に垂れ流しになってまうんやけど...

 リダイレクトしてくれ!!! 今使っているソフトは結果を標準出力っていうところ, つまり黒画面自体に出力するタイプや. たとえばHOMERのannotatePeaks.plがこのタイプや. こんなふうに結果をテキストファイルに書き込むことができるで.

annotatePeaks.pl Peaksfile.txt mm10 > Results.txt

 これで結果はResults.txtに保存されたで.

今日(2020/06/10)はここまで

 この記事では今後もよくあるトラブルをシュートしていくで!タグも付けとるけどR関係のトラブルも説明していく予定や!期待しててや!!

絶対に肝に銘じてほしいこと

 エラーメッセージでググれ!!!!!!!!!! 大抵のエラーはもうすでに誰かが経験してて対処法をネットに残してくれてることが多い! それこそQiitaや!!! これがあるからワイは今日も研究ができてる. エラーメッセージでググってほしい. さすれば汝は救われん. あとエラーメッセージは最後の最後の文が一番大事な. それでググるんやで! ほな!!

 

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?