用户工具

站点工具


组会分享1:start

ggplot点图

火山图工单

1.目前流程的火山图是将基因分为3类,差异显著上调,差异显著下调和差异不显著。

2.老师根据文献图,想把火山图分为4类,表达显著_差异较大;表达显著_差异较小;表达不显著_差异较大;表达不显著_差异较小。

3.在流程火山图的基础上把分组信息这一块给更改即可。

/TJPROJ6/RNA_SH/personal_dir/wangshuai/zuotu/volcano_plot_gongdan_230425-00050
使用参数和流程一样
    volcano["group"] <- "Not_sig"
    volcano[which(volcano["padj"] <= q & volcano["log2FoldChange"] >= log2(fc)),"group"] <- "Pvalue_and_Log2fc"
    volcano[which(volcano["padj"] <= q & volcano["log2FoldChange"] <= -log2(fc)),"group"] <- "Pvalue_and_Log2fc"
    volcano[which(volcano["padj"] > q  & volcano["log2FoldChange"] >= log2(fc)),"group"] <- "Log2fc"
    volcano[which(volcano["padj"] > q  & volcano["log2FoldChange"] <= -log2(fc)),"group"] <- "Log2fc"
    volcano[which(volcano["padj"] < q & volcano["log2FoldChange"] > -log2(fc) & volcano["log2FoldChange"] < log2(fc)),"group"] <- "Pvalue"
    Not_sig_number <- nrow(volcano[which(volcano["group"]=='Not_sig'),])
    Pvalue_and_Log2fc_number <- nrow(volcano[which(volcano["group"]=='Pvalue_and_Log2fc'),])
    Log2fc_number <- nrow(volcano[which(volcano["group"]=='Log2fc'),])
    Pvalue_number <- nrow(volcano[which(volcano["group"]=='Pvalue'),])
    volcano[which(volcano["group"]=='Not_sig'),"group"] <- paste('Not_sig',Not_sig_number,sep=' ')
    volcano[which(volcano["group"]=='Pvalue_and_Log2fc'),"group"] <- paste('Pvalue_and_Log2fc',Pvalue_and_Log2fc_number,sep=' ')
    volcano[which(volcano["group"]=='Log2fc'),"group"] <- paste('Log2fc',Log2fc_number,sep=' ')
    volcano[which(volcano["group"]=='Pvalue'),"group"] <- paste('Pvalue',Pvalue_number,sep=' ')
    volcano$group <- factor(volcano$group,levels=c(paste('Pvalue_and_Log2fc',Pvalue_and_Log2fc_number,sep=' '),paste('Log2fc',Log2fc_number,sep=' '),paste('Not_sig',Not_sig_number,sep=' '),paste('Pvalue',Pvalue_number,sep=' ')))

改前:改后:

柱状图工单

常见分面型柱状图

柱状图geom_bar

facet_grid:是基于两个因子进行设置,facets表示形式为:变量~变量(行~列)
按行分面:facet_grid(Category~.,scales = 'free')
按列分面:facet_grid(.~Category,scales = 'free') 如下图1
facet_grid:适用于当有两个离散变量,并且这些变量的所有组合存在于数据中时
facet_wrap:适用于只有一个具有多个级别的变量
图1
p <- p + geom_bar(stat='identity') + facet_grid(.~Category,scales = 'free') + theme(strip.text.y = element_text(angle = 0),plot.margin=unit(c(1,1,2,4),'lines'))+theme(axis.text.x=element_text(hjust=1,angle=65,size=6.4,face ='bold'))
图2
ggplot(stat,aes(x=Description,y=Number_of_genes,fill=Category))+
  geom_bar(stat='identity') + facet_grid(.~class) +
  coord_flip()+ 
  theme(strip.text.y = element_text(angle = 0),plot.margin=unit(c(1,1,2,4),'lines'))+
  theme(axis.text.x=element_text(hjust=1,angle=65,size=6.4,face ='bold'))

图1:图2

常见截断坐标轴柱状图

scale_y_break和scale_x_break:分别对x轴和y轴进行截断
#添加多个截断坐标:
p1 + scale_x_break(c(6, 10), scales = 1.5) + scale_x_break(c(15, 21), scales=2)+scale_x_break(c(25, 30),scales=2.5)
sec.axis:设置第二坐标轴 如下图:
p1 <- ggplot(data,aes(x=Name,y=Number,fill=Ontology))+
  geom_bar(stat='identity')+theme(axis.text.x=element_text(hjust=1,angle=65,size=6.4,face ='bold'))+
  scale_y_continuous(expand = c(0,0),limits = c(0,500),
                     sec.axis = sec_axis(~./14,
                                         name = '-Log10(P value)',
                                         breaks = seq(0,40,10)))+scale_y_break(c(20, 400 ))

图1:

GO柱状图

1.将柱状图的高度分别按照BP CC MF的分类进行排序

/TJPROJ6/RNA_SH/personal_dir/wangshuai/zuotu/noref_GO_bar_plot/goseq_bar_plot_v2.R

1:函数cbind() 和rbind() 把向量和矩阵拼成一个新的矩阵 2:cbind: 根据列进行合并,即叠加所有列;rbind: 根据行进行合并,就是行的叠加

dat<-dat[order(dat[,4]),] 按第四列重新排序
BP <- subset(dat2,dat2$Term_type=='biological_process')
BP <- BP[order(BP$DEG_item,decreasing=T),]
CC <- subset(dat2,dat2$Term_type=='cellular_component')
CC <- CC[order(CC$DEG_item,decreasing=T),]
MF <- subset(dat2,dat2$Term_type=='molecular_function')
MF <- MF[order(MF$DEG_item,decreasing=T),]
dat2 <- rbind(BP,CC,MF)
write.table(dat2,file="aaa.xls",quote=F,row.names=F)
以上是将BP CC MF 分别进行排序,达到不同分组的柱状图从高往低排序 如下图:

图1:

组会分享1/start.txt · 最后更改: 2023/04/28 05:11 由 wangshuai