@agpwhy
2022-05-15T08:51:56.000000Z
字数 1984
阅读 193
这里讲一个怎么把你的图存成ppt的方法, 顺带加一个花活儿,做个渐变火山图。
看到Y叔“我不会用illustrator,只会用ppt!”一文里,提到Y叔不怎么用Illustrator做图。确实在大部分情况下,各种需要Adobe Illustrator解决的问题都可以用office解决大半,关键在于怎么转换成office的格式。
这里就需要export包了。
前面这部分前面有写过笔记,就不再多赘述。
library(stringr)
library(AnnoProbe)
library(tinyarray)
library(tidyverse)
library(ggplot2)
library(export)
library(ggthemes)
rm(list = ls())
options(stringsAsFactors = F)
gse = "GSE4107"
geo = geo_download(gse)
geo$exp = log(geo$exp+1)
change_list = ifelse(str_detect(geo$pd$title,"control"),"control","treat")
change_list = factor(change_list,levels = c("control","treat"))
find_anno(geo$gpl)
ids <- AnnoProbe::idmap('GPL570')
dcp = get_deg_all(geo$exp,
change_list,
ids,
logFC_cutoff = 1,
scale_before = T,
cluster_cols = F)
这里为了做火山图,就不对基因做筛选了,直接使用所有包含的基因。
deg <- dcp[[1]]
deg$Group = "not-significant"
deg$Group[which( (deg$adj.P.Val < 0.05) & (deg$logFC > .5) )] = "up-regulated"
deg$Group[which( (deg$adj.P.Val < 0.05) & (deg$logFC < -.5) )] = "down-regulated"
summary(as.factor(deg$Group))
deg$Label = ""
deg<- deg[order(deg$adj.P.Val), ]
up.genes <- head(deg$symbol[which(deg$Group == "up-regulated")], 10)
down.genes <- head(deg$symbol[which(deg$Group == "down-regulated")], 10)
deg.top10.genes <- c(as.character(up.genes), as.character(down.genes))
deg$Label[match(deg.top10.genes, deg$symbol)] <- deg.top10.genes
这部分代码来源于《生信师兄》,做了部分的修改。
p <- ggplot(deg,aes(logFC, -log10(adj.P.Val)))+
geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "#999999")+ #这里是为了说明p=0.05的界限在哪儿
geom_point(aes(size=-log10(adj.P.Val), color= -log10(adj.P.Val)))+
scale_color_viridis_c(option = "plasma")+
scale_size_continuous(range = c(.1,4))+
theme_bw()+
theme(panel.grid = element_blank(),
legend.position = c(0.9,0.3),
legend.justification = c(0,1)
)+
guides(col = guide_colourbar(title = "-Log10_q-value"),
size = "none")+
geom_text(aes(label=Label, color = -log10(adj.P.Val)), size = 3, vjust = 1.5, hjust=1)+
xlab(expression(log[2]~FC))+
ylab(expression(-log[10]~(p~value~adjusted)))
最后做的效果如下:
这个真的很简单,用export这个包只要这样:
graph2ppt(p, file="volcano.pptx")
其他各种office格式都可以,表格也可以输出成各种方便的形式。