Loading [MathJax]/jax/output/CommonHTML/config.js
部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Claude vs DeepSeek:相关性分析与“星号”标记热图的高效绘制

Claude vs DeepSeek:相关性分析与“星号”标记热图的高效绘制

作者头像
天意生信云
发布于 2025-04-26 13:05:34
发布于 2025-04-26 13:05:34
8400
代码可运行
举报
运行总次数:0
代码可运行

相关性分析是揭示变量间联系的基础,本文通过大型语言模型(LLMClaudeDeepSeek进行相关性分析并绘制显著性星号标记的热图

有趣的是,初步观察表明,这两种模型在解决此类问题时展现出鲜明的“个性”:DeepSeek似乎倾向于更深入的沟通与思考来引导用户,而Claude则以其直截了当、快速给出解决方案的风格著称,更节省时间。本文聚焦于“相关性分析与‘星号’标记热图绘制”这一具体场景,旨在对比评测Claude与DeepSeek在任务理解、代码生成、交互体验以及最终实现高效绘制目标上的表现差异,探讨不同AI风格对特定科研任务效率的实际影响。

期望成果展示

图1
图1

图1

图1 使用AI辅助生成并调试的R代码绘制的相关性热图。颜色代表相关系数(例如,橙色表示正相关,紫色表示负相关),颜色的深浅表示相关性强度。单元格中的星号表示基于p值的统计显著性水平(例如,* p < 0.05, ** p < 0.01)。

示例数据的准备

为了演示,我们需要一组适合进行相关性分析的数据。这里我们模拟两组变量(例如,一组代表微生物丰度,另一组代表环境因子;或者简单地使用R内置数据集如mtcars的部分变量)。关键是数据需要是数值型的,并且组织成数据框(data frame)或矩阵(matrix)的格式。

图2 微生物丰度表
图2 微生物丰度表

图2 微生物丰度表

图3 环境因子表
图3 环境因子表

图3 环境因子表

这份清晰、结构化的数据是后续分析的基础。

数据结构概念: 假设我们有两个矩阵 X (n x p) 和 Y (n x q),我们想分析 X 中p个变量与 Y 中q个变量之间的相关性。或者,我们有一个包含所有变量的数据框 df,想分析其中特定几列之间的相关性。

● 示例 (R代码):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建模拟数据
set.seed(123) # 保证结果可重复
matrix1 <- matrix(rnorm(100*5), nrow=100, ncol=5) # 100个样本, 5个变量
colnames(matrix1) <- paste0("VarX", 1:5)
matrix2 <- matrix(rnorm(100*8), nrow=100, ncol=8) # 100个样本, 8个变量
colnames(matrix2) <- paste0("VarY", 1:8)

# 或者使用内置数据集
# library(dplyr)
# data_subset <- select(mtcars, mpg, cyl, disp, hp, wt, qsec)

生成相关性分析与绘图代码

分别打开Claude、Deepseek上传范例数据。Claude点击“+”上传文件,Deepseek点击“回形针”上传文件。

图4 Claude
图4 Claude

图4 Claude

图5 Deepseek
图5 Deepseek

图5 Deepseek

接下来,我们向Claude、Deepseek分别提出我们的需求。关键在于清晰、具体地描述任务。

输入指令:

使用psych包对附件“OTU.csv”中的微生物丰度OTU和“envs.csv”文件中的环境因子进行pearson相关性分析,提取相关性系数矩阵和p值矩阵,并使用ComplexHeatmap包绘制聚类热图,X和Y轴分别为环境因子和OTU,确保热图的格子的宽和高都为0.7,格子的描边为白色,粗细为1.2,聚类树的高度为1.5cm,热图的配色方案为:#9370DB,white,#FF7F24,热图图例标题为“correlation”,文本的字体大小为7。

Claude经过5秒的思考,给出了分析绘图代码。deepseek经过274秒的深度思考,给出了分析绘图代码。

我们就得到了相关性分析及绘图代码。点击以上代码块右上角的“复制”按钮,将Claude、Deepseek生成的R代码分别复制粘贴到Rstudio的脚本编辑器中运行。

对于本次相关性分析及绘图要求,Claude理解到位,很顺利的运行成功。

图6 Claude生成代码
图6 Claude生成代码

图6 Claude生成代码

Deepseek的代码运行出错,报错信息如下:

图7 Deepseek生成代码报错
图7 Deepseek生成代码报错

图7 Deepseek生成代码报错

继续向Deepseek输入优化报错代码指令:

绘制热图时出错,请继续优化这部分代码,报错信息如下:错误于Heatmap(matrix = r_matrix, name = "Cor", col = col_fun, rect_gp = gpar(col = "white", : 参数没有用(row_height = unit(0.7, "cm"), column_width = unit(0.7, "cm"))

图8 代码修改优化
图8 代码修改优化

图8 代码修改优化

然后复制DeepSeek修改后的代码,粘贴到Rstudio的脚本编辑器中运行,如下图。

图9 Deepseek优化后代码
图9 Deepseek优化后代码

图9 Deepseek优化后代码

经过调试,Deepseek也能够准确绘制期望图形。

我们还可以在给出代码的基础上继续优化,比如根据P value矩阵,在热图上添加显著性“星号”标记等。

继续输入优化代码指令:

在以上热图绘制代码上继续优化:更改多级显著性标记(如*: p<0.05, **: p<0.01),标签颜色改为黑色。

图10 Claude页面
图10 Claude页面

图10 Claude页面

图11 Deepseek页面
图11 Deepseek页面

图11 Deepseek页面

最终代码与结果确认

经过调试,Claude和Deepseek都得到了一套能够稳定运行并产生预期结果的R代码。

Claude最终优化后的R代码 (示例):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 加载所需的Rlibrary(psych)
library(ComplexHeatmap)
library(circlize)  # 用于自定义热图颜色

# 读取数据
otu_data <- read.csv("OTU.csv", row.names = 1, check.names = FALSE)
env_data <- read.csv("envs.csv", row.names = 1, check.names = FALSE)

# 转置OTU数据使样本在行,OTU在列
otu_data <- t(otu_data)

# 确保两个数据框中的样本顺序一致
# 假设两个文件中的样本ID相同
common_samples <- intersect(rownames(otu_data), rownames(env_data))
otu_data <- otu_data[common_samples, ]
env_data <- env_data[common_samples, ]

# 使用psych包进行相关性分析
cor_result <- corr.test(env_data, otu_data, method = "pearson", adjust = "fdr")

# 提取相关性系数矩阵和p值矩阵
cor_matrix <- cor_result$r# 相关性系数矩阵
p_matrix <- cor_result$p    # p值矩阵

# 设置热图颜色
col_fun <- colorRamp2(c(-1, 0, 1), c("#9370DB", "white", "#FF7F24"))

# 创建热图
heatmap <- Heatmap(
  cor_matrix,
  name = "correlation", 
  col = col_fun,
  rect_gp = gpar(col = "white", lwd = 1.2),  # 单元格描边为白色,粗细为1.2
  cluster_rows = TRUE,    # 对行进行聚类
  cluster_columns = TRUE, # 对列进行聚类
  show_row_names = TRUE,  
  show_column_names = TRUE,
  row_names_gp = gpar(fontsize = 7),    # 行名文本大小为7
  column_names_gp = gpar(fontsize = 7), # 列名文本大小为7
  width = ncol(cor_matrix) * unit(0.7, "cm"),  # 设置单元格宽度为0.7cm
  height = nrow(cor_matrix) * unit(0.7, "cm"), # 设置单元格高度为0.7cm
  row_dend_width = unit(1.5, "cm"),    # 行聚类树高度为1.5cm
  column_dend_height = unit(1.5, "cm"), # 列聚类树高度为1.5cm
  heatmap_legend_param = list(title_gp = gpar(fontsize = 7), 
                              labels_gp = gpar(fontsize = 7)),
  cell_fun = function(j, i, x, y, width, height, fill) {
    # 根据p值添加显著性标记
    p_value <- p_matrix[i, j]
    if (p_value < 0.01) {
      grid.text("**", x, y, gp = gpar(fontsize = 10, col = "black"))
    } elseif (p_value < 0.05) {
      grid.text("*", x, y, gp = gpar(fontsize = 10, col = "black"))
    }
  }
)
heatmap

# 绘制热图
pdf("OTU_ENV_Correlation_Heatmap.pdf", width = 10, height = 8)
draw(heatmap)
dev.off()

Deepseek最终优化后的R代码 (示例):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 加载必要的包
library(psych)
library(ComplexHeatmap)
library(circlize)

# 读取数据
otu <- read.csv("OTU.csv", row.names = 1)
envs <- read.csv("envs.csv", row.names = 1)

# 转置OTU数据(样本为行,OTU为列)
otu_t <- t(otu)

# 按样本名称排序以对齐数据
otu_t <- otu_t[order(rownames(otu_t)), ]
envs <- envs[order(rownames(envs)), ]

# 验证样本顺序一致
stopifnot(all(rownames(otu_t) == rownames(envs)))

# 计算Pearson相关系数及p值
cor_result <- corr.test(otu_t, envs, method = "pearson")
cor_matrix <- cor_result$r
p_matrix <- cor_result$p

# 转置矩阵,使行=环境因子,列=OTU
cor_matrix_transposed <- t(cor_matrix)
p_matrix_transposed <- t(p_matrix)  # 同步转置p值矩阵

# 设置颜色映射
col_fun <- colorRamp2(c(-1, 0, 1), c("#9370DB", "white", "#FF7F24"))

# 定义显著性标记函数
add_sig_symbol <- function(j, i, x, y, width, height, fill) {
  p_value <- p_matrix_transposed[i, j]
if (p_value < 0.01) {
    grid.text("**", x, y, gp = gpar(fontsize = 10, col = "black"))  # 黑色双星号
  } elseif (p_value < 0.05) {
    grid.text("*", x, y, gp = gpar(fontsize = 10, col = "black"))   # 黑色单星号
  }
}

# 绘制热图
ht <- Heatmap(
  matrix = cor_matrix_transposed,
  name = "correlation",
  col = col_fun,
  rect_gp = gpar(col = "white", lwd = 1.2),
  width = unit(ncol(cor_matrix_transposed) * 0.7, "cm"),
  height = unit(nrow(cor_matrix_transposed) * 0.7, "cm"),
  row_dend_width = unit(1.5, "cm"),
  column_dend_height = unit(1.5, "cm"),
  row_names_gp = gpar(fontsize = 7),
  column_names_gp = gpar(fontsize = 7),
  heatmap_legend_param = list(
    title_gp = gpar(fontsize = 7),
    labels_gp = gpar(fontsize = 7)
  ),
  cell_fun = add_sig_symbol  # 添加显著性标记
)

# 显示图形
draw(ht)
pdf("Correlation_Heatmap.pdf", width = 10, height = 8)
draw(ht)
dev.off()

结果核查: 我们仔细检查生成的图,确认颜色、数值(如图显示)、星号标记都符合预期,并且与我们的统计学理解一致。

图12 Claude代码绘图
图12 Claude代码绘图

图12 Claude代码绘图

图13 Deepseek代码绘图
图13 Deepseek代码绘图

图13 Deepseek代码绘图

通过针对“相关性分析与‘星号’标记热图绘制”任务的对比实践,我们清晰地看到了ClaudeDeepSeek在辅助科研编程时的显著特性差异Claude以其“直达答案”的效率给人留下深刻印象,尤其适合目标明确、流程标准的任务,能迅速提供可用代码框架。相比之下,DeepSeek在需要细致调整或探索性较强的场景中,其“深度思考”与“沟通”能力则显现优势,通过引导式交互可能产生更优化或个性化的方案,尽管耗时可能更长。

因此,“高效”的定义在此变得具有相对性:是追求最短时间获得可行代码(Claude的潜在优势),还是追求在互动中加深理解并获得定制化方案(DeepSeek的潜在优势)?这取决于用户的具体目标与偏好。本次比较的核心启示在于,理解并选择与任务需求、个人工作风格相匹配的AI“助手”,是提升未来研究效率的关键。我们期待AI模型能在速度与深度、直接性与交互性之间找到更优的平衡点,成为科研人员更得力的智能伙伴。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BioOmics 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
超详细的R语言热图绘制之complexheatmap:01
本书是对ComplexeHeatmap包的中文翻译(1-6章),部分内容根据自己的理解有适当的改动,但总体不影响原文。如有不明之处,以原文为准。原文请见:https://jokergoo.github.io/ComplexHeatmap-reference/book/
医学和生信笔记
2022/05/30
4.4K0
用 ComplexHeatmap 包绘制复杂热图
在 ComplexHeatmap 中单个热图由热图主体和热图组件组成。热图主体可按行或列进行拆分。热图组件包括标题,进化树,矩阵名称和热图注释,可分别放置于热图主体的四个侧面上,这些组件也可根据热图主体的顺序进行重新排序或拆分。
生信菜鸟团
2021/01/18
7.6K0
用 ComplexHeatmap 包绘制复杂热图
ComplexHeatmap|绘制单个热图-I
ComplexHeatmap可以绘制很复杂的热图,能满足日常以及文章所需,本次先简单的介绍单个热图绘制的内容。
生信补给站
2021/06/24
1.4K0
ComplexHeatmap|绘制单个热图-I
跟SCI学heatmap|文章中常见复杂热图的绘制方式(含代码),干货较多,建议耐心一下
拿到一个新数据后,除了检查[1:4,1:4]外,也许还需要看看最后几列,另外还需要观察列名称的规律。
生信补给站
2022/04/13
8.1K0
跟SCI学heatmap|文章中常见复杂热图的绘制方式(含代码),干货较多,建议耐心一下
一文详解如何用 R 语言绘制热图
AI 研习社按:作为目前最常见的一种可视化手段,热图因其丰富的色彩变化和生动饱满的信息表达被广泛应用于各种大数据分析场景。同时,专用于大数据统计分析、绘图和可视化等场景的 R 语言,在可视化方面也提供了一系列功能强大、覆盖全面的函数库和工具包。 因此,对从业者而言,用 R 语言绘制热图就成了一项最通用的必备技能。本文将以 R 语言为基础,详细介绍热图绘制中遇到的各种问题和注意事项。原文作者 taoyan,原载于作者个人博客,AI 研习社获授权。 简介 本文将绘制静态与交互式热图,需要使用到以下R包和函数
AI研习社
2018/03/19
3.8K0
一文详解如何用 R 语言绘制热图
R绘制甲基化和表达谱联合分析热图
随着时代的发展,单一研究转录组、蛋白代谢、甲基化等已经难以满足研究者越来越高的研究期望,大家更多地期望联合多种数据进行多组学联合分析。那么这时候,一种好的展示结果的方式无疑会为发表高分文章增光添彩。
生信交流平台
2020/08/06
3.8K1
R绘制甲基化和表达谱联合分析热图
scRNA分析| 和SCI学 定制化聚类点图(Dotplot ),含二行代码出图方式
单细胞常见的可视化方式有DimPlot,FeaturePlot ,DotPlot ,VlnPlot 和 DoHeatmap集中 ,在Seurat中均可以实现,但文献中的图大多会精美很多。之前 scRNA复现|所见即所得,和Cell学umap,plot1cell完成惊艳的细胞注释umap图介绍了一种绘制惊艳umap图的方式;在跟SCI学umap图| ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算 介绍过DimPlot的一些调整方法;在 scRNA分析 | 定制 美化FeaturePlot 图,你需要的都在这介绍了DotPlot的美化方式。
生信补给站
2023/08/25
11.6K2
scRNA分析| 和SCI学 定制化聚类点图(Dotplot ),含二行代码出图方式
R语言复杂热图的绘制
大家对热图应该都不陌生,但是混合的复杂热图在我们的应用中并不是太多见。今天给大家介绍一个绘制复杂热图的R包ComplexHeatmap。
一粒沙
2019/07/31
3.2K0
热图在单细胞数据分析中的应用
热图是一个以颜色变化来显示数据的可视化矩阵,Toussaint Loua在1873年就曾使用过热图来绘制对巴黎各区的社会学统计。我们就拿这张简单朴素的热图来讲一下热图怎么看。
生信技能树jimmy
2020/04/08
3.9K0
热图在单细胞数据分析中的应用
相关性热图、圈图、弦图(笔记)
如下所示,可以看到有多个样品,每个样品都有多个基因表达量,这个时候我们比较关心的是这些基因的表达量相关性(在多个样品),基因与基因之间有两两组合相关性:
生信技能树
2023/02/27
2.8K0
相关性热图、圈图、弦图(笔记)
我是如何还原NC中的美图的
上个月我们分享了基于多组学数据识别关键癌症驱动基因的超实用工具Moonlight,不知道大家是否有注意到传说中“别人家的图”。
作图丫
2022/03/29
1.3K0
我是如何还原NC中的美图的
CMap数据库学习及结果可视化
CMap是一个生物信息学数据库和工具,旨在通过比较基因表达谱来揭示药物、基因和疾病之间的潜在关联。CMap数据库主要用于寻找药物、化合物和生物过程之间的关系,并用于药物重定位(drug repurposing)和疾病机制研究。
凑齐六个字吧
2024/08/29
7780
CMap数据库学习及结果可视化
生信代码:绘制基因组突变全景图
对于基因组突变全景图相信大家并不陌生,它是基因组学突变数据最基本的可视化展示方法之一。一张漂亮的,高大上的基因突变全景图不仅能展示出丰富的信息,还能为你的文章增色不少,其绘制方法也多种多样。今天我们则来看看最常用的两个包maftools和ComplexHeatmap在绘制基因组突变全景图上的异同。首先让我们来简单的了解下这两个包:
科研菌
2021/02/19
6.5K0
生信代码:绘制基因组突变全景图
EnrichedHeatmap--对富集结果进行热图可视化!
富集热图是一种特殊类型的热图,可将特定目标区域上基因组信号的富集可视化。 例如可以在转录起始位点富集组蛋白修饰。
作图丫
2022/03/29
2K0
EnrichedHeatmap--对富集结果进行热图可视化!
WGCNA + ssGSEA的组合分析
生物信息数据分析教程视频——16-单样本基因集富集分析(ssGSEA)用于肿瘤相关免疫细胞浸润水平评估
DoubleHelix
2023/09/06
7410
WGCNA + ssGSEA的组合分析
24种R语言新手入门之热图(四)
热图比较有意思,最常用的科研可视化做图,观察显著、直接、简单粗暴。这是Toussaint Loua在1873年就曾使用过热图来绘制对巴黎各区的社会学统计。
生信初学者
2023/03/14
1K0
24种R语言新手入门之热图(四)
ComplexHeatmap包更新支持pheatmap转换
pheatmap是热图中使用频率比较高一个R包,ComplexHeatmap:用于绘制、注释和排列复杂热图。现在ComplexHeatmap 迎来新版本升级,支持pheatmap 参数转换。
生信菜鸟团
2020/05/18
2.6K0
pheatmap带你轻松绘制聚类相关性热图
R语言数据分析指南
2023/08/18
1.6K0
pheatmap带你轻松绘制聚类相关性热图
tidyHeatmap使用长数据绘制热图
tidyHeatmap基于ComplexHeatmap,遵循图形语法,最大的好处是直接使用长数据画热图,这是目前其他画热图的R包所不具备的。
医学和生信笔记
2023/08/30
4990
tidyHeatmap使用长数据绘制热图
我以为热图只能画数值型数据,万万没想到...
今天在群里看到一个非常漂亮的热图,我以为是什么奇怪的新R包画的,转了一圈发现原来还是大名鼎鼎的ComplexHeatmap丫。今天的代码都是在作者写的书基础上探索学习的,书在:https://jokergoo.github.io/ComplexHeatmap-reference/book/
科研菌
2021/02/19
1.9K0
我以为热图只能画数值型数据,万万没想到...
相关推荐
超详细的R语言热图绘制之complexheatmap:01
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验