バイオインフォマティクス 中部大学2024年秋学期

Linuxを使う

現在のバイオインフォマティクスはUnixの一派であるLinuxを使うことが主流である。 Linuxを使えるようになることで、多くのバイオインフォマティクスのツール(ソフトウェア)を利用できるようになる。

Linuxを使うことのメリットはいくつかある。 まず、ソフトウェアにかかる費用が安いことがあげられる。 バイオインフォマティクスの先端で研究する人達は自分たちでソフトを開発し、それを発表している。 ソフトに対する評価は多くの人が使って便利だと感じることで生じるので、多くの人達に使ってほしいと願って無料で配布していることが多い。 またバイオインフォマティクスで必要となるコンピュータリソースは膨大になることがある。 データの保存だけでなく、多数のコンピュータで計算を分散する時があり、OSにライセンス料が必要な場合はそれが大きくなってしまう。

Linuxは元々コンピュータ好きが集まって作ってきたもので、多くのプログラミング言語を使用することができる。 プログラムを利用することで複雑な計算を繰り返し行うことができ、利用者をコンピュータの前から解き放つことができる。 キーボードからコマンドを入力してコンピュータを操作することはとっつきにくいが、慣れるとマウスやタッチパネルを使用するよりも圧倒的な生産性が生まれる。

講義で使用するJupyterについて

この講義ではJupyter notebookのTerminalを通じてLinuxを使用する。

下記に学籍番号を半角大文字で入力し、ログインしてください。

学籍番号

JupyterのTerminalを使う

TerminalはLinuxのコンソールを模したソフトウェアである。

NewからTerminalを探し、起動する。

Terminalが起動すると以下のような画面になる。

プロンプト

jovyan@6c07fcf660f0:~$ の部分をプロンプトとよぶ。 これがでているときはユーザーの入力をコンピュータが待っている状態である。

プロンプトはUNIXの環境によって変わる。 今回使用しているシステムでは@まではログイン中のユーザー名、@から:までがコンピュータの識別番号、~ は現在のディレクトリ(後述)を示している。 通常プロンプトは$で終わるが、別の記号が使われる場合もある。

カーソル

白い縦棒がカーソルで、入力した文字はここに入る。 矢印のキーを使って左右に移動することはできるが、行間(上下)の移動はできない。 マウスを使って移動することはできない。

カーソルの左の文字を消すにはBS(バックスペース)キーを使う。カーソルの右の文字を消す場合にはDELキーを使う。

UNIXのファイルシステム

UNIXはコンピュータに接続された全ての装置(デバイス)をファイルとして扱うようにできている。 そのためファイルシステムを理解し自由に使えることはUNIXを使う上で基礎であると同時に最も重要なことである。

ディレクトリを移動する

UNIXでは現在作業中のディレクトリという概念が重要である。 作業ディレクトリの変更やファイルへの相対的な位置を自由に扱えることが重要である。

使用するコマンド

cd
ディレクトリを移動する。
pwd
現在のディレクトリを表示する。
ls
ディレクトリに含まれるファイルを表示する。

実行例

実行例のうち#より右側の部分はそれぞれのコマンドの説明を書いたものなので実際には入力しない。

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
ディレクトリを作成する。
cp
ファイルをコピーする。ディレクトリをその中にあるファイルも含めてコピーするときは-rオプションをつけて実行する。
mv
ファイルを移動する。移動後の名前を指定することでファイル名を変更できる。

実行例

以降の実行例は各自の作業ディレクトリで行っていると仮定する。 先頭の$はプロンプトを示す。

$ mkdir bioinfo	# この講義で使用する作業ディレクトリを作成する
$ cp reference.fa.gz bioinfo/	# 送信したファイルを作成したディレクトリにコピーする
$ cd bioinfo/	# 作業ディレクトリを変更する

圧縮ファイルを展開する

ファイルを受け渡しするときにはコピーにかかる時間を減らすために圧縮するのがよい。 圧縮されたファイルを展開するにはtar gunzip zcat unzipなどのコマンドがある。 圧縮ファイルの形式に応じたコマンドを使用すること。

使用するコマンド

tar
Linuxでもっともよく使用されるアーカイバー(archiver)。 ファイルだけでなくディレクトリを含めて一つのファイル(.tar.gz)にまとめることができる。
gunzip
Linuxでもっとも標準的な圧縮形式(gz)を展開できる。 コマンドを単独で使用すると.gzのファイルを展開して.gzがとれたファイルを作成する。
zcat
gzの形式のファイルを変更することなく、展開後のデータを標準出力に出力する。 標準出力についてはこの後説明する。

実行例

reference.fa.gzを展開する。 これはgzipで圧縮されているのでgunzipを使用する。

$ gunzip reference.fa.gz
$ ls
reference.fa	# 解凍されたreference.faができる

ファイルを見る

テキストファイルはcatやlessのコマンドで中身を表示させることができる。 バイナリデータ(音楽や画像や各種アプリケーションソフト専用の形式でつくられたファイル)を表示させるには個別のアプリケーションソフトが必要。

