表紙(FrontPage) | 編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | 検索 | 更新履歴

Twixtrixについて -

データとして、行に遺伝子、列にサンプル条件が配置された、行列型式のデータを使う。

一つの遺伝子を指定して、データからその遺伝子の発現データを取り出す。これは(発現量@条件1,発現量@条件2, ・・・, 発現量@条件1388)のように並んだベクトルになる。 このベクトルから Critical contrast, その遺伝子の発現が 2 つのセット間で最も大きな差が生じるように、複数のサンプル条件を二つのセットに分けた二つのセット C1, C2 を作成する。そのために t スコアを計算し、それが最大になるような分け方を計算機に計算させる。

この論文での t スコア(二群のデータから計算する t スコア)は、以下の式で計算される。

 は グループの発現量の平均

n は グループのメンバーの数

 は グループの発現量の標準偏差 SD

の部分は、二つの群を合わせた分散の推定値の平方根=SD になる。データが一群の際の SD に対応している。

 は、データが一群の場合の式なら単に  に対応する。二群のデータそれぞれのデータ数から、データ数としてふさわしい数を作っている(どちらかのデータ数=1なら1,データ数が均等(N と N)なら )。 この部分は、それぞれのセットのメンバーの数が偏りすぎないようにする効果もある。

この値を計算する関数を書く。元になる発現データのベクトルを大きさ順にソートする。これをどこかで 2 つに分けると、「発現量が小さいグループ C1」と「発現量が大きいグループ C2」に分けられ、それらを元に計算できる。このとき max(C1) ≦ min(C2) になる。関数にすると 「t を計算」 <- function(遺伝子、しきい値)というようになる。

t スコアが最大になるしきい値を、計算機に求めさせる。 max(C1) ≦ min(C2) という条件をつければ、可能なしきいの位置の数は(サンプル条件数 - 1)になり、それぞれに対応する t スコアが求められる。それらの値のうちで最大になるところにしきい値を決める。R 言語だと which.max という関数で最大の要素の位置が求められる。遺伝子の発現様式によって、しきい値は異なるものになる。この値だけでも遺伝子ごとの特性を表す、要約する値として何かに使えるかもしれない。

ABI3 At3g24650 は、種子でとても強く発現して後の条件では発現が相対的に低い。この場合、しきい値はとても大きくなる。C2 は種子で測定した値だけで占められ、メンバー数は少なくなる。 これは、Qi らの論文では Fig. 8A の図面に相当する。多数あるサンプル条件のうちで、少数の条件でのみ強く発現している遺伝子が見つかりやすい。

このことによって、「その遺伝子が強く発現している条件」を集めた、比較的少ない数のメンバーをもつ「条件のセット」を取り出すことができる。PAGE 法などでは遺伝子をセットとして扱うが、Twixtrix では条件の方をセットとして扱うというように解釈することができる。 そのセットにおける発現量の平均、SD から t スコアを計算する。平均や SD 自体にも別の使い道があるかもしれない。

PTB At3g01150 は、様々な条件において発現量が安定している。RT-PCR の際に用いる「基準遺伝子」として使えることが論文で報告されている。安定していても発現量がとても低いのでは基準遺伝子にならないが、発現量もある程度高く、安定している。 この場合、しきい値はサンプル条件の総数の半分に近くなる。だから「条件セット」というわけにはいかない。

「それぞれのグループの平均の差が大きい」「それぞれのグループ内での分散が低い」という二つの条件は、判別分析でデータを二つに分ける直線を決定する際に使われる条件と同じである。

堀部安一先生の「情報エントロピー論」32ページには「分散は、概念上、エントロピーに似ている」と書かれている。 14 ページには「二項エントロピー」の説明がある。二つのセットへの分配される確率がどちらも 1/2 で一致すると二項エントロピーは最大になる。

単純に「二つのセットの差を最大にする」だけだと、セットのメンバーの数が 1:残り全部 ということになってしまうことがおきる。そうならないように t スコアを使っている。t スコアの計算には二つのデータ群それぞれの平均、分散、データ数の3種類の数が用いられる。平均は差が大きいほどスコアが大きくなる。分散は大きいほどスコアが小さくなる。データ数は  のところで、n1 = n2 で大きい数だとこの部分が小さい値になり t スコアが大きくなる。n1 または n2 = 1 だとこの部分の値は1に近くなりスコアは小さくなる。 この部分を逆数にすると二項エントロピーの値と似た変化を示す(均等に分かれると最大で、片方のみになると0)。二つのセットのメンバーの数については、できるだけ均等にしようとしている。

t スコアで n (データの個数)が大きくなると、その分布は正規分布に近づく。「n をできるだけ大きくしようとする」という基準は、「できるだけ正規分布に近くしようとする」と解釈することもできる。 n が小さすぎると、その条件セットが含む情報の量が小さくなってしまう。セットが含む情報を大きくするというようにも考えられる。

Twixtrix では、「条件セット」を作成した後に、それらの条件セットが、もう一つの遺伝子の発現量をどれくらい差次的に区別するかを、これも t スコアで定量する。ここでもスコアの付け方はいろいろと考えられる。PAGE法のように Zscore でスコアを付けることもできる。 「このスコアの付け方にすると、明らかによいことがある」ということを数学の力で示すことができれば都合がよい。


