簡単!Linuxコマンドでマイクロアレイ解析結果自由自在6

今回も、引き続き、マイクロアレイ解析結果をLinuxコマンドを用いて簡単に操作する方法を紹介していきたいと思います。今回は、端末操作を楽にするコマンドを紹介したいと思います。

端末操作を煩わしく感じるのは、ディレクトリを行き来する際や、同じようなコマンドを何度も入力する時と思います。しかし、ちょっとした工夫で操作が楽しくなるので、活用頂けると幸いです。

使い方① (ディレクトリ移動)
pushd 記憶したいディレクトリ(例:. ~/work, /usr/bin 等)
popd 記憶されたディレクトリに戻る

サンプル>

$ work       # 現在作業中のディレクトリ
pushd .      # pushdで、作業ディレクトリを記憶します。(. はカレント)

$ cd ../temp # 別のディレクトリに移動しました。
             # 移動後、色々なコマンドを使って作業を行います。
popd         # workディレクトリに戻りたい時、popdを使います。

$ work       # 前回記憶した作業ディレクトリに戻ります。

使い方②(以前使用したコマンドを呼び出す)
コマンドプロンプトに対して、[Ctrl を押しながら、 r]

サンプル>

$ work       # 作業中に、以前のコマンドを編集したり、再利用したい場合
             # [Ctrl + r]を押すと、コマンド候補検索用の表示に変わります。

(reverse-i-search)`':
             # ヒントを入力すると、候補コマンドを表示します。
             # 以下は、cuと入力した例です。コマンド群が表示されました。

(reverse-i-search)`cu': cut -f1-3 file1.txt | sort > check/cut_file1.txt
             # 候補が表示された時、リターンキーで、候補が実行されます。
             # カーソルを右や左に移動すると、編集が可能です。
             # 編集が完了したら、リターンで実行します。
 

簡単!Linuxコマンドでマイクロアレイ解析結果自由自在5

今回も、引き続き、マイクロアレイ解析結果をLinuxコマンドを用いて簡単に操作する方法を紹介していきたいと思います。今回は、行の整列に関する操作を扱いたいと思います。

データの昇順/降順の並べ替えは、データのチェック時に良く使用すると思いますが、
他の機能と組合わせて使うと効果なチェックを行ったり、形式を整えたりする事ができます。

使い方
sort data.txt または cat data.txt | sort
# タブ(\t)区切りのテキストファイルを、先頭列をキーにして昇順ソートします。
# 他にも、キーに使用するフィールドの指定や昇順/降順の指定などができます。

サンプル>
$ cat sorttest.txt
orange 100
apple  150
banana 90
grape  300
melon  400
apple  150
# 単純なソート
$ cat sorttest.txt | sort
apple  150
apple  150
banana 90
grape  300
melon  400
orange 100
# 重複チェックと組み合わせ1(重複を除外)
$ cat sorttest.txt | sort | uniq
apple  150
banana 90
grape  300
melon  400
orange 100

# 重複チェックと組み合わせ2(重複のみ抽出)
$ cat sorttest.txt | sort | uniq -d
apple 150

 

簡単!Linuxコマンドでマイクロアレイ解析結果自由自在3

今回も、引き続き、マイクロアレイ解析結果をLinuxコマンドを用いて簡単に操作する方法を紹介していきたいと思います。今回は、行に関する操作です。

head
ファイルの先頭を表示します。
大きいファイルの内容をちょっと確認したい場合や、ヘッダー情報を確認したい場合に使うと便利です。表示する行数も指定できます。

使い方
head test.txt   # 行数オプションを指定しない場合は、5行表示します。
head -n2 test.txt > test2.txt   # 先頭から2行を別ファイルに保存します。

grep
前回も出てきましたが、条件に該当する情報を抽出することができます。
行のフィルタリングに使用することができます。オプションで色んな条件を指定できます。

使い方
cat test.txt | grep “mouse”   # mouseというキーワードを含む行を抽出します。

sed
代表的なテキストフィルタリングツールです。
色々な使い方ができるツールですが、今回は使用する機会の多い置換についての使い方です。

使い方
cat test.txt | sed -e “s/,/\t/g”
# カンマ(,)区切りをタブ(\t)区切りに変換します。gは1行に見つかった全てに適用の意味です。本例のようにtest.txtの全行でカンマをタブ変換したい場合は、決まった書き方で対応可能です。

サンプル>

$ cat test.txt # ターゲットとなるテキストファイル
no,columnA,columnB
1,mouse,aaa
2,cat,bbb
3,mouse,ccc
4,mouse,ddd
5,cat,eee
$ head -n2 test.txt # 先頭2行だけを表示
no,columnA,columnB
1,mouse,aaa

$ cat test.txt | grep "mouse" # mouseを含む行だけを抽出
1,mouse,aaa
3,mouse,ccc
4,mouse,ddd
$ cat test.txt | sed -e "s/,/\t/g" # カンマ区切りをタブ区切りに変換
no columnA columnB
1 mouse aaa
2 cat bbb
3 mouse ccc
4 mouse ddd
5 cat eee
 

