皆さんは、バイオインフォマティクスやRNA-seq解析したいとなったとき何から始めますか?多くの方が、「バイオインフォマティクスやRNA-seq、興味はあるけど何から手をつけたらよいかわからない…」状態なのかなと思います。そんな人に対して私のおすすめは、データ解析環境の用意とコマンドライン操作に慣れておくです。コマンドラインの黒い画面に苦手意識がある方も多いかもしれませんが、バイオインフォマティクスをやる上では難しい操作は一切しないのでご安心ください。
今回は、バイオインフォマティクスやRNA-seq解析をやる上で、最適な解析環境の作り方や基本的なコマンドライン操作について解析します。
また、バイオインフォマティクスがどうしてもMac有利にソフト開発されている観点から、本記事でもMacにおける操作を主に扱います。Windowの方はPowershellで置き換えて読んでいただけると幸いです。
コマンドライン操作や環境構築をして、バイオインフォマティクスやRNA-seq解析を行う第一歩を踏み出しましょう!
macOS Monterey(12.4), クアッドコアIntel Core i7, メモリ32GB
バイオインフォマティクスをやる上で最適な環境とは?
結論から先にいうと、Windowsでもできないことはありませんが、できるならMacを買ったほうが良いです。最低限、以下のスペックのPCがあると良いです。
- 最大CPUコア:8
- CPUチップはM1 or Intel?:まだIntel買っといたほうが無難
- 最大メモリ:16GB
- デスクトップ型orノート型:ノート型でも大丈夫
- ストレージ:500GB
この中だとメモリが一番大事で、あとから増設が難しいことや、バイオインフォ系の処理は仮想化環境を作るdockerと呼ばれるソフトを同時に使うことが多く、dockerはメモリを大きく使うため、8GB程度だとバイオインフォ系の処理を動かしただけで他に何も操作できなくなってしまう状態になってしまいます(解析回しながらパワポ作成、などは重すぎて無理)最低でも16GBがおすすめです。
CPUチップは最新のM1系チップが買いたくかもしれませんが、 バイオインフォ系のツールが対応していない場合や、Intelチップにはない未知のエラーに遭遇する確率が上がり、解決方法をググっても出てこない場合がある。情報が豊富にあるIntelチップのほうが初心者には向いています。
ちなみにストレージに関しては、外付けHDDなどで拡張できるので、この中で行ったら優先順位を下げて良いです。
コマンドライン基本操作
*本記事ではMacのターミナルで動作確認を行うことを想定しております。Windowsの場合は、PowerShellを使って代替ができますが、一部コマンドが機能しない可能性があります。
ディレクトリ位置確認、移動
はじめにpwd
コマンドを叩いてみましょう。~ %はつけないように気をつけてください。
hogehoge@user ~ % pwd
=> /User/hogehoge
現在いるディレクトリが分かります。ディレクトリとはフォルダのことを指します。上の例の場合、Userフォルダの中のhogehogeフォルダの中にいるという意味になります(ちなみにこちらをホームディレクトリと呼びます。)。次にls
コマンドを叩いてみてください。
hogehoge@user ~ % ls
=> Applications Documents Library Music Public sratoolkit.3.0.0-mac64
Desktop Downloads Movies Pictures getting-started
ls
コマンドはフォルダの中に何が入っているかを覗くコマンドになります。User/hogehoge
階層でlsを叩くと、Desktopが見えると思います。
ls -a
コマンドになると、隠しファイル(名前の前に.がついたファイル)が見れるようになります。
hogehoge@user ~ % ls -a
. .Trash .ncbi .zsh_sessions Downloads Pictures
.. .bash_history .viminfo Applications Library Public
.CFUserTextEncoding .docker .vscode Desktop Movies getting-started
.DS_Store .lesshst .zsh_history Documents Music sratoolkit.3.0.0-mac64
次は実際にDesktopに移動してみましょう。移動するときはcdコマンドを用います。
hogehoge@user ~ % cd Desktop
hogehoge@user Desktop %
hogehoge@user ~ → hogehoge@user Desktopになれば成功です。pwdコマンドを叩けば、/User/hogehoge/Desktop
にいることが確認できるかと思います。
一個上の階層(User/hogehoge)にもどる場合は、cd ../
と打ち込めば戻ることができます。
hogehoge@user Desktop % cd ../
hogehoge@user ~ %
cdコマンドで一気にディレクトリの中を移動することも可能です。例えば、デスクトップの中のikraフォルダに移動したいという場合は/でつなげて以下のようにコマンドを叩くと移動できます。
hogehoge@user ~ % cd Desktop/ikra
hogehoge@user ikra %
またcdだけ打ち込むと、ホームディレクトリにどんな位置からでも戻ることができます。
hogehoge@user ikra % cd
hogehoge@user ~ %
ディレクトリ・ファイル作成、削除
mkdir
コマンドでディレクトリを作成することができます。
hogehoge@user ~ % mkdir test
hogehoge@user ~ % cd test
hogehoge@user test %
touch
コマンドでファイルを作成可能です。
hogehoge@user test % touch file1
hogehoge@user test % ls
=> file1
ファイルはrm
コマンドで削除します。
hogehoge@user test % rm file1
hogehoge@user test % ls
=> #何も表示されない
フォルダはrm -r
コマンドで削除します。フォルダを削除するときは一個上の階層にもどってから削除してください。
hogehoge@user ~ % rm -r test
hogehoge@user ~ % ls
=> #何も表示されない
ファイルの中身を閲覧、編集
less
コマンドを使うとファイルの中身が閲覧できます。Desktopで適当なテキストファイルをつくってから、lessコマンドで見てみてください。別の画面に飛ぶと思いますが、q
を押すと戻れます。
hogehoge@user Desktop % less hoge.txt
=>
--------(別画面で)--------
hoge.txtの中身です
vi
コマンドを使うと、ファイルの中身を編集できます。
hogehoge@user Desktop % vi hoge.txt
=>
--------(別画面で)--------
hoge.txtの中身です
別画面に飛んだら、i
を押すと— INSERT — モードになり編集ができるようになります。この状態で編集を行い、escでINSERTモードを解除します。
その後、:wq
と入力するとファイルを保存できます。
権限の確認、付与
コマンド操作をしていると実行結果がpermission denied.と言われる場合が多々あります。これはそのファイルに対する権限がない状態を指します。そのため、権限のないファイルを使用したい場合、ファイルに対して適切な権限を割り振ってあげる必要があります。
ls -l
コマンドを叩いて見てください。
hogehoge@user Desktop % ls -l
total 0
drwx------@ 3 hogehoge staff 96 8 4 07:44 Applications
drwx------+ 6 hogehoge staff 192 8 10 21:27 Desktop
drwx------+ 6 hogehoge staff 192 8 4 07:52 Documents
-rw-r--r-- 1 hogehoge staff 0 8 12 08:22 hoge.txt
---------以下略----------
drwxやら、よくわからない文字列が出てきたと思いますので、その意味を解説します。
最初の1文字目はファイル種別です。dならディレクトリ、-ならファイルを表します。
2文字目から4文字目は所有者に対する権限を表し、
5文字目から7文字目は所有グループに対する権限を表し、
8文字目から10文字目はその他のユーザーに対する権限を表しています。
パーミッションの変更にはchmod
コマンドを使用します。例えばhoge.txtに対して、所有者(u)の実行権限(x)を付与する場合は、chmod u+x hoge.txt
になります。
-rw-r--r-- 1 hogehoge staff 0 8 12 08:22 hoge.txt
hogehoge@user Desktop % chmod u+x hoge.txt
hogehoge@user Desktop % ls -l
-rwxr--r-- 1 koreedatatsuya staff 0 8 12 08:22 hoge.txt
---------以下略----------
ファイルの所有者自体を変更するにはchownコマンドを使います(change ownerの意味)。例えばhoge.txtに対して、所有者をhogehogeからrootにするには、sudo chown root hoge.txt
になります。sudoコマンドはスーパーユーザー権限で実行するという意味で、管理者権限でないと実行できないコマンドを実行する際に使うコマンドです。passwordが求められたら、PCにサインインするときに使っているpasswordを入力してください。
-rwxr--r-- 1 hogehoge staff 0 8 12 08:22 hoge.txt
hogehoge@user Desktop % sudo chown root hoge.txt
hogehoge@user Desktop % ls -l
-rwxr--r-- 1 root staff 0 8 12 08:22 hoge.txt
---------以下略----------
PATHを通すとは?
コマンドライン操作をする上で、PATHを通すという作業が必要になります。PATHはざっくりいうと「ここにデータがありますよ」とコンピューターに記憶させて置くものになります。試しにcdコマンドのPATHを調べてみましょう。where cd
と打ち込んでみてください。
hogehoge@user ~ % where cd
cd: shell built-in command
/usr/bin/cd
上記のような結果が出ましたでしょうか?
これはcdが/usr/bin/cd
にあることを示しています。みなさんが普段cdコマンドを当たり前のように使えるのは、すでにcdコマンドの場所をコンピューターに教え込んであるためです。
ここでは、バイオインフォマティクスで使うsra-toolkitへの設定を通して、PATHの通し方を学びましょう。こちらのサイトより、自身のOSのSRA Toolkitをダウンロードしてください。
https://github.com/ncbi/sra-tools/wiki/01.-Downloading-SRA-Toolkit
sra-toolkitは解凍してUser/hogehoge配下においてください。(Finder の 「移動」のタブをクリックし、コンピュータ > Macintosh HD > ユーザー > hogehoge でたどり着くことができます。)
次に、export PATH=$PATH:$PWD/sratoolkit.3.0.0-mac64/bin
を叩いてみてください。sratoolkitのバージョンが3.0.0ででなければ、適宜バージョン番号を変えてから叩いてください。
hogehoge@user ~ % export PATH=$PATH:$PWD/sratoolkit.3.0.0-mac64/bin
上記のコマンドを叩いても何も文字は表示されません。次にwhere fasterq-dump
を叩いてみましょう。
hogehoge@user ~ % where fasterq-dump
/Users/hogehoge/sratoolkit.3.0.0-mac64/bin/fasterq-dump
上記のような表示になりましたでしょうか?これはsratoolkitまでPATHが通ったことによってsratoolkit配下のfasterq-dumpが使えるようになったことを指します。echo $PATH
と叩くと、設定しているPATHを見ることができます。表示されるPATHは「:」で区切られています。
hogehoge@user ~ % echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/hogehoge/sratoolkit.3.0.0-mac64/bin
たまに使うコマンド
ps
コマンドは実行中のプロセスを確認できます。
hogehoge@user ~ % ps
PID TTY TIME CMD
57822 ttys000 0:00.20 /bin/zsh -l
1783 ttys001 0:00.57 -zsh
56847 ttys003 0:00.21 /bin/zsh -l
df -h
コマンドはディスクの空き容量を確認できます。
hogehoge@user ~ % df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1s1s1 466Gi 22Gi 114Gi 17% 501138 1198997160 0% /
devfs 192Ki 192Ki 0Bi 100% 665 0 100% /dev
/dev/disk1s4 466Gi 5.0Gi 114Gi 5% 5 1198997160 0% /System/Volumes/VM
/dev/disk1s2 466Gi 226Mi 114Gi 1% 373 1198997160 0% /System/Volumes/Preboot
/dev/disk1s6 466Gi 102Mi 114Gi 1% 442 1198997160 0% /System/Volumes/Update
/dev/disk1s5 466Gi 323Gi 114Gi 74% 265203 1198997160 0% /System/Volumes/Data
map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /System/Volumes/Data/home
/dev/disk1s1 466Gi 22Gi 114Gi 17% 502049 1198997160 0% /System/Volumes/Update/mnt1
56847 ttys003 0:00.21 /bin/zsh -l
最後に
いかがだったでしょうか。覚えることがたくさんあって大変と感じるかもしれませんが、バイオインフォマティクスでコマンド使いたいときに、都度この記事を参照いただければ事足りるかと思います。ぜひブックマークして見返せるようにしていただければと思います。