macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

多変量データのクラスタリングと可視化を行うwebサービス ClustVis

2020 4/30 文章修正、タイトル修正

2022/04/06 リンク修正

 

 ハイスループット実験の出現により、研究者はしばしば多変量データに直面している。これらは、通常、行列として提示される。この種のデータは様々なソースから得られることがあり、例えば、特定の遺伝的パスウェイを調べることが大きな関心事である遺伝子発現研究などが挙げられる(ref.1)。さらに、画像解析アルゴリズムは、臨床ガンの予後に関連する特徴を抽出するために、高解像度画像上で使用することができる(ref.2)。ヒートマップと主成分分析(PCA)は、この種のデータを分析するための2つの一般的な手法である。

 ヒートマップは、カラーグラデーションを使用して細胞内の値を可視化したデータマトリックスである。これにより、行列内の最大値と最小値の概要がよくわかる。行列の行および/または列はクラスタ化されていることが多く、ユーザーは個々の行または列ではなく、行または列のセットを解釈することができる。PCA は,多変量データ集合を,説明された分散の降順に並べて,相関のない変数の集合に線形変換する手法である(ref.3).この方法では、しばしば大量の変動を説明する主要ないくつかの成分を解釈できる。

 ユーザーが調査中のオブザベーションは、しばしば事前に定義された実験的注釈グループを持ち、この情報をプロットの両方に追加すると、解釈がより簡単になる。例えば、標本群のいくつかが互いに重なっているか、あるいは別々のクラスタを形成しているかを見ることができるだろう。特定の統計ソフトウェアがなければ、この種の分析は通常は簡単ではなく、ソフトウェアをインストールして設定する必要がある。

 例えば、MS Excelで条件付き書式を適用して色のグラデーションを表示することはできるが、行列をクラスター化したり注釈を付けたりすることは容易ではない。NumXLという独自のExcelアドインを使えば主成分の計算はできるが、グループを表示するのはまたしても複雑である。同様のことがGalaxyウェブサーバ(galaxyproject.org)や一般的な統計ソフト(R, SAS, Statisticaなど)にも当てはまる。PCAの実行やヒートマップのプロットは可能だが、アノテーションの表示や出力のカスタマイズは一般的なユーザにとってはかなり複雑になる。imDEV (ref.4)と呼ばれるExcel組み込みアプリケーションもPCAプロットやヒートマップを作成することができるが、特定のプラットフォームにインストールする必要がある。他のツールでは公開されている遺伝子発現データを直接読み込むことができないため、ツールの外で前処理を行う必要がある。

 著者らはこの種の解析をより簡単にすることを目的とした ClustVis と呼ばれるウェブツールを紹介する。ユーザーは自分のデータをアップロードするか、ArrayExpress(ref.5)の組み込みの公開遺伝子発現マイクロアレイデータセットを使用することができる。ヒートマップとPCAプロットは、直感的なユーザーインターフェースを使用して様々な方法で生成、修正することができる。

 ユーザーがアップロードしたデータセットの場合、ClustVis はデフォルトでデータの区切り記号と注釈行数の両方を自動的に検出する。区切り文字を見つけるために、可能な区切り文字(カンマ、タブレータ、セミコロン)ごとに、各行に何回現れるかをカウントする。全ての行で最小値を取り、最もスコアの高いデリミタを正しいものとして選択するヒューリスティックな方法を使用している。

 アノテーションの数を求める際には、まず、非数値データを含むすべての行をアノテーションとみなす。非整数の数値データの前の最後の行に整数のみが含まれている場合(例えば、男性は0、女性は1という性別)、この行とそれ以前のすべての行がアノテーション行とみなされる。

 主成分は、pcaMethods (ref.9) Rパッケージのメソッドのいずれかを使用して計算される。デフォルトの方法はSVD(SVD with imputation)で、欠損値の推定値が収束するまで入力と特異値分解(SVD)を反復的に行う。Nipals PCAは、内積を計算する際に欠落値を除外して反復的に成分を見つける。確率的PCAも主成分の計算に密度モデルを用いる反復法である。

データの前処理

 行のスケーリングは、pcaMethods (ref.9) Rパッケージのメソッドの1つを使用する。単位分散スケーリング法は、各行の分散が1に等しくなるように、標準偏差で値を分割する。パレート・スケーリング法は、標準偏差平方根で値を分割する。ベクトルスケーリングは、値のユークリッドノルム(二乗和の平方根)で分割する。

ヒートマップ

 ヒートマップは pheatmap R パッケージ (バージョン 0.7.7) を使って作成している。pheatmapパッケージのソースコードは、レイアウトを改善したり、いくつかの機能を追加するために少し修正されている。このパッケージは、Rのdistとhclust関数で実装されている一般的なクラスタリング距離と手法を使用している。距離のリストには、相関(から相関を引いたものとして追加で定義)、ユークリッド距離、最大距離、マンハッタン距離、キャンベラ距離、バイナリ距離が含まれる。連鎖法には、単一、完全、平均、McQuitty、中央値、セントロイド、Ward 連鎖がある。k-meansクラスタリングが選択されている場合、R関数kmeansが使用される。

 

 

webサービス

https://biit.cs.ut.ee/clustvis/ にアクセスする。

