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 14:27] – [매트릭스 형태의 텍스트 파일을 R에서 읽어들이기(1)] 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에 색깔 입히기 === | ||
Line 120: | 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 125: | Line 138: | ||
[[https:// | [[https:// | ||
- | 그 반대로, 다른 도구를 통해 만든 tree를 heatmap.2() 함수에 공급할 방법은 없을까? 내가 알기로 그것은 불가능하고, | + | 그 반대로, 다른 도구를 통해 만든 tree를 heatmap.2() 함수에 공급할 방법은 없을까? 내가 알기로 그것은 불가능하고, |
+ | |||
+ | 다음은 보다 상세한 heatmap 작성 관련 기술 문서이다. | ||
+ | |||
+ | [[https:// | ||
===== iTOL 이용하기 ===== | ===== iTOL 이용하기 ===== | ||
[[https:// | [[https:// |
data_visualization.1531891622.txt.gz · Last modified: (external edit)