R2-20 第七次作业 火山图

科研狗聪 2017-12-18 22:52:29 阅读: 1129
##作业1自定义主题练习
library(ggplot2)
mytheme_volcano <- theme_classic() +
  theme(panel.grid = element_blank(),   #隐藏网格线
        legend.position = "no",             #移除图例
        plot.caption = element_text(face = "bold.italic"), #caption签名element_text字体face格式设置为黑体加斜体
        panel.border=element_rect(fill='transparent', color='black')) #加上上右边界线封闭图形
ggplot(mtcars, aes(factor(cyl))) + 
  geom_bar(aes(fill = factor(gear)), width = 0.6) + 
  labs(title = "title", subtitle = "subtitle", caption = "caption", x = "cyl", fill = "gear") + 
  mytheme_volcano

##作业2画火山图并利用自定义主题
setwd("F:\\Doctor\\R语言学习\\互助小组\\第7期作业\\R2-第七期作业-火山图")
install.packages("latex2exp") #安装"latex2exp"包,以便log等数学符号输出
library(latex2exp)
library(ggplot2)
myvolcano <- read.csv("nature23643-s4.csv")       
myvolcano$significant <- as.factor(ifelse(-log2(myvolcano$q_value)>5,
                                  ifelse(abs(log2(myvolcano$FC)) >1,"yes" ,"not"),"not"))#区分表达差异显著基因 
mysig <- subset(myvolcano,significant == "yes")#提取差异显著基因子集
ydrop = 0.6 #用于设置箭头直线和三角的y轴位置
textdrop = 1.2 #用于设置“...regulated"位置
ggplot(myvolcano,aes(x = log2(FC) , y = -log2(q_value),size = significant)) + 
  geom_point(col = "grey70",alpha = 1) +  #画基本灰色点图
  scale_size_manual(values = c(2,0)) + #自定义点的大小,并把显著差异的点的大小设置为0
  geom_point(data = mysig,aes(x = log2(FC),y = -log2(q_value),
                              color=锘縂ene.ID),size = 4) + #画差异基因点图(本来color应该=Gene ID,但数据读取乱码,所以用乱码代替)
  geom_text(data = mysig,aes(label = 锘縂ene.ID),size =4,hjust=0.5,vjust =1.5,col = "black",
            fontface = "italic") +  #给差异基因加上名字
  annotate("segment", x = 1 , xend = 2.5, y = ydrop,yend  = ydrop ,color = "black",
           size = 1,arrow = arrow(angle = 18,ends = "last",type = "closed")) + #画箭头
  annotate("segment", x = -1 , xend = -2.5, y = ydrop,yend = ydrop,color = "black",
           size = 1,arrow = arrow(angle = 18,ends = "last",type = "closed")) +
  annotate("text",x = 1.7,y = textdrop,label = "Upregulated",size = 4.5) + #箭头标注
  annotate("text",x = -1.7,y = textdrop,label = "Downregulated",size = 4.5)  +
  geom_vline(xintercept = 0,linetype = 2 ,size= rel(0.8)) +  # 加中间虚线
  xlim(-2.5,2.7) +ylim(-0.8,15) + #设置坐标轴范围
  labs(x = expression(paste(log[2],"(fold change)")),y = expression(paste(-log[2],"(Q value)")), #加轴标题
  title = "CMTM6 sgRNA2 vs Control",caption = "copy by R2-20")+ #加图题
  theme(plot.title = element_text(hjust = mean(range(log2(myvolcano$FC)))+ 0.1)) +mytheme_volcano #主题设置

Figure_7.png

 

 
邀请讨论

附件

{{f.title}} 大小 {{f.file_size}} 下载 {{f.count_download}} 金币 {{f.count_gold}}
{{item.nick_name}} 受邀请回答 {{item.create_time}}
{{item.refer_comment.nick_name}} {{item.refer_comment.create_time}}

附件

{{f.title}} 大小 {{f.file_size}} 下载 {{f.count_download}} 金币 {{f.count_gold}}
切换到完整回复 发送回复
赞({{item.count_zan}}) 踩({{item.count_cai}}) 删除 回复 关闭
科研狗©2015-2024 科研好助手,京ICP备20005780号-1 建议意见

服务热线

178 0020 3020

微信服务号