Y叔是著名富集分析软件clusterprofiler的原创,而且软件内集成dotplot, enrichmap,cnetmap (后续也实现这两个的一步出图)等画图方法,具体看这个教程http://guangchuangyu.github.io 具体回应见 听说你也在画dotplot,但是我不服! 一个command出图,小白上点心可以的 图是ggplot2画的 (散点图),在脚本功能描述里有写。 今天用clusterprofiler做了富集分析,运用dotplot配合不同参数出了图;过几天心情一变,想换个风格了,怎么办?再运行一次clusterprofiler还是加载之前存储的.Rdata。
富集分析气泡图dotplot, 本脚本只需要一个表格数据(如果是clusterProfiler包输出的富集分析结果可直接使用),也可以是其他软件工具的结果,按需改成本脚本所需格式即可。 # Dotplot 气泡图 library(tidyverse) DEG_Dotplot <- function(df, title="") { # """ # data格式如下(需有Description = T)[,1])/ as.numeric(str_split(df$GeneRatio, pattern = '/', simplify = T)[,2]) dotplot = DEG_Dotplot(p_df, title="xx") ggsave(file = "Dotplot_KEGG_top10.pdf", width = 8, height = 7) #gh < - ggplotGrob(dotplot) #gd <- ggplotGrob(dotplotk) #cowplot::plot_grid(gh, gd, rel_widths = c(1.2, 1))
Seurat绘制细胞的marker DotPlot时,如果细胞名称过长或者相应细胞的marker gene太少则可能会导致细胞名称显示不全,看如下实例,以Seurat自带的pbmc_small数据集为例 ,寻找其差异表达gene作为绘制Dotplot的marker gene。 S100A8" "CD14" "S100A9" "FPR1" "ASGR1" 根据差异基因的类别,指定0是cytotoxic T lymphocyte,1是myeloid cells,并绘制DotPlot marker_gene %>% names()%>% fct_recode( "cytotoxic T lymphocyte"='0', "myeloid cells"='1' ) p <- DotPlot 第二方法是可以修改DotPlot返回的ggplot对象的data slot,如下所示: p3 <- p2 p3$data$feature.groups <- p3$data$feature.groups
问题来源 无意间发现seurat中的Dotplot画图时候,不管是在seurat的v4 还是v5版本。 正常的样子,右边是有图注的 DotPlot(pbmc,features = c("CD3E",'C1QA','GZMK'),cols = c("red3", "green3"), dot.scale = 曲线救国 如果你不喜欢这个图 DotPlot(pbmc,features = c("CD3E",'C1QA','GZMK'),split.by = "group",cols = c("red3", " pbmc$cell.type_splitby_group=paste0( pbmc$cell.type,"_",pbmc$group)DotPlot(pbmc,features = c("CD3E" 或者看我之前如何调整Dotplot细节的推文:单细胞seurat对象-气泡图dotplot美化-颜色配色-自定义修改 library(ggplot2)p=DotPlot(pbmc,features =
论文对应的代码是公开的 https://github.com/ajwilk/2020_Wilk_COVID
单细胞常见的可视化方式有DimPlot,FeaturePlot ,DotPlot ,VlnPlot 和 DoHeatmap集中 ,在Seurat中均可以实现,但文献中的图大多会精美很多。 umap图| ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算 介绍过DimPlot的一些调整方法;在 scRNA分析 | 定制 美化FeaturePlot 图,你需要的都在这介绍了DotPlot 本次介绍一下如何绘制SCI文献中高水平的聚类DotPlot,以及一些调整,美化的方法。 gridExtra) load("sce.anno.RData") head(sce2,2) 二 Seurat 调整,美化 1,计算marker 基因 首先计算marker基因,然后使用seurat的DotPlot 这里同样也可以使用ggplot2 的一些函数进行美化,例如本例中的 coord_flip 调整翻转与否,theme中调整坐标轴字体,角度等;guide调整legend ,scale调整颜色等 p1 <- DotPlot
group.by = "try",col.min=-2, col.max=2)$data head(dotplot_f_data_1) dim(dotplot_f_data_1) dotplot_f_data ",col.min=-2, col.max=2)$data head(dotplot_f_data_2) dim(dotplot_f_data_2) dotplot_f_data <- rbind(dotplot_f_data _1, dotplot_f_data_2) head(dotplot_f_data) dim(dotplot_f_data) table(dotplot_f_data$id) p_dotplot_f p_dotplot_f <- p_dotplot_f + coord_flip() p_dotplot_f <- p_dotplot_f+ scale_color_gradient2(high="red DotPlot.png
(sce,features = c('PTPRC','CD45')) # T细胞 [3],6,8,9,10 DotPlot(sce,features = c('CD3D','CD3E','CD8A' , 'CD8B')) # B细胞 11 DotPlot(sce,features = c('CD79A', 'CD37', 'CD19', 'CD79B', 'MS4A1','CD20')) # 浆细胞 7 DotPlot(sce,features = c('IGHG1','MZB1','SDC1','CD79A')) # NK细胞 0,4 DotPlot(sce,features = c(' ','CCL3','GZMB','CXCR1','TYOB','PRF1')) # 内皮细胞 5,15 DotPlot(sce,features = c('PECAM1','VWF')) # 成纤维细胞 12,13 DotPlot(sce,features = c('FGF7','MME','DCN','LUM','GSN','PF4','PPBP')) # 上皮细胞 11,[14] DotPlot(
具有多个组的点图 # Change dot plot colors by groups ggplot(ToothGrowth, aes(x=dose, y=len, fill=supp)) + geom_dotplot interval between dot plot of the same group p<-ggplot(ToothGrowth, aes(x=dose, y=len, fill=supp)) + geom_dotplot box plots ggplot(ToothGrowth, aes(x=dose, y=len, fill=supp)) + geom_boxplot(fill="white")+ geom_dotplot (ToothGrowth, aes(x=dose, y=len, fill=supp)) + geom_boxplot(position=position_dodge(0.8))+ geom_dotplot 修改颜色和主题 # Basic dot plot ggplot(ToothGrowth, aes(x=dose, y=len)) + geom_boxplot()+ geom_dotplot(
qvalueCutoff=1, pAdjustMethod="none") write.xlsx(go_MF,"go_MF.xlsx") dotplot (go_MF,color="pvalue") ggsave("go_MF_dotplot.pdf",width=12,height=6) 结果文件: 同样的,CC和BP的GO注释,将ont后面的改为CC qvalueCutoff=1, pAdjustMethod="none") write.xlsx(go_CC,"go_CC.xlsx") dotplot (go_CC,color="pvalue") ggsave("go_CC_dotplot.pdf",width=12,height=6) 「BP的GO注释:」 ## BP go_BP =enrichGO (go_BP,color="pvalue") ggsave("go_BP_dotplot.pdf",width=12,height=6) 其它类型的图: ## 其它类型的图: barplot(go_BP
# ggsave('kk.diff.dotplot.png') browseKEGG(kk.up, 'hsa04640') # 转换为数据框 kegg_diff_dt <- as.data.frame _',n1[i],'_',n2[j],'.png') cat(paste0(fn,'\n')) png(fn,res=150,width = 1080) print( dotplot (go_enrich_results[[i]][[j]] )) dev.off() } } ## dotplot_gene_up_BP.png ## dotplot_gene_up_MF.png ## dotplot_gene_up_CC.png ## dotplot_gene_down_BP.png ## dotplot_gene_down_MF.png ## dotplot_gene_down_CC.png ## dotplot_gene_diff_BP.png ## dotplot_gene_diff_MF.png ## dotplot_gene_diff_CC.png # 结果解读(略) 结束语 从这里开始
###小提琴图结合点图 ggplot(iris, aes(x = Species, y = Sepal.Width)) + geom_half_violin() + geom_dotplot (binaxis = "y", method="histodot", stackdir="up") 在这里dotplot()是可以看做half plot的,那么为什么要使用geom_half_dotplot 因为简单的dotplot函数不支持样本具有多个因素的分类,会导致两种类型的图重叠,例子如下: ###定义一个数据集,每个样本有genotype分类和性别分类 df <- data.frame(score 函数 ggplot(df, aes(x = genotype, y = score, fill = gender)) + geom_half_violin() + geom_dotplot (binaxis = "y", method="histodot", stackdir="up", position = PositionDodge) ##使用geom_half_dotplot
然后修改点的大小,然后翻转X,Y轴 library(ggplot2) # Basic dot plot p<-ggplot(ToothGrowth, aes(x=dose, y=len)) + geom_dotplot stackdir='center') p # Change dotsize and stack ratio ggplot(ToothGrowth, aes(x=dose, y=len)) + geom_dotplot 第四步:添加箱图 # Add basic box plot ggplot(ToothGrowth, aes(x=dose, y=len)) + geom_boxplot()+ geom_dotplot Add notched box plot ggplot(ToothGrowth, aes(x=dose, y=len)) + geom_boxplot(notch = TRUE)+ geom_dotplot ') # Add violin plot ggplot(ToothGrowth, aes(x=dose, y=len)) + geom_violin(trim = FALSE)+ geom_dotplot
qvalueCutoff=1, pAdjustMethod="none") write.xlsx(go_MF,"go_MF.xlsx") dotplot (go_MF,color="pvalue") ggsave("go_MF_dotplot.pdf",width=12,height=6) 结果文件: 同样的,CC和BP的GO注释,将ont后面的改为 qvalueCutoff=1, pAdjustMethod="none") write.xlsx(go_CC,"go_CC.xlsx") dotplot (go_CC,color="pvalue") ggsave("go_CC_dotplot.pdf",width=12,height=6) 「BP的GO注释:」 ## BP go_BP =enrichGO (go_BP,color="pvalue") ggsave("go_BP_dotplot.pdf",width=12,height=6) 其它类型的图: ## 其它类型的图: barplot(go_BP
对上述两条序列进行比较 比较两个蛋白,DNA或RNA序列,可以做一个dotplot进行比较,dotplot可以对两条序列之间的相似性进行比较,这会产生一个二维矩阵,对蛋白序列可以在水平和垂直方向进行比较 为了使简单的dotplot来表示两个序列之间的相似性,如果残基或碱基相同,则矩阵中的单个位点可以用黑色阴影,那么两条序列中匹配的序列片段显示为跨越整个矩阵的对角线。 如果两条序列中残基不一样,但又有相似的区域,那么dotplot在主对角线可能有一些短线并偏离一些距离。 也就是说,dotplot可以清晰解释两条蛋白或DNA序列之间的任何区域的相似性。 SeqinR包中的dotPlot函数可以进行绘制。 dotPlot(lepraeseq, ulceransseq) ? dotplot 解释: 上图中,lepraeseq在x轴,ulcerans序列在y轴。展示了两条氨基酸序列之间的相似性。
因为我给学徒布置的任务就是看单核细胞的拟时序,所以他就做了一个很简单的可视化,就是使用DotPlot函数去可视化CD14和CD16的单核细胞的一些基因,如下所示的代码: cg = c( 'CD68', 'CD163', 'CD14', 'FCGR3A', 'S100A9', 'S100A8', 'MMP19' ) p = DotPlot(ifnb ,cg,group.by 但是如果我们首先把这个单细胞转录组数据集按照两个样品(两个处理)拆分后再进行DotPlot函数去可视化CD14和CD16的单核细胞的一些基因,如下所示的代码: DotPlot(ifnb[,ifnb$orig.ident =='IMMUNE_CTRL'],cg,group.by = 'seurat_annotations' )/ DotPlot(ifnb[,ifnb$orig.ident=='IMMUNE_STIM'], 凸显的是相对概念 其实函数都是有参数的,上面的DotPlot函数就可以调整: DotPlot( object, features, assay = NULL, cols = c("lightgrey
问题来源 DotPlot(subset_data,features = c( "Tmsb10", 'COL1A1','POSTN','CCN2',"FN1"," TGFB1" )%>% stringr::str_to_title() ,group.by ='group_by_split' )+RotatedAxis()getwd()DotPlot 从上面的Dotplot图,根本看不出来孰高孰低,那怎么办? 解决办法 我知道,你可能也像我一样不止一次遇到过这种苦恼。 理论上myofibroblast细胞中在SIO2刺激之后的Postn表达就会比NS高,但是目前的dotplot上来看升高并不明显。 我们可以调整scale bar,说不定会有惊喜发现 p=DotPlot(subset_data ,col.max = 3,col.min = 2, features = c( "
FeaturePlot(pbmc, features = c("MS4A1", "CD79A")) RidgePlot(pbmc, features = c("MS4A1", "CD79A"), ncol = 1) DotPlot 然后就需要挑选合适的基因在不同亚群里面展现一下,代码如下所示: library(stringr) genes_to_check=str_to_title(unique(genes_to_check)) genes_to_check p <- DotPlot features = genes_to_check, assay='RNA' ,group.by = 'celltype' ) + coord_flip() p 这个最基础的DotPlot hjust=0.5)) library(stringr) genes_to_check=str_to_title(unique(genes_to_check)) genes_to_check p <- DotPlot 树立的单细胞亚群 问题就是,每次我都懒得写这个代码,临时去谷歌搜索,不小心搜到了这样的一个代码: p_all_markers=DotPlot(sce.all, features = genes_to_check
ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(20, 4), gridspec_kw={"wspace": 0.9}) ax1_dict = sc.pl.dotplot sc.tl.rank_genes_groups(pbmc, groupby="clusters", method="wilcoxon") Visualize marker genes using dotplot dotplot 可视化有助于快速浏览差异表达基因。 sc.pl.rank_genes_groups_dotplot(pbmc, n_genes=4) 为了获得更好的展示效果,我们可以绘制 log fold changes 而非基因表达量。 =3, vmax=7, vmin=-7, cmap="bwr", ) Focusing on particular groups 接下来,我们使用 dotplot 仅聚焦在两个组别上
quickSearchInfo=mast genes_to_check = c('ENPP3', 'KIT', 'SLC18A2') # All on Dotplot p <- DotPlot(sce 同样的,根据CellMarker网站进行人工校验,如下所示: genes_to_check = c('CD19', 'CD27','SDC1', 'CD38') # All on Dotplot p <- DotPlot(sce, features = genes_to_check,group.by = 'seurat_clusters') + coord_flip() p # CD138( SDC1 derived dendritic cell genes_to_check = c('CLEC4C', 'IL3RA', 'NRP1','CD1C', 'CST3', 'FCER1A') # All on Dotplot p <- DotPlot(sce, features = genes_to_check,group.by = 'seurat_clusters') + coord_flip() p 确实看到: ?