User Tools

Site Tools


manipulation_of_ani_matrix_data_file_using_r

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
manipulation_of_ani_matrix_data_file_using_r [2023/02/15 13:07] – [Label을 자유롭게 표시하기] hyjeongmanipulation_of_ani_matrix_data_file_using_r [2023/02/15 17:04] (current) – [Label을 자유롭게 표시하기] hyjeong
Line 173: Line 173:
   > heatmap.2(as.matrix(ani),col=greenred(10),trace="none",scale="none",dendrogram=c("row"))   > heatmap.2(as.matrix(ani),col=greenred(10),trace="none",scale="none",dendrogram=c("row"))
   > library(ComplexHeatmap)   > library(ComplexHeatmap)
-  > Heatmap(as.matrix(ani), name="test", row_names_gp = gpar(fontsize = 5), column_names_gp = gpar(fontsize = 5)) +  > Heatmap(as.matrix(ani), name="ANI", row_names_gp = gpar(fontsize = 5), column_names_gp = gpar(fontsize = 5)) 
 +{{ :heatmap_20230215.png?400 |Heatmap()으로 그렸음.}}
 이번에는 row와 column을 서로 다른 방식으로 클러스터링해 보자. row는 임포트한 트리(ezTree_51_pfam_rooted.nwk, dendrogram 객체여야 함)를 기준으로 정렬하되 column은 ani 데이터프레임의 값으로 자체적인 클러스터링을 적용한다. 실제로 그려보니 별로 예쁘질 않다. 이번에는 row와 column을 서로 다른 방식으로 클러스터링해 보자. row는 임포트한 트리(ezTree_51_pfam_rooted.nwk, dendrogram 객체여야 함)를 기준으로 정렬하되 column은 ani 데이터프레임의 값으로 자체적인 클러스터링을 적용한다. 실제로 그려보니 별로 예쁘질 않다.
-  > Heatmap(as.matrix(ani), name="test", cluster_rows = tree.2, row_names_gp = gpar(fontsize = 5), column_names_gp = gpar(fontsize = 5))+  > Heatmap(as.matrix(ani), name="ANI", cluster_rows = tree.2, row_names_gp = gpar(fontsize = 5), column_names_gp = gpar(fontsize = 5))
 row와 column 전부 tree.2를 기준으로 정렬해 보자. row와 column 전부 tree.2를 기준으로 정렬해 보자.
-  > Heatmap(as.matrix(ani), name="test", cluster_rows = tree.2, cluster_columns = tree.2, row_names_gp = gpar(fontsize = 5), column_names_gp = gpar(fontsize = 5))+  > Heatmap(as.matrix(ani), name="ANI", cluster_rows = tree.2, cluster_columns = tree.2, row_names_gp = gpar(fontsize = 5), column_names_gp = gpar(fontsize = 5))
 ==== Label을 자유롭게 표시하기 ==== ==== Label을 자유롭게 표시하기 ====
 위에서 보인 ani 데이터프레임의 라벨 치환 사례에서는 accession-strain.csv 파일로부터 data 데이터프레임을 만들고, 이로부터 key라는 named vector를 생성하여 사용했었다. 그러나 Heatmap() 함수에서는 각 축의 고유한 라벨은 그대로 두되 그림으로 나타낼 라벨만 원하는 형태로 바꿀 수 있다. 단, data 데이터프레임으로부터 아까의 것과는 반대 구조를 갖는 named vector(key.2)를 만들어야 한다. 편의상 row label만 실제 균주의 full name으로 바꾸어서 heatmap을 그려 보자. 위에서 보인 ani 데이터프레임의 라벨 치환 사례에서는 accession-strain.csv 파일로부터 data 데이터프레임을 만들고, 이로부터 key라는 named vector를 생성하여 사용했었다. 그러나 Heatmap() 함수에서는 각 축의 고유한 라벨은 그대로 두되 그림으로 나타낼 라벨만 원하는 형태로 바꿀 수 있다. 단, data 데이터프레임으로부터 아까의 것과는 반대 구조를 갖는 named vector(key.2)를 만들어야 한다. 편의상 row label만 실제 균주의 full name으로 바꾸어서 heatmap을 그려 보자.
-  > key.2 = data[,2] +  > key.2 = data[,2]        # Paenibacillus polymyxa WLY78 
-  > names(key.2) = data[,1]+  > names(key.2) = data[,1] # GCF_000463565.1
   > key.2   > key.2
                         GCF_000463565.1                       GCF_000714835.1                          GCF_000463565.1                       GCF_000714835.1 
          "Paenibacillus polymyxa WLY78"      "Paenibacillus polymyxa DSM 365"           "Paenibacillus polymyxa WLY78"      "Paenibacillus polymyxa DSM 365" 
   ...   ...
-  > Heatmap(ani, name = "ANI", row_labels = key.2[rownames(ani)], row_names_gp = gpar(fontsize = 5), column_names_gp = gpar(fontsize = 5)) +  > Heatmap(as.matrix(ani), name = "ANI", row_labels = key.2[rownames(ani)], row_names_gp = gpar(fontsize = 5), column_names_gp = gpar(fontsize = 5)) 
 +{{ :heatmap_20230215b.png?400 |Row label을 치환하여 그린 heatmap. 데이터프레임 자체의 row label은 바뀌지 않았다.}}
 ComplexHeatmap의 활용법을 자세히 알아보려면 [[https://jokergoo.github.io/ComplexHeatmap-reference/book/index.html|Complete Reference]]를 참고하기 바란다. ComplexHeatmap의 활용법을 자세히 알아보려면 [[https://jokergoo.github.io/ComplexHeatmap-reference/book/index.html|Complete Reference]]를 참고하기 바란다.
manipulation_of_ani_matrix_data_file_using_r.1676434023.txt.gz · Last modified: by hyjeong