大規模データに対する主成分分析の性能を評価~100万規模の1細胞発現データで検証~

ad
ad

2020-01-20 理化学研究所

理化学研究所(理研)生命機能科学研究センターバイオインフォマティクス研究開発チームの露崎弘毅特別研究員、二階堂愛チームリーダーらの共同研究チームは、大規模1細胞発現データを高精度・高速・低メモリで主成分分析(PCA)[1]する手法の性能評価を行いました。

本研究成果は、大規模な遺伝子発現データからの疾患関連細胞や遺伝子の発見で利用されるアルゴリズムの高速化・軽量化に貢献すると期待できます。

近年、臓器が持つ全細胞種を1細胞RNAシーケンス法(1細胞RNA-seq)[2]で同定する研究が盛んです。この方法で得られたデータをPCAで簡素化し、細胞の種類や数、機能を特定しますが、大規模研究では細胞の数が100万を超えるため、従来法ではそもそも計算できなかったり、膨大な計算時間、メモリ量が必要とされます。

今回、共同研究チームは、10種のPCAアルゴリズムを比較しました。その結果、高速化や低メモリ化には、行列の非ゼロ要素のみを格納する疎行列フォーマット[3]の利用や、行列の一部を逐次的に計算に用いるOut-of-core[4]な実装が有効なことが分かりました。そして、それらを考慮したソフトウェアを実装し、その有効性を示しました。

本研究は、英国の科学雑誌『Genome Biology』のオンライン版(1月20日付)に掲載されます。

主成分分析(PCA)の性能評価の手順の図

図 主成分分析(PCA)の性能評価の手順

背景

私たちの臓器には多種多様な細胞が含まれており、これらの細胞が互いに関連して臓器の機能を支えています。しかし、臓器にどのような細胞がどの程度含まれているか、それぞれの細胞がどのように臓器機能を支えているかについては、十分に理解が進んでいません。臓器の疾患の理解や診断、創薬を精緻に行うためには、臓器に含まれる細胞種類[5]やその数、細胞状態[5]やその機能、薬剤に対する応答を調べる必要があります。

細胞が持つ多様な機能は、ゲノムDNAにコードされた数万種類のRNAのうち、どれがどのくらい発現するのかの組み合わせによって決まります。遺伝子は、RNAに転写されたのちさまざまなタンパク質に翻訳され、細胞のさまざまな機能を担います。そのため、臓器を構成する細胞種を判別し、その機能を類推するには、1細胞が持つRNAの量と種類を知る必要があります。これを実現する技術が1細胞RNAシーケンス法(1細胞RNA-seq)です。

1細胞RNA-Seqは、臓器から分離された1細胞をランダムに計測するため、どのデータが何の細胞なのか事前には分かりません。そのため、データ取得後に各種データ解析によって、細胞の種類や数、機能が特定されます。1細胞RNA-Seqのデータは、「遺伝子数×細胞数の次元」を持つ行列で表されます。例えば、ヒト細胞には数万個の遺伝子が存在し、1細胞RNA-Seqでは数千から数百万個の細胞を観測するため、最大で数千億次元のデータとなります。このような大きな次元を持つデータを人間が直感的に理解することは困難です。

そこで、データを低次元に射影して細胞の分布を確認する「次元圧縮法」が大きな役割を果たします。次元圧縮の手法はいくつも存在しますが、その中でも「主成分分析(PCA)」は、あらゆる解析手法の基盤となっています。PCAにより、少ない変数に次元を圧縮することで、データを理解しやすくすることができます。例えば、1細胞RNA-Seqのデータを2次元に圧縮すると、多くの場合、データを細胞が分化してからの時間と細胞種類の二つの次元で説明できます。

しかし、計測細胞数が増加するにつれて、従来のPCAアルゴリズムでは、現実的な計算時間、メモリ使用量で実行できず、データ解析のボトルネックになっていました。また、いくつか高速・軽量なPCAアルゴリズムは提案されているものの、大規模1細胞RNA-Seqデータにおける有効性はよく知られていませんでした。

研究手法と成果

PCAは、遺伝子ごとに平均値を引いたデータ行列の特異値分解(SVD)[6]や、共分散行列[7]の固有値分解(EVD)[8]として定式化されます。多くのPCAのツールでは、データ行列が全てメモリ上に展開されている前提で、SVDやEVDを計算します。しかし、データ数が100万細胞レベルにもなる大規模RNA-Seqでは、行列の全要素を全てメモリ上に載せることは難しくなります。また、多くの研究では、PCAの計算を省略せずに、つまり計算可能な特異値[9]・特異ベクトル[9]を全て計算する(full-rank SVD)ため時間がかかります。

そのため本研究では、データ行列の一部分だけを逐次的に読み込んで計算に利用する実装(Out-of-core)や、特異値が大きい数個の特異値・特異ベクトルのペアのみを計算するアルゴリズム(truncated SVD)を利用することで、巨大な1細胞RNA-seqデータを高速かつ軽量にPCAができるアルゴリズムやソフトウェア実装法、データ形式を報告しました。

共同研究チームはまず、10種類の代表的なPCAアルゴリズムに注目しました。それらを実装したソフトウェアを選定し、ソフトウェアがないアルゴリズムは、Julia言語[10]で独自に実装しました。その結果、21種類の代表的なソフトウェアが選定されました(図1)。次に、これらのソフトウェアの性能を四つの実データと18の人工データ(図1)を用いて比較しました。その結果、一部のデータだけでEVDを行うアルゴリズム(ダウンサンプリング法[11]や確率的勾配法[12]に分類されるアルゴリズム)では、細胞分類の精度を低下させることが分かりました(図1)。

また、計算時間やメモリ使用量はアルゴリズムの違いだけでなく、データ形式やデータの読み込み方にも大きく依存することから、遺伝子発現量がゼロの部分を除いた形式(疎行列フォーマット)を利用すると、計算時間やメモリ使用量の削減効果が高いことが分かりました(図1)。さらに、1細胞RNA-seqのデータは、その検出感度のため遺伝子発現量が計測されない遺伝子が存在します。このような1細胞RNA-seqデータの特徴を踏まえたデータ形式が重要であることが分かりました。

そして、上記の性能評価で利用された一部のPCAアルゴリズムに加え、データの行・列ごとの統計量の計算、それら統計量をもとにした特徴的な発現変動を示す遺伝子や特徴的な細胞を選別する統計量(Highly Variable Genes[13]など)も全て、「Out-of-core」で実行できる実用的なソフトウェアを開発しました(図1)。共同研究チームはJuliaパッケージOnlinePCA.jlをオープンソースソフトウェアとして公開し、誰でも自由に使用できるようにしています。

タイトルとURLをコピーしました