自分で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 > その他 > ターミナル
もし上記方法で見つけられない場合は、
Finder > メニューバーにある「移動」 > アプリケーション > ユーティリティー > ターミナル
これで行けるはずです。
このような画面のアプリが起動すればOK
ディレクトリの扱い
ディレクトリとは
では、ターミナルでコマンドラインを扱っていきましょう。
プログラミングを全くやったことない人が最初につまづくのが、
フォルダの扱いだと思います。(私がそうでした。)
常にどこかのフォルダの中にいて、そのフォルダの中で作業をしているというイメージです。
完全に独学だったので、これに気づくまでに時間がかかりました。
常に自分がいるフォルダを意識します。
そのフォルダ内のデータを扱い、そのフォルダにデータを保存していきます。
(※自分がいるフォルダとは別のファイルを扱うこともできますが、ここでは省略します。)
また、ターミナルを使う場合はフォルダのことをディレクトリと呼びます。
現在のディレクトリを確認
では、まずはターミナルで自分のいるディレクトリを確認しましょう。
現在のディレクトリは 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に移動できます。
まとめ
- Macではターミナルを起動することでコマンドラインが扱える
- 現在自分のいるディレクトリを意識することが大事
cd
コマンドでディレクトリの移動ができるls
コマンドでディレクトリ内のファイル一覧を取得できる- パスには相対パスと絶対パスがある
次回はRNA-seq解析に必要な環境設定をしていきたいと思います。