簡単!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コマンドでマイクロアレイ解析結果自由自4

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

awk
前回紹介したsed同様に、代表的なテキストフィルタリングツールです。
色々な使い方ができるツールですが、今回は使用する機会の多い列の並び替えについてです。

使い方
cat test.txt | awk ‘BEGIN{FS=”\t”; OFS=”\t”}{print $3, $2, $1}’
# タブ(\t)区切りのテキストファイルを、形式は同じで、指定した列の順番($1,$2…)に並び替えます。
# 本例のように、列の並び替えを行うだけの場合は、決まった書き方で対応可能です。($番号を変更)

サンプル>
# ターゲットとなるテキストファイル
$ cat test.txt
no      columnA columnB
1       mouse   aaa
2       cat     bbb
3       mouse   ccc
4       mouse   ddd
5       cat     eee

# 列を逆順に並べ替え
$ cat test.txt | awk 'BEGEN{FS="\t"; OFS="\t"}{print $3, $2, $1}'
columnB columnA no
aaa mouse 1
bbb cat  2
ccc mouse 3
ddd mouse 4
eee cat  5

# 列を逆順に並べ替え&抽出
$ cat test.txt | awk 'BEGEN{FS="\t"; OFS="\t"}{print $3, $1}'
columnB no
aaa 1
bbb 2
ccc 3
ddd 4
eee 5
 

簡単!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に該当する行だけが抽出できました。