簡単!Linuxコマンドでマイクロアレイ解析結果を自由自在2

今回も、引き続き、マイクロアレイ解析結果をLinuxコマンドを用いて簡単に操作する方法を紹介していきたいと思います。今回は、解析結果ファイルの内容操作から少し脱線しますが、使用頻度の高いファイルの検索について紹介させて頂こうと思います。

コマンド操作で作業を行う際、一番困るのはファイルの場所がわかりづらい点と聞くことがあります。Windows等ではエクスプローラーを使って目で確認しながらファイル操作できますが、コマンド操作では慣れが必要です。しかし、慣れるとより速く・より便利に使えるので試してみる価値があると思います。

今回は、簡単で便利なファイル検索を紹介します。

find
ファイルを検索します。
検索対象となるディレクトリを指定して、ファイルを検索します。その時、名前や種類を指定できます。拡張子名が「txt」や、ファイル名が「my_」で始まる等を指定できます。

使い方1(拡張子がtxtであるファイルを検索)
find ~/work -name “*.txt”

使い方2(ファイル名がmy_で始まるファイルを検索)
find . -name “my_*”

grep
指定されたファイルや結果データ内をキーワード検索します。
とても有名なコマンドなので、ご存知の方もいらっしゃると思いますが、指定データに対して指定したキーワードに合致(含む等)する行を取得します。

使い方1(指定ファイル中から、mouseというキーワードを含む行を取得)
grep “mouse” data.txt

使い方2(コマンドの結果に対して、mouseを含む行を取得して、行数をカウント)
cat data.txt | grep “mouse” | wc -l

そして、上記の2つのコマンドを併せて使うと、「○○.datというファイルの中に、mouseというキーワードが入っているファイルはどれだったかな?」というような検索ができます。xargsは、findの結果ファイルを1つずつgrepに渡します。

使い方(findで*.txtで絞り込んで、mouseというキーワードを含む行を表示)
find ~/mydir -name “*.txt” | xargs grep “mouse” | less

サンプル>

$ ls mydir
-rw-------+ 1 Administrators None 33 Nov 30 18:30 test1.dat
-rw-------+ 1 Administrators None 33 Nov 30 18:28 test1.txt
-rw-------+ 1 Administrators None 25 Nov 30 18:31 test2.dat
-rw-------+ 1 Administrators None 25 Nov 30 18:30 test2.txt
$ find ~/work -name "*.txt" | xargs grep "mouse" | less
~/mydir/test1.txt:mouse 1
~/mydir/test1.txt:mouse 2

結果
拡張子がtxtであるファイルについて、mouseに該当する行だけが抽出できました。

 

簡単!Linuxコマンドでマイクロアレイ解析結果を自由自在1

マイクロアレイ解析結果は、プローブ・シグナル値・アノテーション情報等で情報が多くなりがちです。タブ区切りデータとして Excel 等で結果を眺めても、列数が多くなると、煩わしく感じるものです。

特に、「必要な列だけ使いたい」、「ちょっとデータの確認を」という時に、 Excel 等で開いて、不要な列を削除して、保存し直して・・・という操作を開く度に行うのは効率的ではありません。

そこで、 Linux のコマンドを用いて、解析結果を簡単に操作する方法を紹介したいと思います。端末画面のコマンドだけで操作するのは、最初は難しいと感じる方もいらっしゃるかもしれませんが、慣れてくると簡単に素早くデータを操作でき、元のデータを直接変更しないので安全という利点もあります。

今回は、データの表示と列情報の抽出を紹介します。

cat

端末画面で直接テキストデータを表示(、連結)する時に使います。行数の多いデータを表示すると、データが高速に流れて行ってしまうので、 less というコマンドと組み合わせて、1ページ単位で表示する事が多いです。

使い方

cat test.txt | less

※次ページは「スペースキー」、終了には「q」を押します。

cut

列情報が多い時に、表示する列だけを選択して表示します。例では1列目と3列目だけ、3列目以降全てを表示します。但し、列の区切り情報は「TAB」区切りです。オプションで区切り文字や切り出し方法を変更できます。

使い方1(1列、3列目表示)

cat test.txt | cut -f1,3 | less

使い方2(3列目以降表示)

cat test.txt | cut -f3- | less

使い方3(列抽出結果保存)

cat test.txt | cut -f1,3 > test_cut.txt

※test_cut.txtという新しいファイルで結果を保存します。元のファイル内容は変更されません。

サンプル>

test.txt(タブ区切りテキストデータ)
ProbeID PrimaryAccession RefSeqAccession GenbankAccession A_55_Pxx1 ENSMUST000000yyy1 AKxxx1 Mm.nnn1 A_55_Pxx2 ENSMUST000000yyy2 AKxxx2 Mm.nnn2 A_55_Pxx3 ENSMUST000000yyy3 AKxxx3 Mm.nnn3

実行例>

cat test.txt | cut -f1,3 | less
ProbeID RefSeqAccession A_55_Pxx1 AKxxx1 A_55_Pxx2 AKxxx2 A_55_Pxx3 AKxxx3