RNA-Seqの発現差解析にTPM・FPKM・RPKMを使うべきでない理由|DEG解析はGene Countsから

  • Gene Expression
  • High-Throughput Sequencing

RNA-Seqデータを扱っていると、 TPM、FPKM、RPKMのような発現量データを使って、 そのまま発現差解析をしてよいのか迷うことがあります。

たとえば、次のような疑問を持つ方は少なくありません。

  • TPMを使って発現差解析をしてよいのか
  • FPKMやRPKMにt検定をかけてもよいのか
  • TPMやFPKMをDESeq2に入力してよいのか
  • TPM、FPKM、RPKM、Gene Countsの違いをどう考えればよいのか
  • TPMやFPKMは、PCAやクラスタリングなどの可視化には使えるのか

また、過去のRNA-Seq論文や公開データでは、 RPKM、FPKM、TPMで表された発現量データが使われていることも多くあります。 そのため、それらの値を参考にすると、 RPKM、FPKM、TPMを使って発現差解析を行うことが、 RNA-Seq解析の標準的な進め方であるように見えるかもしれません。

しかし、過去に広く使われていたことと、発現差解析の入力データとして適切であることは同じではありません。 特に、DESeq2やedgeRのような発現差解析手法を使う場合には、 TPM、FPKM、RPKMではなく、Gene Countsを出発点にすることが基本です。

結論から言うと、 RNA-Seqの発現差解析では、基本的にはTPM、FPKM、RPKMではなく、Gene Countsを出発点にするべきです。

TPMやFPKMを使う主な理由があるとすれば、 同一サンプル内で、遺伝子間の相対的な発現量を比較したい場合 です。 サンプル間比較、群間比較、発現差解析、そして発現差解析の結果確認という用途では、 TPMやFPKMを使う理由はほとんどありません。
以下にその理由を説明します。

TPM・FPKM・RPKMは「発現量を見る」ための値であり、発現差解析の標準入力ではない

TPM、FPKM、RPKMはいずれも、RNA-Seqのリード数をもとに、 遺伝子長やライブラリサイズの影響を考慮して計算された発現量指標です。

そのため、表として見ると連続値になっており、 一見すると一般的な統計解析にそのまま使えそうに見えます。 しかし、ここで注意すべきなのは、 TPM、FPKM、RPKMに変換しても、元のcount値が持っていた不安定性が消えるわけではない という点です。

raw Gene Countsで見れば、 低カウントの遺伝子は値そのものが小さく、 測定上のばらつきやサンプリングノイズの影響を受けやすいことが比較的分かりやすい状態にあります。

ところが、TPM、FPKM、RPKMでは、遺伝子長で補正する工程が入ります。
そのため、特に短い遺伝子では、もともとのcountが少なくても、変換後の値が相対的に大きくなり、逆に長い遺伝子では、countがある程度多くても相対的に小さな値になります。

その結果、低カウント領域の遺伝子が散布図上で対角線方向に広がり、 本来は信頼性が低い可能性のある値が、 一見すると通常の発現量データのように見えてしまうことになります。

この問題は、RNA-Seqのダイナミックレンジを考えるうえで重要です。 詳しくは、次の記事で図を使って解説しています。
RNA-Seqのダイナミックレンジ

Same Amount Looks Larger

このように、FPKMやRPKMでは、 低カウント由来の不安定さが、遺伝子長による補正によって見えにくくなっており、その状態でt検定などの統計検定を行うと、 信頼性の低い値を含めたまま群間差を評価することになります。 その結果、生物学的な差というよりも、 測定限界に近い揺らぎや、低カウント由来の不安定な差を、 統計的に意味のある差として拾ってしまうことにつながります。

TPMなら発現差解析に使ってよいのか

TPMは、FPKMやRPKMよりもサンプル間で比較しやすい発現量指標として説明されることがあります。 そのため、FPKMやRPKMではなくTPMであれば、 発現差解析に使ってよいのではないかと考えるかもしれません。

しかし、TPMもこの問題を本質的に解決するわけではありません。 TPMでも、遺伝子長で補正した後に、 サンプル内で合計が一定になるようにスケーリングされます。 そのため、低カウント由来の不安定性がなくなるわけではありません。

FPKMやRPKMと同様に、 もともとのcountが少ない遺伝子の値が、 変換後には通常の発現量データのように見えてしまうため、 TPMをそのままt検定に入力すればよい、という話にはなりません。

さらに、TPMにはもう1つ重要な注意点があります。 TPMは、各サンプル内の発現量の合計が一定になるようにスケーリングされた値です。 そのため、ある遺伝子のTPMが大きくなると、 他の遺伝子のTPMは相対的に小さく見えることがあります。

つまり、TPMはサンプル内の相対的な割合を表す値であり、 各遺伝子の発現量が互いに独立に変化している値として扱うことはできません。 この性質は compositional data の問題として知られており、 TPMをそのままサンプル間比較や発現差解析に使いにくい理由の1つです。

TPM・FPKM・RPKMを使う主な理由は、同一サンプル内での遺伝子間比較

では、TPM、FPKM、RPKMは何に使えばよいのでしょうか。

これらの値を積極的に使う主な理由は、 同一サンプル内で、遺伝子間の相対的な発現量を比較したい場合 です。