Twixtrix で行っていることを、少し一般化して図面で表現してみる。

条件が N 個あって、それを「A 遺伝子の発現データを元にした t スコア最大」という基準で、C1, C2 の 2 グループ(二つの項)に分ける。図面にすると、

              グループ C1         Threshold(仕切り) グループ C2
 発現低い← ○  ○ ○○ ○○○ ○ ○○ ○○ ○ ┃ ●●● ● ●● ●    ● →発現高い

C1 は n1 個のメンバー、C2 は n2 個のメンバーを含む。仕切りの決め方は Twixtrix の t スコアを使う方法以外にもいろいろありうる。「大きさ順に並べて頭から50個」とか、そういう単純で何の工夫もひねりもない、数理的には面白くない方法でも結果があまり変わらないこともあるようである。 「その遺伝子の特徴を出来るだけよく残しつつ、二つのグループに分ける」という方法を他にも思いつければよい。

このように条件を「○、●」の二項に分けておいて、それらの条件での B 遺伝子の発現量を取り出す。A 遺伝子と B 遺伝子の発現様式が類似しているなら、○は B 遺伝子においても発現が低い、●は B 遺伝子においても発現が高いという偏りが生じる。類似していないなら偏りは小さくなる。

 A で発現低い← ○  ○ ○○ ○○○ ○ ○○ ○○ ○ ┃ ●●● ● ●● ●    ● →発現高い
 だったのが、

 B で発現低い← ○  ○○ ●○ ○ ●○○○ ●●○○ ○ ○  ●  ●○●    ● →発現高い
 に変化

これは、黒丸、白丸がしきり Threshold、壁の左右に秩序をもってまとまった状態に配置されていたのが、拡散によってばらついて、混合した状態になったというように解釈することもできる。黒丸、白丸それぞれの数は変化しない。

もし B で下の図のように変化すれば、

 B で発現低い← ○○○○○○○○○○○○○                   ●●●●●●●● →発現高い
                  SD小さい 平均の差が大きい

t スコアがかえって高くなることになる。こういうことはあるだろうか。シリンダー内に二種の気体 ○、● が壁で隔てられて存在している場合、壁を取り払ってこういう状態に自然になることはない。不可逆に混合状態になる。二つの温度が異なるヒーティングブロックがあるとする。二つをくっつけると熱は温度が高い方から低い方へ一方的に流れて温度差がなくなると平衡状態になる。温度差がかえって大きくなることは起こらない。だからこういうことがあるとしたら何か特別な理由があることが推測できる。 かえって高くなるところまでいかなくても、t スコアが大きければ上の図に近いので、そういうことは何か理由がなければ起こりにくい。 その理由は「A と B に関連がある」であると推測できる。実際にいろいろ試してみると相関係数と同じではないがよく比例した値が出てくる。「A で大きいものは B でも大きく、小さいものは小さい」というのは直線的な比例関係があるのと同じなのでそれは当たり前だった。相関係数の有用性がよくわかる。

温度が高いと分子の運動は激しくなる。そうなると ○、● は入り混じりやすい。遺伝子 A と一番似ている遺伝子 C が示すtスコアや相関係数は、A が保持する温度のようなものを反映すると考えられなくもない(低温なら混合・均一状態になりにくいので、tスコアは大きくなりやすい)。 

相関係数は生物からのデータの解析においてとても強力だが、万能というわけではない。相関係数と、それ以外の「二つのデータの関連を調べる測り方」についてまとめられた文書があった。

「A comparison of correlation measures」で検索すると、Michael Clark 博士が書かれたすばらしい文書が出てくる。Pearson correlation, Spearman's measure, Hoeffding's D, Distance correlation, Mutual information and the Maximal information coefficient (MIC) について比較、紹介されている。R によるコードも書かれている。

Distance Correlation という測度が推奨されている。これは   https://en.wikipedia.org/wiki/Distance_correlation   Wikipedia にも項目がある。 R 言語ではパッケージが用意されていて、すぐに計算ができる。

 install.packages("energy")
 library(energy)

dcor.t(x, y) を使うと、スコアに相当する値が出てくる。元々相関が高い場合、この方法でも相関係数と比例する高い値が出てくる。相関が低い場合でも、この方法では関連性を検出して高めのスコアが出ることがあるはずだが、たいした違いはないように見える。

Hoeffding's D という測度は遺伝子発現分析に適していると言うことがすでに報告されている。   Comparing Pearson, Spearman and Hoeffding’s D measure for gene expression association analysis.   Fujita A, Sato JR, Demasi MA, Sogayar MC, Ferreira CE, Miyano S.   J Bioinform Comput Biol. 2009 Aug;7(4):663-84.   PMID: 19634197  

Twixtrix ではデータを二つの集合(項、値)に分けるので値を直接用いる以外にもいろいろな計算ができる。しかしそれでよいことがあるかどうかは、元のデータの性質によるだろう。