現在のバイオインフォマティクスはUnixの一派であるLinuxを使うことが主流である。 Linuxを使えるようになることで、多くのバイオインフォマティクスのツール(ソフトウェア)を利用できるようになる。
Linuxを使うことのメリットはいくつかある。 まず、ソフトウェアにかかる費用が安いことがあげられる。 バイオインフォマティクスの先端で研究する人達は自分たちでソフトを開発し、それを発表している。 ソフトに対する評価は多くの人が使って便利だと感じることで生じるので、多くの人達に使ってほしいと願って無料で配布していることが多い。 またバイオインフォマティクスで必要となるコンピュータリソースは膨大になることがある。 データの保存だけでなく、多数のコンピュータで計算を分散する時があり、OSにライセンス料が必要な場合はそれが大きくなってしまう。
Linuxは元々コンピュータ好きが集まって作ってきたもので、多くのプログラミング言語を使用することができる。 プログラムを利用することで複雑な計算を繰り返し行うことができ、利用者をコンピュータの前から解き放つことができる。 キーボードからコマンドを入力してコンピュータを操作することはとっつきにくいが、慣れるとマウスやタッチパネルを使用するよりも圧倒的な生産性が生まれる。
この講義ではJupyter notebookのTerminalを通じてLinuxを使用する。
下記に学籍番号を半角大文字で入力し、ログインしてください。
TerminalはLinuxのコンソールを模したソフトウェアである。
NewからTerminalを探し、起動する。
Terminalが起動すると以下のような画面になる。
jovyan@6c07fcf660f0:~$ の部分をプロンプトとよぶ。 これがでているときはユーザーの入力をコンピュータが待っている状態である。
プロンプトはUNIXの環境によって変わる。 今回使用しているシステムでは@まではログイン中のユーザー名、@から:までがコンピュータの識別番号、~ は現在のディレクトリ(後述)を示している。 通常プロンプトは$で終わるが、別の記号が使われる場合もある。
白い縦棒がカーソルで、入力した文字はここに入る。 矢印のキーを使って左右に移動することはできるが、行間(上下)の移動はできない。 マウスを使って移動することはできない。
カーソルの左の文字を消すにはBS(バックスペース)キーを使う。カーソルの右の文字を消す場合にはDELキーを使う。
UNIXはコンピュータに接続された全ての装置(デバイス)をファイルとして扱うようにできている。 そのためファイルシステムを理解し自由に使えることはUNIXを使う上で基礎であると同時に最も重要なことである。
UNIXでは現在作業中のディレクトリという概念が重要である。 作業ディレクトリの変更やファイルへの相対的な位置を自由に扱えることが重要である。
実行例のうち#より右側の部分はそれぞれのコマンドの説明を書いたものなので実際には入力しない。
jovyan@6c07fcf660f0:~$ $ pwd # Bashを起動したディレクトリを調べる /home/jovyan jovyan@6c07fcf660f0:~$ cd .. # # 一つ上のディレクトリに移動 jovyan@6c07fcf660f0:/home$ pwd # 現在のディレクトリを調べる /home jovyan@6c07fcf660f0:/home$ cd jovyan # 前のディレクトリに戻る jovyan@6c07fcf660f0:~$ cd / # ルートディレクトリに移動 jovyan@6c07fcf660f0:/$ ls # 中身を調べる bin dev home lib32 libx32 mnt proc run srv tmp var boot etc lib lib64 media opt root sbin sys usr jovyan@6c07fcf660f0:/$ cd # ホームディレクトリに移動 jovyan@6c07fcf660f0:~$ pwd /home/jovyan
ファイル操作の練習のためにreference.fa.gzをダウンロードし、コンピュータに保存せよ。
ダウンロードしたファイルはJupyterの左のフォルダツリーからリモートのコンピュータに送る。
またはファイルをドラッグ&ドロップ。
jovyan@6c07fcf660f0:~$ ls # ホームディレクトリにあるファイルを示す reference.fa.gz
以降の実行例は各自の作業ディレクトリで行っていると仮定する。 先頭の$はプロンプトを示す。
$ mkdir bioinfo # この講義で使用する作業ディレクトリを作成する $ cp reference.fa.gz bioinfo/ # 送信したファイルを作成したディレクトリにコピーする $ cd bioinfo/ # 作業ディレクトリを変更する
ファイルを受け渡しするときにはコピーにかかる時間を減らすために圧縮するのがよい。 圧縮されたファイルを展開するにはtar gunzip zcat unzipなどのコマンドがある。 圧縮ファイルの形式に応じたコマンドを使用すること。
reference.fa.gzを展開する。 これはgzipで圧縮されているのでgunzipを使用する。
$ gunzip reference.fa.gz $ ls reference.fa # 解凍されたreference.faができる
テキストファイルはcatやlessのコマンドで中身を表示させることができる。 バイナリデータ(音楽や画像や各種アプリケーションソフト専用の形式でつくられたファイル)を表示させるには個別のアプリケーションソフトが必要。
reference.faを見る。
$ cat reference.fa >AT3G27660.1 oleosin 4 TTTATATGTACGTTCTCGTAGACTTATCTCTATATACCCCCTTTAATTTGTTTGCTCTTAGCCTTTACTTTATAGTTTTATATCATATCAATCGACATGGCGAATGTGGATCGTGATCGGCGTGTGCATGTAGACCGTACTGACAAACGTGTTCATCAGCCAAACTACGAAGATGATGTCGGTTTTGGTGGCTATGGCGGTTATGGTGCTGGTTCTGATTATAAGAGTCGCGGCCCCTCCACTAACCAAATCTTGGCACTTATAGCAGGAGTTCCCATTGGTGGCACACTGCTAACCCTAGCTGGACTCACTCTAGCCGGTTCGGTGATCGGCTTGCTAGTCTCCATACCCCTCTTCCTCCTCTTCAGTCCGGTGATAGTCCCGGCGGCTCTCACTATTGGGCTTGCTGTGACGGGAATCTTGGCTTCTGGTTTGTTTGGGTTGACGGGTCTGAGCTCGGTCTCGTGGGTCCTCAACTACCTCCGTGGGACGAGTGATACAGTGCCAGAGCAATTGGACTACGCTAAACGGCGTATGGCTGATGCGGTAGGCTATGCTGGTATGAAGGGAAAAGAGATGGGTCAGTATGTGCAAGATAAGGCTCATGAGGCTCGTGAGACTGAGTTCATGACTGAGACCCATGAGCCGGGTAAGGCCAGGAGAGGCTCATAAGCTAATATAAATTGCGGGAGTCAGTTGGAAACGCGATAAATGTAGTTTTACTTTTATGTCCCAGTTTCTTTCCTCTTTTAAGAATATCTTTGTCTATATATGTGTTCGTTCGTTTTGTCTTGTCCAAATAAAAATCCTTGTTAGTGAAATAAGAAATGAAATAAATATGTTTTCTTTTTTGAGATAACCAGAAATCTCATAC >AT3G27670.1 ARM repeat superfamily protein GAATTAATAATTTTGATTCTCTGAGTTCTTGAATTAATAATTTTGGGTCGGTTCGGTTTCTCTATTATCTTATTGGGCCAAATCGGACGGCCCATTATCTAGCTCCGGCTTATCGGACTTCCTCTTCCCCGGCGCTGTAAATTCCAAGTCCCTCCGTTCACGTCTCCAAACTAGCCGTTGCCTTCTCTCTCTCCAGCCAAAGCGATGGCCTCATACGCTACGTTACTGGAGAAAACTCGCGTACCTCAACCTTCTATACAAAGATTCGCAGTAATCTCCGTCTTCTCCAAGTTACGATCTGCTCCAGAACAATTTGGATCAGAAGCCGAAGCCGGAAGAGAAGCTATCTCCTTCTGCCTCACTTCTGAATCTATCACTGTCGTTGATCAATCCGTTCATGAGCTATGTCGATTAGTATCAGACTCAGTTTTAGACCTCTCTCGTGGTTTGCTAGAACTTCAATCAGCTCTCGAAGGATGCGATTCGAAATTGGTTTCGCTGTTCGTGAAAGGGTTAGGGTTTTTGATTCGTATTGGTTATGAACGGA (以下省略) $ less reference.fa (lessを終了するときはqキーを押す)
$ rm reference.fa # reference.faを削除する $ cd .. # 親ディレクトリへ移動 $ rmdir bioinfo # ディレクトリを削除。ディレクトリが空でないときは削除できない(まとめて消したいときは -rf オプションをつける)。
もう一度最初からコマンドを実行し、bioinfoディレクトリを作成してreference.faを作成せよ。
コマンド名、ファイル名はbashが補完してくれる。そのため完全に入力する必要はない。 TABキーを押すとbashが候補を提示する。候補が一つしかないときはそれが自動的に入力される。
$ less r # less reference.faと入力したい。reference.faの最初の文字を入力したところでTABキーを押す $ less reference.fa # 現在のディレクトリにはreference.faしかないのでそれが補完された。このままEnterキーを押すとlessを実行することができる。
入力したコマンドは矢印キーの上で呼び出すことができる。 上のキーを押して行き過ぎたときには下のキーを押す。
$ # ここでカーソルキーの上を押す $ less reference.fa # 直前に実行したコマンドが表示される。ここでさらに上を押す。 $ cat reference.fa # さらに前のコマンドが表示される。 $ # ここでCtrlを押しながらrキーを押す。 (reverse-i-search)`': # 左のような表示になったら、これまでに入力したコマンドの一部を入力する。leと入力する。 (reverse-i-search)`le': less reference.fa # 実行するコマンドがこれでよければEnterキーを押す。
コマンドの編集を楽にするショートカットが多数存在する。
$ abcdefg # とりあえず何か適当な文字を入力する。 $ abcdefg # cの下にカーソルを合わせる。 $ cdefg # Ctrl + u でカーソル位置より左の文字が消える。 $ cdefg # eの下にカーソルを合わせる。 $ cd # Ctrl + k でカーソル位置より右の文字が消える。 $ cd # Ctrl + a 先頭にカーソルが移動する。 $ cd # Ctrl + e で末尾にカーソルが移動する。