DotPlot 的宽高自动设置 | 线性拟合

1. 线性模型计算width和height

输入是基因集合

scRNA.markers <- FindAllMarkers(scRNA, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
#scRNA@misc[["markers"]]=scRNA.markers
#scRNA.markers %>% group_by(cluster) %>% top_n(n = 2, wt = avg_log2FC)

auto.markers=unique(c(
  scRNA.markers %>% group_by(cluster) %>% top_n(n = 4, wt = avg_log2FC) %>% pull(gene)
))

(1).pdf width

length(auto.markers)
# x, y
# 55,15
# 87,22
# 129, 30
# lm(y~x, data=data.frame(x=c(55,87,129), y=c(15,22,30)))
# y=0.2021*x+4.0787
pdf_width = 0.2021*length(auto.markers) +4.0787

如果基因集合是自定义的list,还需要考虑list中每个key之间的间距:

pdf_width = 0.2021*length(markers |> unlist() ) +4.0787 + length(markers)*0.2 #add space between gene groups

(2).pdf height

# x,y
# 12, 4.5
# 10, 4
# lm(y~x, data=data.frame(x=c(12,10), y=c(4.5, 4)))
# y=0.25*x+1.5
pdf_height = 0.25*nlevels(sce) +1.5
message(sprintf("pdf size: {width:%s, height:%s}", pdf_width, pdf_height) )

2. 使用拟合的宽高

pdf( paste0(outputRoot, keyword, "_05_1.Auto.topN.DotPlot.pdf"), width=pdf_width, height=pdf_height)
DotPlot( sce, #subset(sce, seurat_clusters %in% c(1:8) ), 
         features = auto.markers, cluster.idents = F, cols=c('lightgrey', "red")) + RotatedAxis()+
  ggtitle( paste0("Top N markers of ", keyword ))
#
DotPlot( sce, #subset(sce, seurat_clusters %in% c(1:8) ), 
         features = auto.markers, cluster.idents = T, cols=c('lightgrey', "red")) + RotatedAxis()+
  ggtitle( paste0("Top N markers of ", keyword ))
dev.off()

Ref:

  • https://gitee.com/dawnEve/bioToolKit/blob/dev/R_scripts/single_script/do_Seurat.script.R
在进行GO富集分析时,通常会使用`clusterProfiler`包中的`dotplot`函数来可视化结果。以下是设置`dotplot`字体大小的方法: ### 设置标题字体大小 可以使用`ggtitle`函数设置标题,并通过`theme`函数的`plot.title`参数来整标题字体大小。示例代码如下: ```R library(clusterProfiler) library(org.Hs.eg.db) # 假设gene_SYMBOL是基因列表 gene_SYMBOL <- c("GENE1", "GENE2", "GENE3") # 进行GO富集分析 go <- enrichGO(gene_SYMBOL, OrgDb = org.Hs.eg.db, ont='ALL', pAdjustMethod = 'BH', pvalueCutoff = 0.05, qvalueCutoff = 0.2, keyType = 'SYMBOL') # 绘制dotplot设置标题字体大小 p <- dotplot(go) + ggtitle("GO Enrichment Analysis") + theme(plot.title = element_text(size = 20)) print(p) ``` 在上述代码中,`theme(plot.title = element_text(size = 20))`将标题字体大小设置为20。 ### 设置坐标轴字体大小 可以通过`theme`函数的`axis.title`和`axis.text`参数分别整坐标轴标题和刻度标签的字体大小。示例代码如下: ```R p <- dotplot(go) + theme(axis.title = element_text(size = 16), axis.text = element_text(size = 12)) print(p) ``` 在上述代码中,`axis.title = element_text(size = 16)`将坐标轴标题字体大小设置为16,`axis.text = element_text(size = 12)`将坐标轴刻度标签字体大小设置为12。 ### 设置图例字体大小 可以通过`theme`函数的`legend.title`和`legend.text`参数分别整图例标题和图例文本的字体大小。示例代码如下: ```R p <- dotplot(go) + theme(legend.title = element_text(size = 14), legend.text = element_text(size = 10)) print(p) ``` 在上述代码中,`legend.title = element_text(size = 14)`将图例标题字体大小设置为14,`legend.text = element_text(size = 10)`将图例文本字体大小设置为10。 ### 综合设置 可以将上述设置综合在一起,同时整标题、坐标轴和图例的字体大小。示例代码如下: ```R p <- dotplot(go) + ggtitle("GO Enrichment Analysis") + theme(plot.title = element_text(size = 20), axis.title = element_text(size = 16), axis.text = element_text(size = 12), legend.title = element_text(size = 14), legend.text = element_text(size = 10)) print(p) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值