Single cell RNA-seq, bulk RNA-seq を行った論文で、図の意味が分からない、という経験は多いと思います。最近は NGS を使う後輩も増えてきて、同じような質問をよく聞きます。
今回は簡単なところから、Gene Ontology (GO) 解析に焦点を当てていきます。ただし、基本的な仮説検定の概念が入っていないと難しいかもしれません。
図の見方は最後に載せているので、飛ばしたい方はそのあたりまで。
まずはポイントから。分かりにくいと思うので図も載せます。
① 遺伝子の役割を「集団(カテゴリ)」としていくつかにまとめたものを GO という。
② GO 解析では、自分が入力した差次的発現遺伝子の中に、それぞれのカテゴリに属するものが多く含まれていると言えるか?を 1 カテゴリずつ検定する。
直観的には、GO1 に差次的遺伝子が多く濃縮していそうな気がしますが、実際どうなのでしょうか。
入力に必要なものは 3 つです。
- データベース(KEGG, Reactome, etc...)
- 検出された全遺伝子
- 差次的発現遺伝子
では、上記の GO1 に遺伝子が濃縮しているかどうかを考えていきます(苦手な人は期待値まで飛ばしてください)。有意水準は 5 % とします。最初に、今回の検定における帰無仮説は以下のとおりです。
「差次的発現遺伝子のうち、GO1 カテゴリに属する遺伝子の数は、超幾何分布に従う (つまり、差次的発現遺伝子を適当に選んだ場合と同じ)」
超幾何分布は一般的に、以下の式で表されます。GO 解析における各文字の意味も併記しておきます。
$$
P(X = x) = \frac{_MC_x \times _{N-M}C_{n-x}}{_NC_n}
$$
N:全遺伝子数
n:全差次的発現遺伝子数
M:全遺伝子の中でカテゴリ内に含まれる遺伝子数
x:差次的発現遺伝子の中でカテゴリ内に含まれる遺伝子数
難しそうに見えますが、部分ごとに分けて見るとそこまで難しくありません。 まず、分母は全遺伝子 N から 差次的発現遺伝子 n 個を取り出す組み合わせ数を示します。分子左は GO1 に属する遺伝子 M 個のうち x 個が差次的発現遺伝子に該当したと考え、その組み合わせ数を示します。逆に、分子右は GO1 に属さない遺伝子 N-M 個のうち、n-x 個が差次的発現遺伝子に該当したと考え、その組み合わせ数を示します。(独立試行ではないので、二項分布ではない点に注意が必要です)。
検定は右片側検定で行われ、「P(X≧x) ≦ 有意水準」であるとき、帰無仮説は棄却されます。
GO1 の例では、P(X≧3) = P(X=3) + P(X=4) ≒ 0.00281 < 0.05 であり、有意に濃縮されていると言えます。直観はあってました。GO2 の例では、P(X≧1) ≒ 0.478 > 0.05 であるため有意でなく、濃縮されているとみなすことは出来ません。
さて、ここまで細かく式を追ってきましたが、難しい人もいると思うので、直観的な意味合いも考えていきます。超幾何分布の期待値は以下のように表すことが出来ます。
$$
E[X] = \frac{nM}{N}
$$
これを式変形すると
$$
\frac{E[X]}{n} = \frac{M}{N}
$$
この式は、まさに先ほどの図で考えていたことをそのまま反映しています。より詳しく言うと、GO1 の例では図の中で言う 4 % が M/N を表しています。つまり、超幾何分布に従う場合、差次的発現遺伝子から計算された x/n の値は、4 % を平均値として分布するはずだと考えることが出来るんです。結果として、30 % という値が 4 % という値より非常に大きいという直感と、超幾何分布における平均からのズレの大きさが同じような意味合いとして現れています。
さて、では GO 解析の図を考えてみましょう。
画像はこちらより引用し、一部切り取って載せています(閲覧日: 251107, 08:00)。
https://guangchuangyu.github.io/2016/01/go-analysis-using-clusterprofiler/
p.adjust: 補正後の pvalue。デフォルトは Benjamini Hochberg 補正。
Count: 上記式説明における x
GeneRatio: 上記式説明における x/n
~その他~
Richfactor … 上記式説明における x/M
Fold Enrichment … 上記式説明における (x/n)/(M/N)
BgRatio … 上記式説明における M/N
Fold Enrichment は先ほどの期待値の式より簡単に導くことができ、超幾何分布に従う場合は 1 を平均として分布します。1 よりどれくらい大きいかが大事というわけです。直感的にもわかりやすい。 RichFactor も入力した n,N が分かっているため、指標としては役に立ちそうですが、データセット(n の値や N の値)ごとに基準値が変わるのが難点かなと。 GeneRatio,BgRatio に関しては直感的にわかりにくいかなと思うので、個人的にはあまり使いたく無いなぁという感じです。 また、ドットの色合いに関しては、統計的な意味を考えたら本来 p 値関連は載せてはいけないような気もしますが、どうなんでしょうね。
まとめると、横軸は Fold Enrichment が一番わかりやすい気がします。
いずれにしても、ここまで読んでくださった方なら今後 GO 解析の理論で困ることは無いのではないでしょうか。pathway 解析(Over Representation Analysis)も同じ理論ですが、GSEA を行う場合にはまた別理論になります。
次回は edgeR, DESeq2 の理論でも... と思いましたが、Seurat が好きなので Seurat の構造あたりを解説していこうかな...

