deepseek绘图之--FPKM小提琴图

deepseek绘图之--FPKM小提琴图

在基因表达分析中,FPKM(Fragments Per Kilobase of transcript per Million mapped reads) 是常用的基因表达定量指标。为了直观展示不同样本中基因的表达分布,小提琴图(Violin Plot)因其能同时显示数据分布和密度,成为科研绘图的热门选择。然而,传统工具如R、Python的绘图流程往往涉及繁琐的文件处理、颜色搭配调试和图例优化等,让研究者耗费大量时间,更是令生信新手望而生畏。AI大模型的介入彻底改变了这一局面。只需提供您的基因表达量文件,并用自然语言描述定制需求,AI即可自动生成绘图脚本,真正实现"专业绘图,一键生成"。本文将带您体验如何通过AI协作,在短短5分钟内完成一幅专业的小提琴图,助您在科研工作中以极致的效率和专业度获得竞争优势!


初步构建绘图提示词


为了让AI能更高效的出图,我们尽量描述的详细一点,这样能够减少我们后面修改的次数更容易得到想要的结果,首先确认自己的路径和绘图需要的文件,我们只需要一个基因表达量文件即可,格式如下:

attachments-2025-05-IYsbCCqf6823f382a2811.png

文件准备完成后,即可询问AI如何编写代码,写完了的提示词如下,大家可以参考一下格式


------------------------------------------

读取1个基因fpkm表达量文件

工作路径:~/work/03.deg

基因fpkm表达量文件: fpkm.xls (纯文本文件,第一列是基因名称,后序列是所有样本表达量信息;第一行是样品名称,后续行是基因在不同样品表达量信息)

使用R语言绘制小提琴图,对表达量取对数

图形类型:小提琴图

主题:隐藏网格线

------------------------------------------

在deepseek输出上面写好的提示词,如果问题复杂可以打开deepthink,这样简单的就不需要了。

初步生成绘图代码


attachments-2025-05-sb7LsP0f6823f543835a3.jpg

AI给出了详细的码,我们来到rstudio运行一下结果如下:


attachments-2025-05-CnG4u4UO6823f55e59801.png


生成的图片基本符合要求,个别地方不太好,比如没有坐标轴,小提琴尾部被截掉等,我们可以提出要求让他修改一下。

让AI帮助我修改可视化效果

attachments-2025-05-hAGfCCSA6823f62925ab2.png

attachments-2025-05-LtKig0Q26823f656ebaca.pngattachments-2025-05-JG4Bx0Sl6823f67d772fd.pngattachments-2025-05-oXJfYtRm6823f698e6fd3.png

得到的结果如下,完全符合要求,如果还有其他需求,也可以继续让他再调整。


attachments-2025-05-evSFjO766823f6d569fe2.png
最终绘图代码

# 设置工作目录
setwd("~/work/03.deg")
# 读取FPKM文件
fpkm_data <- read.table("fpkm.xls", header = TRUE, row.names = 1, sep = "\t", check.names = FALSE)
# 对表达量取对数(添加1避免log(0))
log_fpkm <- log2(fpkm_data + 1)
# 转换为长格式数据框(ggplot2需要)
library(tidyr)
library(dplyr)
log_fpkm_long <- log_fpkm %>%
  as.data.frame() %>%
  mutate(gene = rownames(.)) %>%
  pivot_longer(cols = -gene, names_to = "sample", values_to = "log_fpkm")
# 加载ggplot2
library(ggplot2)
# 绘制小提琴图(白色背景 + 隐藏网格线 + 完整XY轴)
p <- ggplot(log_fpkm_long, aes(x = sample, y = log_fpkm, fill = sample)) +
  geom_violin(trim = F, scale = "width") +  # 绘制小提琴图
  geom_boxplot(width = 0.1, fill = "white", outlier.size = 0.5) +  # 添加箱线图作为补充
  theme(
    # 1. 保持白色背景(默认theme_grey()风格)
    panel.background = element_rect(fill = "white"),  # 白色背景
    plot.background = element_rect(fill = "white"),   # 图表区域白色
    # 2. 隐藏所有网格线
    panel.grid.major = element_blank(),  # 主网格线(横线)
    panel.grid.minor = element_blank(),  # 次网格线(竖线/细线)
    # 3. 确保XY轴显示
    axis.line = element_line(color = "black"),  # 黑色坐标轴线
    axis.text.x = element_text(angle = 45, hjust = 1, size = 10),  # X轴标签
    axis.text.y = element_text(size = 10),  # Y轴标签
    axis.title.x = element_text(size = 12, face = "bold"),  # X轴标题
    axis.title.y = element_text(size = 12, face = "bold"),  # Y轴标题
    # 4. 图例(如果需要)
    legend.position = "none"  # 隐藏图例(可选)
  ) +
  labs(
    x = "Sample",  # X轴标题
    y = "Log2(FPKM + 1)",  # Y轴标题
    title = "Gene Expression Violin Plot"  # 图表标题
  )
# 显示图形
print(p)


相关问题

0 条评论

请先 登录 后评论
安生水
安生水

359 篇文章

作家榜 »

  1. omicsgene 720 文章
  2. 安生水 359 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 87 文章
  6. rzx 83 文章
  7. 红橙子 79 文章
  8. CORNERSTONE 72 文章