data_visualization
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| data_visualization [2018/07/18 13:35] – [매트릭스 형태의 텍스트 파일을 R에서 읽어들이기(2)] hyjeong | data_visualization [2023/02/15 10:43] (current) – [Heatmap 그림과 phylogenetic tree의 결합] hyjeong | ||
|---|---|---|---|
| Line 6: | Line 6: | ||
| ==== 유용한 링크들 ==== | ==== 유용한 링크들 ==== | ||
| - | * [정해영의 블로그] [[http:// | + | * [정해영의 블로그] [[http:// |
| * [정해영의 블로그] [[http:// | * [정해영의 블로그] [[http:// | ||
| * [[https:// | * [[https:// | ||
| Line 16: | Line 16: | ||
| ==== 매트릭스 형태의 텍스트 파일을 R에서 읽어들이기(1) ==== | ==== 매트릭스 형태의 텍스트 파일을 R에서 읽어들이기(1) ==== | ||
| - | LS-BSR이 생성하는 결과 파일 중 하나인 **ls-bsr_out_bsr_matrix.txt**의 구조는 다음과 같다. 이 그림은 ooffice --calc < | + | Marker gene을 제공하지 않고 |
| {{ : | {{ : | ||
| Line 36: | Line 36: | ||
| | | ||
| - | === 컬럼의 배열 순서 | + | === 컬럼의 배열 순서 |
| marker gene(g< | marker gene(g< | ||
| > data2_r = data3[, | > data2_r = data3[, | ||
| + | === 컬럼의 배열 순서를 임의로 바꾸기 === | ||
| + | myord라는 벡터를 하나 생성하여 컬럼 이름을 여기에 순서대로 넣는다. 그리고 다음과 같이 하면 그만이다. 이는 row에 대해서도 똑같이 적용할 수 있다. 이렇게 쉬운 것을 모르고 for 구문을 쓸 궁리를 하다니! | ||
| + | > data_new = data3[, myord] | ||
| === 특정 row만을 뽑아내어 후속 분석에 사용하고 싶다면 === | === 특정 row만을 뽑아내어 후속 분석에 사용하고 싶다면 === | ||
| Line 57: | Line 60: | ||
| ==== 테이블 병합하기 ==== | ==== 테이블 병합하기 ==== | ||
| < | < | ||
| + | |||
| + | 그런데 모든 텍스트 파일의 key가 동일한 set이 아니라면 위에서 소개한 방법으로는 잘 되지 않을 것이다. | ||
| ==== 매트릭스 형태의 텍스트 파일을 R에서 읽어들이기(2) ==== | ==== 매트릭스 형태의 텍스트 파일을 R에서 읽어들이기(2) ==== | ||
| 이번에는 [[https:// | 이번에는 [[https:// | ||
| Line 69: | Line 74: | ||
| > rownames(data) = data[,1] | > rownames(data) = data[,1] | ||
| > data = data[,-1] | > data = data[,-1] | ||
| - | # 또는 | + | # 사실 위의 세 줄은 지극히 초보적인 방법이다. 다음 한 줄이면 족하다. |
| + | # data = read.table(" | ||
| > #View(data) | > #View(data) | ||
| # 대각선에 대하여 대칭인 구조이지만 query -> subject 방향에 따라 identity가 똑같지 않다. | # 대각선에 대하여 대칭인 구조이지만 query -> subject 방향에 따라 identity가 똑같지 않다. | ||
| Line 95: | Line 101: | ||
| {{ : | {{ : | ||
| ==== gplots 패키지의 heatmap.2() 함수 이용 ==== | ==== gplots 패키지의 heatmap.2() 함수 이용 ==== | ||
| + | [[https:// | ||
| > library(gplots) | > library(gplots) | ||
| > heatmap.2(as.matrix(data4), | > heatmap.2(as.matrix(data4), | ||
| Line 104: | Line 111: | ||
| 다음은 레이아웃을 변경하는 예제이다. 여러가지 방법으로 응용해 보라. 가장 유용한 인수 설정은 density.info=" | 다음은 레이아웃을 변경하는 예제이다. 여러가지 방법으로 응용해 보라. 가장 유용한 인수 설정은 density.info=" | ||
| > heatmap.2(as.matrix(d2), | > heatmap.2(as.matrix(d2), | ||
| + | 색상 체계가 마음에 들지 않는다면 다음과 같이 팔레트를 자체 정의할 수 있다. | ||
| + | > my_palette = colorRampPalette(c(" | ||
| + | > heatmap.2(x, | ||
| + | heatmap.2()로 그려지는 plot의 각 요소(heatmatp, | ||
| + | * [[https:// | ||
| === Label에 색깔 입히기 === | === Label에 색깔 입히기 === | ||
| - | Row label에 쓰인 값들을 사전에 특별한 규칙에 의해서 그룹으로 묶어 두었다고 가정하자. 실제로 heatmap에서 dendrogram으로 묶이는 것과는 어떤 차이가 있을까? Row label에 그룹별로 색깔을 입힐 수 있다면 가능하다. key_info.txt 파일을 준비하여 다음과 같은 정보를 기록하라. 여기에서는 4개 컬럼으로 구성하여 첫번째가 key, 네번째가 color인 것으로 정하였으나 이는 사용자 맘대로이다. | + | Row label에 쓰인 값들을 사전에 특별한 규칙에 의해서 그룹으로 묶어 두었다고 가정하자. 실제로 heatmap에서 dendrogram으로 묶이는 것과는 어떤 차이가 있을까? Row label에 그룹별로 색깔을 입힐 수 있다면 가능하다. key_info.txt 파일을 준비하여 다음과 같은 정보를 기록하라. 여기에서는 4개 컬럼으로 구성하여 첫번째가 key, 네번째가 color인 것으로 정하였으나 이는 사용자 맘대로이다. 다음을 a 라는데이터프레임에 저장하였다고 가정하자. |
| key1 | key1 | ||
| key2 | key2 | ||
| key3 | key3 | ||
| + | 색깔에 해당하는 컬럼을 cols = a[,4] 명령으로 슬라이스한 뒤 heatmap.2(x, | ||
| ==== Heatmap 그림과 phylogenetic tree의 결합 ==== | ==== Heatmap 그림과 phylogenetic tree의 결합 ==== | ||
| Line 119: | Line 132: | ||
| > d = read.table(" | > d = read.table(" | ||
| > fit = hclust(dist(as.matrix(d)), | > fit = hclust(dist(as.matrix(d)), | ||
| + | # heatmap.2() 함수는 complete agglomeration method를 클러스터링에 사용한다. average method는 UPGMA와 같다. | ||
| > my_tree=as.phylo(fit) | > my_tree=as.phylo(fit) | ||
| > write.tree(phy=my_tree, | > write.tree(phy=my_tree, | ||
| Line 124: | Line 138: | ||
| [[https:// | [[https:// | ||
| - | 그 반대로, 다른 도구를 통해 만든 tree를 heatmap.2() 함수에 공급할 방법은 없을까? 내가 알기로 그것은 불가능하고, | + | 그 반대로, 다른 도구를 통해 만든 tree를 heatmap.2() 함수에 공급할 방법은 없을까? 내가 알기로 그것은 불가능하고, |
| + | |||
| + | 다음은 보다 상세한 heatmap 작성 관련 기술 문서이다. | ||
| + | |||
| + | [[https:// | ||
| ===== iTOL 이용하기 ===== | ===== iTOL 이용하기 ===== | ||
| [[https:// | [[https:// | ||
data_visualization.1531888500.txt.gz · Last modified: (external edit)
