簡単!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
 

エクセルのフィルタを使ってデータ抽出

エクセルのフィルタを使ってデータ抽出する方法です(エクセル2007の場合)。

例)解析結果のエクセルファイルから、| Zscore | >= 2 のデータを抽出したい

1. [データ] をクリック。

2. [ フィルタ ] をクリック。

3. Zscore のセルの矢印をクリック。

4. [ 数値フィルタ ]  → [ 指定の範囲内 ] を選択。

5. 抽出したい条件を選択。

6. 指定した条件のデータが抽出できました。ステータスバーには抽出した件数が表示されます。

7. 前回紹介した「データの並べ替え」で、見たい順に並べ替えることができます。

8. フィルタを解除する場合は [ フィルタ ] をクリック。データは元に戻ります。

 

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

 

エクセルでデータの並べ替え

エクセルファイルでデータを並べ替える方法です (エクセル2007の場合)。

例)解析結果のエクセルファイルで Zscore の降順に並んでいるのを GeneSymbol の昇順に並び替えたい

1. [ データ ] をクリック。

2. [ 並べ替え ] をクリック。

3. ダイアログで並べ替えの条件を指定します。

 

4. データは GeneSymbol の昇順に並び替えられました。

 

 

簡単!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