LifeScience Hack

生物系創薬研究者がAI(誇大表示)を手に入れるまでの過程(Python、Deep Learning、ライフサイエンス)

超初心者向け!!RNA-seq解析シリーズ① ターミナルでコマンドラインを使う

自分でRNA-seqの解析をする方法をゼロから書いていきたいと思います。
●「RNA-seq解析は、専門知識がないとできない」
●「RNA-seqの解析は数万/sampleの外注で行う」

と考えている方は結構多いのかと思います。
企業などで研究費が一杯あればそれでいいのかと思いますが、
それだと、

● 公共データベースのRNA-seqデータを解析したい
● 研究費が切迫している

といったときに困ることもあるかと思います。
どんな方でもPCさえあれば、簡単にRNA-seqは解析できるのですが、
馴染みのない人にはハードルが高いかと思います。
実際に私もそうだったので、自分が苦労した点や引っかかった点を詳しく記載することで、
誰でも簡単にRNA-seq解析できるようになれば嬉しいというのが、今回の記事を書く動機です。

ほどほどのPCスペックがあればできるのですが、
それもむずかしいという方には、 Google Colaboratoryを使った方法もシリーズの最後に書きたいと思いますので、
少々お待ち下さい。

では早速、やってみましょう。

なぜターミナルを使うのか

さて、早速ターミナルを起動する前に
「なぜターミナルを使ってRNA-seqの解析をするのか」
を簡単に書きます。

それは、RNA-seqで使うプログラムがターミナル等コマンドを使って動かすプログラムだからです。

ちなみに、
コマンドを入力してプログラムを動作させるインターフェースを
CUI : Character User Interface
マウスなどを操作して視覚的な操作で動作させるインターフェースを
GUI : Graphical User Interface

GUIは私達がいつも使っているソフトですね。
Chromeとかワードとかパワーポイントとか、ほとんど全てがGUIです。
CUIは映画「マトリックス」とかに出てきそうな、ただの文字列を黒い画面に入力しているアレです。

RNA-seq解析ソフトもGUI化されればいいのにと思うと思いますが、
残念ながらされていませんし、今後もされないでしょう。
(何十万もする高価なソフトを買えばGUIのものも手に入りますが...)

それらがGUI化されないのか?ですが、 GUI(Graphic User Interface)化するデメリットを考えると分かりやすいです。

GUI化が手間(人件費とか考えると有料化にする必要)
● 更新の激しい分野でいちいちGUIソフトに対応していると更新が遅れる
GUIを使うことによってマシンリソースが取られる
などなど

これらのデメリットを考えるとわざわざGUI化する必要もないという感じですね。

そして、Macコマンドラインを扱えるのがターミナルであるので、
ターミナルを使います。

ターミナルの起動

それでは、 以下の方法でターミナルを開きます
  Launchpad > その他 > ターミナル

f:id:tottoham:20191117130539p:plain

もし上記方法で見つけられない場合は、
Finder > メニューバーにある「移動」 > アプリケーション > ユーティリティー > ターミナル
これで行けるはずです。

このような画面のアプリが起動すればOK
f:id:tottoham:20191117131530p:plain

ディレクトリの扱い

ディレクトリとは

では、ターミナルでコマンドラインを扱っていきましょう。
プログラミングを全くやったことない人が最初につまづくのが、
フォルダの扱いだと思います。(私がそうでした。)

常にどこかのフォルダの中にいて、そのフォルダの中で作業をしているというイメージです。
完全に独学だったので、これに気づくまでに時間がかかりました。
常に自分がいるフォルダを意識します。 そのフォルダ内のデータを扱い、そのフォルダにデータを保存していきます。
(※自分がいるフォルダとは別のファイルを扱うこともできますが、ここでは省略します。)

また、ターミナルを使う場合はフォルダのことをディレクトと呼びます。

現在のディレクトリを確認

では、まずはターミナルで自分のいるディレクトリを確認しましょう。
現在のディレクトリは pwdで確認できます。
$マークの後ろにpwdと入力してEneterキーを押します。

