生信精读文献R语言做生信科研信息学

pheatmap包学习

2019-04-09  本文已影响38人  drlee_fc74

pheatmap

pheatmap热图绘制

加载所需要的包

library(pheatmap)
library(tidyverse)
## ── Attaching packages ──────────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 2.2.1     ✔ purrr   0.2.4
## ✔ tibble  1.4.2     ✔ dplyr   0.7.4
## ✔ tidyr   0.8.0     ✔ stringr 1.3.0
## ✔ readr   1.1.1     ✔ forcats 0.3.0
## ── Conflicts ─────────────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()

读入数据

mRNA <- read.csv("mRNA.csv", row.names = 1)

查看数据

dim(mRNA)
## [1] 10 10
mRNA[1:5,1:5]
##          TCGA.3X.AAV9.01A TCGA.3X.AAVA.01A TCGA.3X.AAVB.01A
## EVX1             3.166316        12.398085        0.2020127
## PSORS1C3        40.911014        19.686677      112.0638554
## KLK8            62.634384         0.000000        0.0000000
## ZNF880          43.752488        52.678184       68.0266351
## KLK10           86.754056         2.724418      121.4368925
##          TCGA.3X.AAVC.01A TCGA.3X.AAVE.01A
## EVX1             3.554979         2.748956
## PSORS1C3        58.395365        29.313010
## KLK8             3.592886         0.000000
## ZNF880          25.269561        25.993532
## KLK10           24.103295        14.008254

最初原始的热图绘制

pheatmap(mRNA)
image.png

热图颜色的调整

  1. color 进行颜色调整 默认为colorRampPalette(rev(brewer.pal(n = 7, name = “RdYlBu”)))(100) 括号中的100代表渐变的时候图例的区分度 breaks 改变图例的范围。如果颜色设定为100个区分,breaks最好也有100个。
pheatmap(mRNA, color = colorRampPalette(c("#3C7DAF", "#EAF4F1","#FFFCBA", "#E83140"))(100))
image.png
pheatmap(mRNA, color = colorRampPalette(c("#3C7DAF", "#EAF4F1","#FFFCBA", "#E83140"))(100), 
         breaks = seq(-10,150,length.out = 100))
image.png

列名和行名的改变

  1. show_rownames/show_colnames 是否去掉行名和列名
  2. labels_row/labels_col 自定义行名和列名
pheatmap(mRNA, show_rownames = F, show_colnames = F)
image.png
labels_row <- str_c("G",1:10)
pheatmap(mRNA, labels_row = labels_row)
image.png

表达值的变换

  1. scale参数把数据集的数据按照中间值来进行数据变化。默认的为“none”,可以改为“row”或者“column”
pheatmap(mRNA, scale = "row")
image.png
pheatmap(mRNA, scale = "column")
image.png

单元格的改变

  1. border_color 改变单元格边框的颜色。默认为“grey60”.
  2. cellheight/cellwidth 改变单元格的高度和宽度。 默认为NA
pheatmap(mRNA,  scale = "row",cellheight = 5, cellwidth = 10 ,border_color = "black")
image.png

聚类的调整

  1. cluster_cols/cluster_rows 是否显示聚类
  2. treeheight_row/treeheight_col 聚类中高度的调整,默认为50
  3. clustering_distance_rows/clustering_distance_cols 聚类排列的方式,可选’correlation’, ‘euclidean’(default), ‘maximum’, ‘manhattan’, ‘canberra’, ‘binary’, ‘minkowski’
  4. clustering_method 聚类方法的调整。可选的参数有 ‘ward’, ‘ward.D’, ‘ward.D2’, ‘single’, ‘complete’, ‘average’, ‘mcquitty’, ‘median’ or ‘centroid’。
  5. cutree_rows/cutree_cols 基于层次聚类,划分行的簇数,如果未聚集行,则忽略参数
pheatmap(mRNA,  treeheight_col = 25, treeheight_row = 75)
image.png
pheatmap(mRNA,  treeheight_col = 25, treeheight_row = 75, clustering_distance_col = "correlation")
image.png
pheatmap(mRNA, cutree_col = 2)
image.png
pheatmap(mRNA, gaps_col = 5)
image.png

一般可以做聚类,但是高度设置为0

对热图进行分割

  1. gaps_row/gaps_col 对热图进行分割,只有没有聚类的时候进行使用
pheatmap(mRNA, cluster_rows = F, cluster_cols = F, gaps_row = 3, gaps_col = c(4,8))
image.png

相关分析

  1. method 各个样本之间的相关分析 可选“pearson” (default), “kendall”, or “spearman”
pheatmap(mRNA, methods = "kendall")
image.png

图例的显示与否

  1. legend 图例是否显示
  2. legend_breaks 对图例进行分割不按照默认的显示
  3. legend_labels 对分割的图例进行自定义标签
pheatmap(mRNA, legend = F)
image.png
pheatmap(mRNA, legend_breaks = c(0,100,120))
image.png
pheatmap(mRNA, legend_breaks = c(0,100,120), legend_labels = c("min", "median", "max"))
image.png

设置图的标题

pheatmap(mRNA, main = "example")
image.png

字体大小的调整

  1. fontsize 对所有字体进行调整
  2. fontsize_row/fontsize_col 对行/列的字体大小进行调整 默认值为10
pheatmap(mRNA, fontsize_col = 15, fontsize_row = 5)
image.png

网格中数字的显示

  1. display_numbers 是否显示数字
  2. number_format 数字的格式 “%.2f”代表小数点儿后两位; “%.1e”代表科学指数符号
  3. fontsize_number 显示数字的大小 默认为0.8 * fontsize即8
  4. number_colors 单元格中的颜色
pheatmap(mRNA, display_numbers = T, number_format = "%.1f", fontsize_number = 7, number_color = "black")
image.png
pheatmap(mRNA, display_numbers = matrix(ifelse(mRNA > 100, "*", ""), nrow(mRNA)))
image.png

添加注释

  1. annotation_row/annotation_col 定义注释的类别
  2. annotation_col 定义注释的颜色
  3. annotation_names_row/annotation_names_col 逻辑值是否显示注释的名字
  4. annotation_legend 是否显示**注释的图例
  5. drop_levels 逻辑值决定是否没有提到的水平显示在图例中
##定义列的注释
annotation_col <- data.frame(
  Gender = factor(rep(c("F", "M"), 5)),
  Type = factor(rep(str_c("G",1:5),2)))
##一定要记得数据框的行名
rownames(annotation_col) <- colnames(mRNA)
##定义行的注释
annotation_row <- data.frame(
  module = factor(rep(c("grey60", "blue"),5)),
  example = factor(rep(c("abv", "eqw"),5))
)
rownames(annotation_row) <- rownames(mRNA)
##定义注释的颜色.使用list进行定义
ann_colors <- list(
  Gender = c(F = "#007C46", M = "#00D0D1"),
  Type = c(G1 = "black",  G2 = "white",  G3 = "blue",  G4 = "#A25BAA", G5 = "orange"),
  module = c(grey60 = "black", blue = "orange"),
  example = c(abv = "#007C46", eqw = "#00D0D1")
)
pheatmap(mRNA, annotation_col = annotation_col, annotation_row = annotation_row ,annotation_names_row = T, annotation_legend = T,
         annotation_colors = ann_colors, annotation_names_col = F, gaps_row = 2)
image.png

文件的输出 filename 保存文件的文件名 width/height 定义文件的宽度/高度

上一篇下一篇

猜你喜欢

热点阅读