You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Snakemake输出Seurat FeaturePlot多页PDF为空问题求助

解决Seurat循环生成FeaturePlot输出空PDF的问题
  • 问题根源:Seurat的FeaturePlot返回ggplot类对象,在循环中直接调用该函数不会自动将图像渲染到PDF设备,必须显式调用print()函数触发绘图。另外你设置了onefile=FALSE,这会为每个图生成单独的PDF文件,而非单PDF多页,可能和你的需求不符。

  • 修正后的代码:

# 若要单PDF文件包含所有图(每页一张),设置onefile=TRUE
pdf(file = snakemake@output[['GeneLabel']], onefile=TRUE)
vec <- c("DKC1", "NOP10", "WRAP53", "POT1", "PARN")
for(i in vec){
  # 显式打印ggplot对象到PDF设备
  print(FeaturePlot(cts.seurat.obj, features = c(i)))
}
dev.off()
# 无需额外调用graphics.off(),dev.off()已关闭当前PDF设备
  • 额外检查项:
    • 确认cts.seurat.obj是有效的Seurat对象,且包含你指定的基因(可通过rownames(cts.seurat.obj@assays$RNA@data)验证)
    • 确认Snakemake输出路径snakemake@output[['GeneLabel']]是合法可写的路径
    • 若确实需要每个基因单独生成PDF文件,保留onefile=FALSE,但此时输出文件名需要包含变量(比如snakemake@output[[i]]),否则后续图会覆盖前一个

内容的提问来源于stack exchange,提问作者Genetics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 14:29:58