たとえば、ある1つのサンプルの中で、 遺伝子Aと遺伝子Bのどちらが相対的に高く発現しているかを見たい場合には、 遺伝子長やライブラリサイズを考慮したTPMやFPKMが役立つことがあります。

しかし、サンプル間比較、群間比較、発現差解析、 あるいは発現差解析の結果確認という用途では、 TPMやFPKMを使う理由はほとんどありません。

この点については、次の記事で実データを使って詳しく解説しています。
FPKMやTPMで“整ったはずのデータ”の落とし穴 — GSE159751から見るデータ検証の重要性

PCAやクラスタリングにTPM・FPKMを使えばよいのか

TPMやFPKMは、発現量を表示したり、 PCAやクラスタリングなどの可視化に使えると言われることがあります。 そのため、発現差解析にはGene Countsを使い、 PCAやクラスタリングにはTPMやFPKMを使えばよい、 と誤解されることがあります。

しかし、これには注意が必要です。 TPMやFPKMが可視化に使えると言われる場合、 多くの場合それは、 正規化されていないraw Gene CountsをそのままPCAやクラスタリングに使うよりはまし という意味です。適切に正規化・変換されたGene Countsであれば、 発現差解析だけでなく、 PCAやクラスタリングでも有用です。

特に、発現差解析をGene Countsから行い、 PCAやクラスタリングはRPKM/FPKM/TPMで行うとなると、 解析結果の解釈は非常に厄介になります。 つまり、発現差解析から結果確認まで、 Gene Countsを出発点として一貫して解析する方が整合的です。

この点についても、次の記事で実データを使って詳しく解説しています。
FPKMやTPMで“整ったはずのデータ”の落とし穴 — GSE159751から見るデータ検証の重要性

TPMやFPKMをDESeq2に入れてはいけない理由

DESeq2やedgeRは、RNA-Seqの発現差解析で広く使われている統計手法です。 これらは、RNA-Seqのcountデータを前提として設計されています。

重要なのは、 DESeq2やedgeRの入力は、基本的にTPMやFPKMではなくGene Countsである という点です。
参照: RNA-SeqではT検定はダメなのか?|DESeq2・edgeRと統計モデルを過信しない考え方

TPMやFPKMは、すでに遺伝子長やライブラリサイズを考慮して変換された値です。 一方、DESeq2やedgeRは、Gene Countsを入力として受け取り、 ライブラリサイズ、発現量に依存する分散、サンプル間のばらつきなどを モデル内で扱います。

そのため、TPMやFPKMをDESeq2に入力すると、 モデルが前提としているcountデータの性質から外れてしまいます。

つまり、 TPM DESeq2、FPKM DESeq2という組み合わせは、基本的には適切ではありません。 DESeq2やedgeRを使う場合は、Gene Countsを入力として使うべきです。

発現差解析では、Gene Countsから始める

RNA-Seqの発現差解析では、 まずGene Countsを用意し、 そこから解析目的に応じて正規化、前処理、フィルタリングを行います。

DESeq2やedgeRを使う場合も、Gene Countsを入力として使います。 また、可視化や探索的解析を行う場合でも、 Gene Countsをもとに適切に正規化・変換したデータを使う方が、 発現差解析の考え方と整合しやすくなります。

重要なのは、 どの形式のデータを使っているのかを理解せずに、 「正規化済みだから大丈夫」 「連続値だからt検定できる」 「発現量データだからDESeq2に入れられる」 と考えないことです。

RNA-Seqデータ解析では、値の名前だけで判断するのではなく、 その値がどのように作られ、何を前提としており、 どの解析目的に適しているのかを確認する必要があります。

まとめ:TPM・FPKM・RPKMは発現差解析の入力として慎重に扱う

TPM、FPKM、RPKMは、RNA-Seqデータを理解するうえで見かけることの多い発現量指標です。 しかし、発現差解析の標準的な入力として使うべき値ではありません。

  • TPM、FPKM、RPKMは、主に同一サンプル内で遺伝子間の相対的な発現量を見るための値です。
  • サンプル間比較、群間比較、発現差解析では、基本的にGene Countsから解析を始めるべきです。
  • FPKMやRPKMをそのままt検定にかけることには注意が必要です。
  • TPMも、低カウント由来の不安定性や分散の問題を本質的に解決するわけではありません。
  • TPMやFPKMがPCAやクラスタリングに使えるという話は、raw Gene Countsをそのまま使うよりはまし、という意味で語られている場合があります。
  • 適切に正規化・変換されたGene Countsは、PCAやクラスタリングでも有用です。
  • TPMやFPKMをDESeq2に入力することは、モデルの前提から外れます。

統計手法の名前だけで、結果の信頼性が決まるわけではありません。 DESeq2、edgeR、t検定のいずれを使う場合でも、 データ分布、サンプル間の関係、低発現遺伝子、外れ値、バッチ効果、 そして生物学的な文脈を確認することが重要です。

RNA-Seqの発現差解析で本当に重要なのは、 どの手法を信じるかではなく、 データを見て、前提を確認し、結果を解釈すること です。

関連する詳しい解説は、以下の記事もご覧ください。