Last login: Sun Nov 17 13:09:40 on ttys000
(base) PCName:~ UserName$ pwd
/Users/UserName

PC名とUserNameとなっているところは、それぞれのPCで異なります。
これで、現在Usersディレクトリ下のUserName(ここは各自のUserID)ディレクトリ内にいることが分かりました。

ディレクトリ内のフォルダ・ファイルを確認

では、次にディレクトリ内にあるファイルとフォルダを確認します。
$の後ろでlsと入力しEnterキーを押します。

(base) PCName:~ UserName $ ls
Applications            Pictures
Desktop                 Documents               
Public                  Downloads          
Google Drive            Library
Movies                  Music

10個のフォルダがあることが分かりました。
人によってこれらのフォルダは異なることがあります。

ディレクトリの移動

では、次に扱いたいファイルのあるディレクトリへ移動してみましょう。
今回はデスクトップにtestというフォルダがあるとして、そこへ移動してみます。
移動する際は、cd のあとに移動先のフォルダ名を入れます。
その後、pwd コマンドで移動できたか確認しましょう。

(base) PCName:~ UserName $ cd Desktop
(base) PCName:Desktop UserName $ pwd
/Users/UserName/Desktop

ディレクトリが移動できていますね。
お気づきの方もいるかと思いますが、$の部分がディレクトリ移動前は~でしたが、 移動後はDesktopに変わっています。
UserNameの部分でも現在のディレクトリが確認できます。
次に、Desktopにあるtestフォルダに移動します。

(base) PCName:Desktop UserName $ cd test
(base) PCName:test UserName $ pwd
/Users/UserName/Desktop/test

気をつけていただきたいのが、
最初の状態からいきなりcd testと入れても、 testディレクトリには移動できません。
最初の状態、すなわち/Users/UserNameディレクトリにいるときは、
そのディレクトリ内に"testディレクトリ"が存在しないからです。
そのため、一度Desktopに入ってからDesktopディレクトリ内のtestに移動します。
もし、一度に移動したいならディレクトリ名を/でつなげます。

(base) PCName:~ UserName $ pwd
/Users/UserName
(base) PCName:~ UserName $ cd Desktop/test
(base) PCName:test UserName $ pwd
/Users/UserName/Desktop/test

一つ上流のディレクトリ(親ディレクトリ)に移動する方法

次は、現在いるディレクトリの一つ上のディレクトリに移動する方法です。 /Users/UserName/Desktop/testディレクトリ にいた場合、ひとつ前のDesktopに戻ることができます。
cd ..と入力します。
cd..の間は半角スペースが必要です。

(base) PCName:test UserName $ pwd
/Users/UserName/Desktop/test
(base) PCName:test UserName $ cd ..
(base) PCName:Desktop UserName $ pwd
/Users/UserName/Desktop

testの上のフォルダであるDesktopに移動することができました。

おまけ:相対パス絶対パス

最後に相対パス絶対パスについてです。
これまでは、自分のいるディレクトリを意識して、
そこを基準にディレクトリを移動しました。
上の例で行くと、

(base) PCName:~ UserName $ cd Desktop

を実行することで /Users/UserNameから、そのディレクトリ中にあるDesktopを指定し、 /Users/UserName/Desktopに移動できました。
このときの基準は/Users/UserNameで、
自分のいる場所を基準にDesktopとかDesktop/testというパスを書いているのでこれを相対パスといいます。
反対に、どこのディレクトリにいても一発でそこだと指定できるパスを、
絶対パスといいます。 絶対パスは一番前に/を付けることで指定できます。 例えば、/Users/UserName/Desktop はDesktopの絶対パスです。
どのディレクトリにいても、cd /Users/UserName/Desktopと書くことで、
Desktopに移動できるのです。

(base) PCName:~ UserName $ cd /Users/UserName/Desktop

これで、どのディレクトリにいてもDesktopに移動できます。

まとめ

次回はRNA-seq解析に必要な環境設定をしていきたいと思います。

超初心者向け!!RNA-seq解析シリーズ② 環境設定 - LifeScience Hack