f:id:kazumaxneo:20200421234845p:plain

左から右へそれぞれのタブに進めていく。まずはデータを読み込む。

 

1、データのインポートタブ - .csvまたは.tsvのデータの読み込み

f:id:kazumaxneo:20200429201558p:plain

 

ClustVisでデータ分析を行うには、下のようなフォーマットのファイルを準備する。

f:id:kazumaxneo:20200429002755p:plain

入力データ例。helpより転載。

このテーブルでは、数値データの行列は右下に配置され、行ラベルと注釈は行列の左に、列ラベルと注釈は行列の上に配置されている。また注釈ラベルはそれぞれ最初の行と列に配置されている。注釈は任意になる。

 

ここではexampleデータを指定する。データが読み込まれると、ClustVisは区切り記号と注釈行数を自動で認識し(詳細はhelp参照)、下図のように自動でColumn annotationsとRow annotations、そして数値データテーブルに分離する。

f:id:kazumaxneo:20200429003842p:plain

セパレータとして認識可能な文字はカンマ、タブレータ、セミコロンになる。データが正常にアップロードされない場合、行名や列名に重複がないことを確認する。また、欠損値は全てNAまたは空セルで表現されている必要がある。

 

2、前処理タブ - 類似のアノテーションを持つ列を集約したり、値が欠落している行/列を削除する。また、主成分の計算方法の選択や欠落している値の入力も行う。

f:id:kazumaxneo:20200429003921p:plain

 

transformation 

値が数桁異なるようなレンジの広いデータセットの場合、対数変換が推奨される。最小値が0ならIn(x + 1)を選ぶ。

f:id:kazumaxneo:20200429202806p:plain

 

使用するアノテーション情報を限定するならチェックを外す。

f:id:kazumaxneo:20200429205520p:plain

 

アノテーションのレベルに応じて、似たアノテーションをまとめることもできる。

f:id:kazumaxneo:20200429210635p:plain

 

欠損が多い列や行の削除、定数の列の削除なども可能。

f:id:kazumaxneo:20200429211003p:plain

 

スケーリングのメソッドの選択。unit varianceは最も一般的なスケーリング法である。これは,成分を見つけるときに,すべての変数が等しく重要(分散 = 1)になるようにスケーリングされることを意味する.その結果、差が1であるということは、値が互いに1標準偏差離れていることを意味し、行がセンター揃えの場合は、行の平均から離れていることを意味する。

f:id:kazumaxneo:20200429211917p:plain

変数がすでに共通の尺度を持っていて、それらの元のばらつきを維持したい場合(すなわち、ばらつきがより大きい変数がより多くの成分に寄与する結果になる)、'スケーリングなし'を適用する。しかしスケーリングはほとんどのケースで行う必要があることに注意(参考ページ)。

 

最後に他のPCAの手法を選択する。一般的に、SVD(特異値分解)(wiki)は、最もよく使われる標準的なPCA法である。データセットに欠損値がある場合、SVD計算中にデータセット内の他の値を使用して反復的に予測して埋めていく(インピュテーション)。他のPCA法は,欠損値の問題に対処する別の戦略である(マニュアルより)。

f:id:kazumaxneo:20200429213949p:plain

どのPCA手法とどのスケーリング手法ををいつ使用するかは、それぞれの特定のデータセットに依存した問題である。PCAやヒートマッププロットの結果の解釈は非常に主観的であり、他の手法を使ってさらに検証する必要がある(マニュアルより)。

 

 

3、PCA - PCAプロット

行にはunit varianceスケーリングが適用され、主成分の計算にはSVDが使用される。X軸とY軸には主成分1と主成分2が示されている。主成分1は31.1%を占め、主成分2は11.6%を占める。予測の楕円は、確率0.95で、同じグループからの観測値が楕円内に収まることを示している。

f:id:kazumaxneo:20200429235726p:plain

作図のパラメータは左のメニューからインタラクティブに変更可能になっている。

 

別のアノテーションに基づいて色付けすることもできる。アノテーションER statusからtreatmentにカラースキームを変更すると、楕円の重なりが大きくなってしまった。(=> 主成分1と2だけで判断するならER statusの方がより観測値に変化を引き起こした要因である可能性が高い。)

f:id:kazumaxneo:20200430001054p:plain

 

4、ヒートマップ 

マトリックス内の値は色分けされ、オプションで、行および/または列がクラスタ化される。ヒートマップの上にあるアノテーションを見ると、アノテーションされたグループが他のグループよりもよく分離されているかどうかを判断できる。

f:id:kazumaxneo:20200430000141p:plain

 ヒートマップ上のクラスタリングを読む際には、行や列の正確な順序ではなく、どのオブジェクトが最初にクラスタリングツリーにマージされるかに注意を払う必要がある(マニュアルより)。

 

5、エクスポート - 現在の設定で結果をダウンロードする。 

f:id:kazumaxneo:20200430000437p:plain

 

ClustVisに似た機能を持つツールが最近になっていくつか発表されてきています。今後も紹介していきます。

引用
ClustVis: a web tool for visualizing clustering of multivariate data using Principal Component Analysis and heatmap

Metsalu T, Vilo J

Nucleic Acids Res. 2015 Jul 1;43(W1):W566-70

 

参考動画


参考HP