3

私はいくつかのマイクロアレイデータについてRでヒートマップを生成しようとしてきましたが、ほとんどの場合、オンラインの指示に基づいてヒートマップを作成することに成功しましたが、それは私が望むものとまったく同じではありません. 私が望むのは、ユークリッド距離ではなくピアソン距離に基づいてデータをクラスター化することですが、いくつかの問題に遭遇しました。

heatmap2 (gplots パッケージから) を使用して、次のコードを使用して最初のヒート マップを作成します。

heatmap.2(Test402,trace="none",density="none",scale="row", ColSideColors=c("red","blue")   [data.test.factors],col=redgreen,labRow="",hclustfun=function(x) hclust(x,method="complete"))

Test402 は 402 行 (遺伝子) と 31 列 (患者) の行列で、data.test.factors は各患者が属する結果グループの指標です。ここで hclustfun を使用すると問題なく動作し、ヒートマップはメソッドの変更と全体的な動作に反応しているようです。問題は、クラスタリング距離がすべてユークリッド距離であることです。それをピアソン距離に変更したいと思います。だから私は次のことを試みます:

heatmap.2(Test402,trace="none",density="none",scale="row", ColSideColors=c("red","blue")[data.test.factors],col=redgreen,labRow="",hclustfun=function(x) hclust(x,method="complete"), distfun=function(x) as.dist((1-cor(x))/2) )

上記のコマンドは失敗します。これは、Test402が正方行列である必要があるためです。そこで、いくつかの追加のアドバイスを見て、次のことを試しました。

cU = cor(Test402)
heatmap.2(cU,trace="none",density="none",scale="row", ColSideColors=c("red","blue")[data.test.factors],col=redgreen,labRow="",hclustfun=function(x) hclust(x,method="complete"), distfun=function(x) as.dist((1-x)/2) )

それは機能しますが、ここに問題があります。ヒートマップは、TEST402 の元の式の値ではなく、相関のみを表示するようになりました。これは私が欲しいものではありません!私はこれが欲しいのですが、デンドログラムを別の方法でクラスター化するだけで、ヒートマップで実際に表されるデータを変更したくありません! これは可能ですか?

4

1 に答える 1