使用するコマンド

cat
テキストファイルを画面に出力する。 複数のファイルを指定するとそれらを連結(concatenate)して出力する。
head
テキストファイルの先頭の一部を表示する。 デフォルトでは先頭の10行を表示する。
tail
テキストファイルの末尾の一部を表示する。 デフォルトでは末尾の10行を表示する。
less
ページャ(pager)と呼ばれるソフトの一つ。 大きなファイルをcatで表示すると画面が流れてしまうのに対し、lessを使うと1画面ごとにとまる。 次のページに移動するにはスペースキーを押す。前のページに戻るときにはbキーを押す。 先頭へはggで、末尾へはGで移動する。終了するためにはqを押す。

実行例

reference.faを見る。

$ cat reference.fa
>AT3G27660.1 oleosin 4
TTTATATGTACGTTCTCGTAGACTTATCTCTATATACCCCCTTTAATTTGTTTGCTCTTAGCCTTTACTTTATAGTTTTATATCATATCAATCGACATGGCGAATGTGGATCGTGATCGGCGTGTGCATGTAGACCGTACTGACAAACGTGTTCATCAGCCAAACTACGAAGATGATGTCGGTTTTGGTGGCTATGGCGGTTATGGTGCTGGTTCTGATTATAAGAGTCGCGGCCCCTCCACTAACCAAATCTTGGCACTTATAGCAGGAGTTCCCATTGGTGGCACACTGCTAACCCTAGCTGGACTCACTCTAGCCGGTTCGGTGATCGGCTTGCTAGTCTCCATACCCCTCTTCCTCCTCTTCAGTCCGGTGATAGTCCCGGCGGCTCTCACTATTGGGCTTGCTGTGACGGGAATCTTGGCTTCTGGTTTGTTTGGGTTGACGGGTCTGAGCTCGGTCTCGTGGGTCCTCAACTACCTCCGTGGGACGAGTGATACAGTGCCAGAGCAATTGGACTACGCTAAACGGCGTATGGCTGATGCGGTAGGCTATGCTGGTATGAAGGGAAAAGAGATGGGTCAGTATGTGCAAGATAAGGCTCATGAGGCTCGTGAGACTGAGTTCATGACTGAGACCCATGAGCCGGGTAAGGCCAGGAGAGGCTCATAAGCTAATATAAATTGCGGGAGTCAGTTGGAAACGCGATAAATGTAGTTTTACTTTTATGTCCCAGTTTCTTTCCTCTTTTAAGAATATCTTTGTCTATATATGTGTTCGTTCGTTTTGTCTTGTCCAAATAAAAATCCTTGTTAGTGAAATAAGAAATGAAATAAATATGTTTTCTTTTTTGAGATAACCAGAAATCTCATAC
>AT3G27670.1 ARM repeat superfamily protein
GAATTAATAATTTTGATTCTCTGAGTTCTTGAATTAATAATTTTGGGTCGGTTCGGTTTCTCTATTATCTTATTGGGCCAAATCGGACGGCCCATTATCTAGCTCCGGCTTATCGGACTTCCTCTTCCCCGGCGCTGTAAATTCCAAGTCCCTCCGTTCACGTCTCCAAACTAGCCGTTGCCTTCTCTCTCTCCAGCCAAAGCGATGGCCTCATACGCTACGTTACTGGAGAAAACTCGCGTACCTCAACCTTCTATACAAAGATTCGCAGTAATCTCCGTCTTCTCCAAGTTACGATCTGCTCCAGAACAATTTGGATCAGAAGCCGAAGCCGGAAGAGAAGCTATCTCCTTCTGCCTCACTTCTGAATCTATCACTGTCGTTGATCAATCCGTTCATGAGCTATGTCGATTAGTATCAGACTCAGTTTTAGACCTCTCTCGTGGTTTGCTAGAACTTCAATCAGCTCTCGAAGGATGCGATTCGAAATTGGTTTCGCTGTTCGTGAAAGGGTTAGGGTTTTTGATTCGTATTGGTTATGAACGGA
(以下省略)

$ less reference.fa
(lessを終了するときはqキーを押す)

ファイルを削除

使用するコマンド

rm
ファイルを削除する。オプションをつけることでありとあらゆるものを削除できるので使用には注意する。 Linuxにはゴミ箱のような機能はないので、rmで削除したファイルは二度と戻らない。
rmdir
ディレクトリを削除する。 ディレクトリは空でないと削除できない。 空でないディレクトリを削除するときは rm -rf directory とする。

実行例

$ rm reference.fa	# reference.faを削除する
$ cd ..	# 親ディレクトリへ移動
$ rmdir bioinfo	# ディレクトリを削除。ディレクトリが空でないときは削除できない(まとめて消したいときは -rf オプションをつける)。

練習

もう一度最初からコマンドを実行し、bioinfoディレクトリを作成してreference.faを作成せよ。

bashの操作

コマンド補完、ファイル名補完

コマンド名、ファイル名は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 で末尾にカーソルが移動する。