【バイオインフォマティクス】コマンドライン操作の基本【RNA-seq】

【バイオインフォマティクス】コマンドライン操作の基本【RNA-seq】

皆さんは、バイオインフォマティクスや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文字目はその他のユーザーに対する権限を表しています。

https://do-zan.com/mac-terminal-chmod/ より引用

パーミッションの変更には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

最後に

いかがだったでしょうか。覚えることがたくさんあって大変と感じるかもしれませんが、バイオインフォマティクスでコマンド使いたいときに、都度この記事を参照いただければ事足りるかと思います。ぜひブックマークして見返せるようにしていただければと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です