User Tools

Site Tools


data_visualization

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
data_visualization [2018/12/18 12:42] hyjeongdata_visualization [2023/02/15 10:43] (current) – [Heatmap 그림과 phylogenetic tree의 결합] hyjeong
Line 42: Line 42:
  
 === 컬럼의 배열 순서를 임의로 바꾸기 === === 컬럼의 배열 순서를 임의로 바꾸기 ===
 +myord라는 벡터를 하나 생성하여 컬럼 이름을 여기에 순서대로 넣는다. 그리고 다음과 같이 하면 그만이다. 이는 row에 대해서도 똑같이 적용할 수 있다. 이렇게 쉬운 것을 모르고 for 구문을 쓸 궁리를 하다니!
 +  > data_new = data3[, myord]
  
 === 특정 row만을 뽑아내어 후속 분석에 사용하고 싶다면 === === 특정 row만을 뽑아내어 후속 분석에 사용하고 싶다면 ===
Line 72: Line 74:
   > rownames(data) = data[,1]   > rownames(data) = data[,1]
   > data = data[,-1]   > data = data[,-1]
-  # 또는 data = read.table("ANIb_percentage_identity.tab",sep="\t",header=T,row.names=1)+  # 사실 위의 세 줄은 지극히 초보적인 방법이다. 다음 한 줄이면 족하다. 
 +  # data = read.table("ANIb_percentage_identity.tab",sep="\t",header=T,row.names=1)
   > #View(data)   > #View(data)
   # 대각선에 대하여 대칭인 구조이지만 query -> subject 방향에 따라 identity가 똑같지 않다.   # 대각선에 대하여 대칭인 구조이지만 query -> subject 방향에 따라 identity가 똑같지 않다.
Line 98: Line 101:
 {{ :매트릭스-2.png?400 |}} {{ :매트릭스-2.png?400 |}}
 ==== gplots 패키지의 heatmap.2() 함수 이용 ==== ==== gplots 패키지의 heatmap.2() 함수 이용 ====
 +[[https://www.rdocumentation.org/packages/gplots/versions/3.0.1/topics/heatmap.2|heatmap.2 documentation]]
   > library(gplots)   > library(gplots)
   > heatmap.2(as.matrix(data4),col=greenred(10),trace="none",scale="none",dendrogram=c("row"))   > heatmap.2(as.matrix(data4),col=greenred(10),trace="none",scale="none",dendrogram=c("row"))
Line 107: Line 111:
 다음은 레이아웃을 변경하는 예제이다. 여러가지 방법으로 응용해 보라. 가장 유용한 인수 설정은 density.info="none"였다. 이를 적용하면 Color Keys and Histogram(두 줄)이 Color Key로 바뀌면서 텍스트 라벨과 컬러 키가 닿는 불편한 모습이 사라진다. 다음은 레이아웃을 변경하는 예제이다. 여러가지 방법으로 응용해 보라. 가장 유용한 인수 설정은 density.info="none"였다. 이를 적용하면 Color Keys and Histogram(두 줄)이 Color Key로 바뀌면서 텍스트 라벨과 컬러 키가 닿는 불편한 모습이 사라진다.
   > heatmap.2(as.matrix(d2),col=greenred(10),trace="none",scale="none",dendrogram=c("row"),cexCol=1,cexRow=0.2,margins=c(5,20),lhei=c(1,5),density.info="none")   > heatmap.2(as.matrix(d2),col=greenred(10),trace="none",scale="none",dendrogram=c("row"),cexCol=1,cexRow=0.2,margins=c(5,20),lhei=c(1,5),density.info="none")
 +색상 체계가 마음에 들지 않는다면 다음과 같이 팔레트를 자체 정의할 수 있다. 
 +  > my_palette = colorRampPalette(c("turquoise", "yellow", "red"))(n = 100) 
 +  > heatmap.2(x, col=my_palette,...)
 heatmap.2()로 그려지는 plot의 각 요소(heatmatp, row dendrogram, column dendrogram, key)의 위치와 크기를 조절하는 방법은 다음을 참조하라. heatmap.2()로 그려지는 plot의 각 요소(heatmatp, row dendrogram, column dendrogram, key)의 위치와 크기를 조절하는 방법은 다음을 참조하라.
   * [[https://stackoverflow.com/questions/15351575/moving-color-key-in-r-heatmap-2-function-of-gplots-package heatmap.2 |Moving color key in R heatmap.2 (function of gplots package)]]   * [[https://stackoverflow.com/questions/15351575/moving-color-key-in-r-heatmap-2-function-of-gplots-package heatmap.2 |Moving color key in R heatmap.2 (function of gplots package)]]
Line 126: Line 132:
   > d = read.table("matrix_pyani.tab",sep="\t",header=T,row.names=1)   > d = read.table("matrix_pyani.tab",sep="\t",header=T,row.names=1)
   > fit = hclust(dist(as.matrix(d)),method="average")   > fit = hclust(dist(as.matrix(d)),method="average")
 +  # heatmap.2() 함수는 complete agglomeration method를 클러스터링에 사용한다. average method는 UPGMA와 같다.
   > my_tree=as.phylo(fit)   > my_tree=as.phylo(fit)
   > write.tree(phy=my_tree,file="test.newick")   > write.tree(phy=my_tree,file="test.newick")
Line 131: Line 138:
 [[https://stackoverflow.com/questions/21727820/how-to-create-a-newick-file-from-a-cluster-in-r|How to create a newick file from a cluster in R?]] [[https://stackoverflow.com/questions/21727820/how-to-create-a-newick-file-from-a-cluster-in-r|How to create a newick file from a cluster in R?]]
  
-그 반대로, 다른 도구를 통해 만든 tree를 heatmap.2() 함수에 공급할 방법은 없을까? 내가 알기로 그것은 불가능하고, 아래에서 소개할 iTOL을 이용하는 것이 바람직하다. 물론 이것이 유일한 방법은 아니다.+그 반대로, 다른 도구를 통해 만든 tree를 heatmap.2() 함수에 공급할 방법은 없을까? 내가 알기로 그것은 불가능하고, 아래에서 소개할 iTOL을 이용하는 것이 바람직하다. 물론 이것이 유일한 방법은 아니다. 바로 [[https://jokergoo.github.io/ComplexHeatmap-reference/book/|ComplexHeatmap 라이브러리]]가 있다.  
 + 
 +다음은 보다 상세한 heatmap 작성 관련 기술 문서이다. 
 + 
 +[[https://www.datanovia.com/en/lessons/heatmap-in-r-static-and-interactive-visualization/|Heatmap in R: Static and interactive visualization]] - heatmap(), heatmap.2(), interactive heatmap using 3dheatmap(), complexheatmap...
 ===== iTOL 이용하기 ===== ===== iTOL 이용하기 =====
 [[https://jonasjacek.github.io/colors/|256 color cheat sheet]] [[https://jonasjacek.github.io/colors/|256 color cheat sheet]]
data_visualization.1545104534.txt.gz · Last modified: (external edit)