簡単!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
             # 候補が表示された時、リターンキーで、候補が実行されます。
             # カーソルを右や左に移動すると、編集が可能です。
             # 編集が完了したら、リターンで実行します。
 

マイクロアレイデータにおける発現変動遺伝子の定義 (1)

発現変動遺伝子

マイクロアレイデータの正規化の次に行う処理は、「発現変動遺伝子」の抽出です。「発現変動遺伝子」とは、具体的には、シグナル値をコントロールと比較して上がっている(または下がっている)遺伝子のことです。

例えば、ある遺伝子のプローブについて、コントロールとサンプルのシグナル値が下記のようであったとします。

遺伝子名 コントロール サンプル
A 100 200

コントロールのシグナル値が100であるのに対して、サンプルのシグナル値は200です。直感的にサンプルのほうが高いことが分かります。どれくらい大きいかを議論するには、「」を用いる方法と、「」(何倍か)を用いる方法があります。マイクロアレイデータでは、「」を用いることが多いです。この場合、比=サンプル/コントロールを計算します。結果は、200/100 = 2 となります。つまり、遺伝子Aに関して、サンプルのシグナル値はコントロールの2倍に上がっていることになります。「」は、ratio または fold-change と表記されます。

では、何倍に上がっていれば(下がっていれば)、発現変動遺伝子といえるのでしょうか?

発現変動遺伝子の定義

多くの研究者にとって、マイクロアレイ解析に期待するのは、「どの遺伝子の発現が上がっていて、どの遺伝子の発現が下がっているのか」ということだと思います。つまり、どれが発現変動遺伝子なのかということですが、単純そうに見えて、残念ながら、それに対する明確な定義は存在しません。しかしながら、多くの人に用いられている判断基準というものは存在します。それは下記のようなものです。

  • 上がっている遺伝子(発現増加した遺伝子): ratio が2以上。つまり、2倍以上増加した遺伝子。
  • 下がっている遺伝子(発現減少した遺伝子): ratio が0.5以下。つまり、半分以下に減少した遺伝子。

なぜ、”2″ 倍なのかということに対する答えはありません。(科学的または統計的な根拠のある数字ではありません。)とりあえず、2倍以上であれば、「上がっている」ということに対して、多くの人が賛同できるであろうという見込みの数字です。ある研究者が、1.5倍でも上がっていると主張しても、この点に関しては全く問題ありません。

* ratio (fold-change), logFC

論文中において、シグナル値の比は、ratio または fold-change と表記されます。fold-change は省略されて「FC」とも表記されます。log変換されたシグナル値の比が、 “logFC” です。

問題点

ratio を求めるだけであれば、マイクロアレイデータの計算は単純です。データが複雑に感じられるかもしれませんが、遺伝子Aのようなデータを遺伝子の数だけ(例えば4万個)集めたのがマイクロアレイデータです。ratio を求める割り算を4万回繰り返すだけです。

マイクロアレイ解析の難しさは、それ以外のところにあります。2倍以上という基準を用いたとき、1.9倍はどう考えたらよいのでしょうか?また、シグナル値が10から100になったとき、ratioは10ですが、一方で、シグナル値が1,000から10,000になったとき、ratioは同じ10です。同列に扱ってもよいものでしょうか?また、シグナル値が、40,000 から 60,000 になった遺伝子はどうでしょうか? ratio としては 1.5 ですが、20,000増加しています。

つづきます

 

エクセルで log2 変換

エクセルで値を log2 変換する方法の一例です。LOG 関数を使います。

LOG 関数  LOG(数値,底)

セル A1 に変換したい値がある場合、セル B1 に =LOG(A1, 2) と入力します。

セル B1 に 2 を底としたセル A1 の値の対数が求められます。

底の指定がない場合 (=LOG(A1)) は 10 を底とした対数が求められます。

 

 

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