R语言可视化及作图12--venn图、火山图和热图


R语言绘图系列:


venn图:展示不同的分类变量之间互相重叠的关系
火山图:展示基因表达差异
热图:展示不同基因表达聚类

1. venn图

1.1 limma包中的venn

library(limma)
#随机生成一个矩阵(没有实际意义)
Y <- matrix(rnorm(100*6),100,6)
Y[1:10,3:4] <- Y[1:10,3:4]+3
Y[1:20,5:6] <- Y[1:20,5:6]+3
desigh <- cbind(1,c(0,0,1,1,0,0),c(0,0,0,0,1,1))
fit <- eBayes(lmFit(Y,desigh)) #进行贝叶斯回归,生成fit拟合模型,fit作为venn图绘图对象。
results <- decideTests(fit)  #decideTests函数在不同的基因和样本间进行多重对照
a <- vennCounts(results)
print(a)
mfrow.old <- par()$mfrow
op <- par(mfrow=c(1,2))
vennDiagram(results,
            include = c('up','down'),
            counts.col = c('red','blue'),
            circle.col = c('red','blue','green3'))
par(op)

1.2 venn.diagram()函数

library(VennDiagram)
#Then generate 3 sets of words, There I generate 3 times 200 SNPs names.
SNP_pop_1=paste(rep('SNP_',200),sample(c(1:1000),200,replace = F),sep = '')
SNP_pop_2=paste(rep('SNP_',200),sample(c(1:1000),200,replace = F),sep = '')
SNP_pop_3=paste(rep('SNP_',200),sample(c(1:1000),200,replace = F),sep = '')

venn.diagram(
  x=list(SNP_pop_1,SNP_pop_2,SNP_pop_3),
  category.names =c('SNP_pop_1','SNP_pop_2','SNP_pop_3'),
  filename = 'venn_diagramm.png', #输出路径,最好是完整路径。
  output=TRUE,
  imagetype = 'png',
  height = 800,
  width = 800,
  resolution = 300,
  compression = 'lzw',
  lwd=2,
  lty='blank',
  fill=c('yellow','purple','green'),
  cex=1,
  fontface='bold',
  fontfamily='sans',
  cat.cex=0.6, #cat设置分类标签的格式
  cat.fontface='bold',
  cat.default.pos='outer',
  cat.pos=c(-27,27,135),
  cat.dist=c(0.055,0.055,0.085),
  cat.fontfamily='sans',
  rotation=1
)

2. 火山图

2.1 limma包volcanoplot()

sd <- 0.3*sqrt(4/rchisq(100,df=4))
y <- matrix(rnorm(100*6,sd=sd),100,6)
rownames(y) <- paste('Gene',1:100)
y[1:2,4:6] <- y[1:2,4:6]+2
design <- cbind(Grp1=1,Grp2vs1=c(0,0,0,1,1,1))
options(degits=3)

fit <- lmFit(y,design)
fit <- eBayes(fit)
topTable(fit,coef = 2)
dim(fit)
colnames(fit)
rownames(fit)[1:10]
names(fit)

#Fold change thresholding
fit2 <- treat(fit,lfc=0.1)
topTreat(fit2,coef = 2)

#volcano plot
volcanoplot(fit,coef = 2,highlight = 5)

2.2 ggplot2

data_df <- fit2$coefficients
class(data_df)
data_df <- as.data.frame(data_df)
data_df$fac <- as.factor(ifelse(data_df$Grp1>0,1,0))
class(data_df$fac)
library(ggplot2)
p <- ggplot()+geom_point(aes(Grp2vs1,Grp1,color=fac),data=data_df)
#对前五个差异最大的基因标上名字
data_df$name <- paste('gene',1:100)
data_df <- data_df[order(data_df$Grp1,decreasing = T),]
data_df$name[6:100] <- NA
p+geom_text(aes(Grp2vs1,Grp1,label=name),data = data_df,nudge_y = -0.02,nudge_x = 0.05)+theme_classic()

3. 热图

data=as.matrix(mtcars)
head(data)
heatmap(data)

可以看到有些值过高,因此需要标准化

heatmap(data,scale = 'column')
heatmap(data,Colv = NA, Rowv = NA, scale = 'column')

更改颜色:
1: native palette from R

heatmap(data,scale = 'column',col=cm.colors(256))
heatmap(data,scale = 'column',col=terrain.colors(256))
  1. RColorBrewer palette
library(RColorBrewer)
coul=colorRampPalette(brewer.pal(8,'PiYG'))(25)
heatmap(data,scale = 'column',col=coul)

**Custom x and y labels with CexRow and labRow (col respectively)

heatmap(data,scale = 'column',cexRow = 1.5,labRow = paste('new_',rownames(data),sep=''),col=colorRampPalette(brewer.pal(8,'Blues'))(25))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容