2012-03-22 4 views
4

저는 R의 초보자입니다. 행이 개별 개체를 나타내며 열이 이러한 개체에 대해 측정 된 기능을 나타내는 데이터 테이블에서 일부 클러스터링을 시도하고 있습니다. 일부 클러스터링 자습서를 통해 작업했지만 출력을 얻지 만 클러스터링 후에 얻은 히트 맵은 다른 프로그램과 동일한 데이터 테이블에서 생성 된 히트 맵에 전혀 해당하지 않습니다. 이 프로그램의 히트 맵은 개체 간의 마커 표현에 명확한 차이가 있음을 나타내지 만 히트 맵은 많은 차이점을 나타내지 않으며 히트 맵의 클러스터링 (즉, 색상) 패턴을 인식 할 수 없으며 무작위로 뒤죽박죽 된 세트처럼 보인다 서로 가까이있는 색상 (큰 콘트라스트 없음). 다음은 내가 사용하고있는 코드의 예입니다. 누군가 내가 잘못하고있는 것에 대한 아이디어를 가지고있을 수도 있습니다. 나는 다른 프로그램이 그렇게 알고 있기 때문에클러스터링 및 히트 맵 R

mydata <- read.table("mydata.csv") 
datamat <- as.matrix(mydata) 
datalog <- log(datamat) 

나는 다시, 나는 원래 색상을 플롯하지만 난 것을 알고 있기 때문에 로그 - 클러스터를 사용하여도, 클러스터링에 대한

library(gplots) 

hr <- hclust(as.dist(1-cor(t(datalog), method="pearson")), method="complete") 
mycl <- cutree(hr, k=7) 
mycol <- sample(rainbow(256)); mycol <- mycol[as.vector(mycl)] 
heatmap(datamat, Rowv=as.dendrogram(hr), Colv=NA, 
    col=colorpanel(40, "black","yellow","green"), 
    scale="column", RowSideColors=mycol) 

를 로그 값을 사용하고 있습니다 이것이 다른 프로그램이하는 일입니다.

나는이 방법으로 놀려고했지만, 적어도 어떻게 든 클러스터 된 히트 맵처럼 보이지는 않을 것이다. 스케일링을 제거하면 히트 맵이 극도로 어두워집니다 (실제로 필자는 열을 기준으로 데이터의 크기를 조정하거나 표준화 할 수 있다고 확신합니다). 나는 또한 k- 수단으로 모이려고했지만, 다시는 도움이되지 못했습니다. 내 생각으로는 두 개의 특이점으로 인해 색 눈금이 완전히 사용되지 않을 수 있지만 히트 맵에서 색의 범위를 약간 늘리더라도 적절한 클러스터가 표시되지 않았습니다.

내가 가지고 놀 수 있는게 뭔가 있습니까?

히트 맵으로 색 눈금을 변경하여 "특정 값보다 큰 모든 것"범위를 가진 마지막 빈에서 이상 치를 찾을 수 있습니까? 히트 맵 2 (인수 "나누기")로이 작업을 시도했지만 성공하지 못했으며 히트 맵 기능과 함께 사용하는 행 측면 색상을 지정하지도 않았습니다.

+0

ggplot2를 사용한 히트 맵 생성에 대한 자습서는 [http://learnr.wordpress.com/2010/01/26/ggplot2-quick-heatmap-plotting/] –

+0

에서 사용할 수 있습니다. R의 클러스터 분석에 대한 자습서를 사용할 수 있습니다. [http://www.statmethods.net/advstats/cluster.html] –

+0

@ EtienneLow-Décarie : 감사합니다. 이전에 Thomas Girke의 튜토리얼을 통해이 튜토리얼을 살펴 봤지만 그게 도움이되지 않았습니다. 문제를 식별 할 수 있습니다. 사실, 나는 많은 웹 사이트와 튜토리얼을 사용하여 일주일 동안 해결책을 찾고자했습니다. 클러스터링이 제대로 작동하지 않아 간과 한 특정 세부 사항에 대한 힌트를 줄 수 있다면 정말 대단합니다. – AnjaM

답변

1

gplots 패키지에서 heatmap.2를 사용해도 괜찮 으면 휴식 시간을 추가하여 히트 맵에 표시된 범위에 색상을 할당 할 수 있습니다. 당신은에 해당하는 값의 3 개 세트가이 경우

my.breaks <- c(seq(-5, -.6, length.out=6),seq(-.5999999, .1, length.out=4),seq(.100009,5, length.out=7)) 
result <- heatmap.2(mtscaled, Rowv=T, scale='none', dendrogram="row", symm = T, col=bluered(16), breaks=my.breaks) 

: 예를 들어
당신은 값이이 같은 일을 할 수있는 로우에서 하이로가는 파란색, 흰색, 빨간색 3 색이 있다면 3 가지 색상을 사용하면 데이터에 어떤 값이 있는지에 따라 값이 달라집니다.

프로그램에서 수행하는 한 가지 작업은 히트 맵을 호출하기 위해 데이터에 hclust를 호출하는 것이지만 히트 맵 설명서 페이지를 보면 의 기본값은 hclust입니다. 그래서 나는 그렇게 할 필요가 없다고 생각합니다. 당신은 당신이 얻을 히트 맵의 이미지를 게시 할 경우

Heatmap Question 1

Heatmap Question 2

: 당신은 정확한 방향을 가리 키도록 도움이 될 수 있습니다 내가 질문했던 일부 유사한 질문에서 살펴 봐야 할 수 있습니다 다른 프로그램이 만들고있는 히트 맵의 이미지는 우리가 더 쉽게 당신을 도울 수있게 해줍니다.