pheatmap 값에 따른 color 범위 조절하기
heatmap에서는 일반적으로 발현량을 RdBl 색깔로 표현한다.
p-value를 여기서 적용하면 0.05라는 경계를 두고 보기에는 조금 불편하다. 0.6과 0.4를 사람 눈으로는 구별 할 수 없기 때문이다.
value에 따라서 구분하는 방법을 설명하고자 한다.
값이 -1부터 1까지 존재한다. ( DEG 분석에서 발현이 증가하는지 감소하는지 여부를 나타내려고 했다. )
1-adjust pvalue니까 0.95이상이거나 -0.95이하일 때가 p-value 0.05 이하이다.
library(RColorBrewer)
pheatmap(df, legend_breaks = c(-0.95, 0, 0.95, max(df)), legend_labels = c("-0.95", "0", "0.95", "1-(p.adj)\n"), legend=T, color = RColorBrewer::brewer.pal(7,"RdYlBu"), breaks = c(-1,-0.95,-0.9,-0.3,0.3,0.9,0.95,1))
legend_breaks = 범례에 글이 표시될 부분을 마크한다. 글자 크기가 너무 커서 전부를 표시하려 하지는 않았다.
legend_labels = breaks가 가리키는 포인트에 입력될 문자열을 넣으면 된다.
legend = T 범례를 표시할 것인지 여부. default는 F이다.
color = plot에 들어갈 색깔을 지정한다. 여기서는 Read/Yellow/Blue의 순서대로 7개로 나누어진 palette를 의미한다.
breaks = 데이터를 어떻게 나눌지를 의미한다. -1에서 -0.95 사이의 값이 color에서 1번 색깔로 지정 될 것이다.
breaks를 더 늘리게 되면 palette의 숫자 7도 여기에 맞춰서 늘려주면 된다. 색을 세 개를 혼합하였다면 가능하면 홀수로 맞추도록 하자.
Reference -
https://stackoverflow.com/questions/32545256/define-specific-value-colouring-with-pheatmap-in-r
'Computer Science > R' 카테고리의 다른 글
Gene id conversion in R (0) | 2018.11.16 |
---|---|
Kegg pathway에 속하는 유전자 정보 가져오기 (2) | 2018.09.11 |
pheatmap으로 heatmap그리기 (0) | 2018.09.11 |
R에서 Dataframe 합치기 (0) | 2018.09.05 |
DESeq2 에서 multiple condition 수행하기 (1) | 2018.07.27 |