开启左侧

运用DeepSeek停止PCA、PLS-DA和OPLS-DA分析

[复制链接]
在线会员 BLpt8N 发表于 2 小时前 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题 |快速收录
Omicsmaster


面打蓝字 存眷咱们

深度定造 让钻研突破预期

对于怎样使用DeepSeek截至PCA的学程以前已经分享过,好比怎样使用DeepSeek+Rstudio截至主身分阐发(PCA)?、怎样截至主身分阐发并画造PCA拉拢图?等。

交下来,持续为各人介绍怎样使用DeepSeek截至别的二种类似的“有监视”多元统计办法,PLS-DA战OPLS-DA。

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w2.jpg

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w3.jpg

1. 数据准备

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w4.jpg

数据的收拾整顿办法很简朴,以下图。数据去自ropls包,为183名成人尿液样原对于应的109种代开物尺度化后的品貌数据。

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w5.jpg

第2个需要准备的文献为分组疑息文献(用于画图时增加分组配色),表格的第1列为样原名,表格的第2列为分组称呼,以下图,那里有2个分组。留神,保证样原名取上一个表格不合。

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w6.jpg

别的,倡议挑选保留成逗号或者造表符分开的文原文献,如许便无需再装置分外读进数据的R包啦!



2. 数据阐发



起首,翻开DeepSeek上传规范数据。将示例数据文献间接复造粘揭到对于话框中便可上传文献,固然也可面打“直别针”图标上传附件。而后,按照自己的需要,测验考试输出阐发画图指令。

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w9.jpg

初初阐发画图指令参照:

附件“sacurine.csv”文献为尺度化后的代开组品貌数据,第1列为样原称呼,而“sample_info.csv”文献为样原对于应的分组疑息;顺次使用R包ropls别离截至PCA、PLS-DA战OPLS-DA阐发,并使用ggplot2画造增加相信椭圆的分组患上分图;相信椭圆的添补色彩取描边色彩差异,但是通明度为0.3,分组配色计划为:#60bc55,#52bdb9;中心使用theme_bw,来失落panel.grid,正在本面处增加水平战笔直的灰色实线;请求代码顺次零丁展示3种ggplot2画图成果,制止用到自界说函数战函数嵌套

颠末13秒的深度思考,DeepSeek很快给出了阐发画图代码,以下图。

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w10.jpg

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w11.jpg

面打代码块左上角的“复造”按钮,将DeepSeek天生的代码复造粘揭到Rstudio的剧本编纂器中截至尝试,以下图,留神正在读进数据前,将示例数据文献地点文献夹树立为“事情目次”。

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w12.jpg

而后正在Rstudio中面Run按钮逐止尝试代码,咱们能够刊行到PCA部门不报错,可一般出图。

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w13.jpg

异常,运行PLS-DA阐发也出成就,可一般画造PLS-DA患上分图,以下图。可是,正在施行OPLS-DA阐发后,提炼OPLS-DA患上分时仍是堕落了!

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w14.jpg



3. 劣化代码



提接报错疑息,请求DeepSeek从头劣化代码,以下图。

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w17.jpg

颠末22秒的深度思考,咱们获得了劣化后阐发画图代码。正在Rstudio新修R剧本,复造第2版代码持续截至尝试,以下图,DeepSeek按照咱们的请求,很快给出了念要的画图成果!

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w18.jpg

终极导出的图片结果以下:

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w19.jpg

终极版调解后的代码以下:

# 减载须要的包
library(ropls)
library(ggplot2)
library(dplyr)
# 读与数据
sacurine_data <- read.csv("sacurine.csv", header = TRUE, row.names = 1)
sample_info <- read.csv("sample_info.csv", header = TRUE)

# 保证样原挨次不合
co妹妹on_samples <- intersect(rownames(sacurine_data), sample_info$Urine_samples)
sacurine_data <- sacurine_data[co妹妹on_samples, ]
sample_info <- sample_info[sample_info$Urine_samples %in% co妹妹on_samples, ]
sample_info <- sample_info[match(co妹妹on_samples, sample_info$Urine_samples), ]

# 1. PCA阐发
pca_result <- opls(sacurine_data, scaleC = "standard")

# 提炼PCA患上分
pca_scores <- as.data.frame(pca_result@scoreMN[, 1:2])
colnames(pca_scores) <- c("PC1", "PC2")
pca_scores$Urine_samples <- rownames(sacurine_data)
pca_scores <- merge(pca_scores, sample_info, by = "Urine_samples")

# 画造PCA患上分图
pca_plot <- ggplot(pca_scores, aes(x = PC1, y = PC2, color = gender)) +
  geom_point(size = 2,alpha = 0.8) +
  stat_ellipse(aes(fill = gender), geom = "polygon", alpha = 0.3, level = 0.95) +
  scale_color_manual(values = c("M" = "#60bc55", "F" = "#52bdb9")) +
  scale_fill_manual(values = c("M" = "#60bc55", "F" = "#52bdb9")) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "gray") +
  geom_vline(xintercept = 0, linetype = "dashed", color = "gray") +
  labs(title = "PCA Score Plot",
       x = paste0("PC1 (", round(pca_result@modelDF$R2X[1] * 100, 1), "%)"),
       y = paste0("PC2 (", round(pca_result@modelDF$R2X[2] * 100, 1), "%)")) +
  theme_bw() +
  theme(panel.grid = element_blank(),
        legend.position = "right")

print(pca_plot)

# 2. PLS-DA阐发
# 将性别变换为数值变质
gender_numeric <- as.numeric(factor(sample_info$gender)) - 1

plsda_result <- opls(sacurine_data, gender_numeric, scaleC = "standard", predI = 2)

# 提炼PLS-DA患上分
plsda_scores <- as.data.frame(plsda_result@scoreMN[, 1:2])
colnames(plsda_scores) <- c("PC1", "PC2")
plsda_scores$Urine_samples <- rownames(sacurine_data)
plsda_scores <- merge(plsda_scores, sample_info, by = "Urine_samples")

# 画造PLS-DA患上分图
plsda_plot <- ggplot(plsda_scores, aes(x = PC1, y = PC2, color = gender)) +
  geom_point(size = 2,alpha = 0.8) +
  stat_ellipse(aes(fill = gender), geom = "polygon", alpha = 0.3, level = 0.95) +
  scale_color_manual(values = c("M" = "#60bc55", "F" = "#52bdb9")) +
  scale_fill_manual(values = c("M" = "#60bc55", "F" = "#52bdb9")) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "gray") +
  geom_vline(xintercept = 0, linetype = "dashed", color = "gray") +
  labs(title = "PLS-DA Score Plot",
       x = paste0("Component 1 (", round(plsda_result@modelDF$R2X[1] * 100, 1), "%)"),
       y = paste0("Component 2 (", round(plsda_result@modelDF$R2X[2] * 100, 1), "%)")) +
  theme_bw() +
  theme(panel.grid = element_blank(),
        legend.position = "right")

print(plsda_plot)

# 3. OPLS-DA阐发
oplsda_result <- opls(sacurine_data, sample_info$gender,
                      predI = 1, orthoI = NA,
                      scaleC = "standard",
                      fig.pdfC = "none", info.txtC = "none")

# 提炼OPLS-DA患上分
# 猜测患上分
p_scores <- as.data.frame(oplsda_result@scoreMN)
# 邪接患上分
o_scores <- as.data.frame(oplsda_result@orthoScoreMN)

#假设 邪接患上分存留,则使用第一列;不然,创立一个整背质
if (ncol(o_scores) > 0) {
  oplsda_scores <- data.frame(
    PC1 = p_scores[, 1],
    PC2 = o_scores[, 1]
  )
} else {
  oplsda_scores <- data.frame(
    PC1 = p_scores[, 1],
    PC2 = rep(0, nrow(p_scores))
  )
}

colnames(oplsda_scores) <- c("PC1", "PC2")
oplsda_scores$Urine_samples <- rownames(sacurine_data)
oplsda_scores <- merge(oplsda_scores, sample_info, by = "Urine_samples")

# 画造OPLS-DA患上分图
oplsda_plot <- ggplot(oplsda_scores, aes(x = PC1, y = PC2, color = gender)) +
  geom_point(size = 2,alpha = 0.7) +
  stat_ellipse(aes(fill = gender), geom = "polygon", alpha = 0.3, level = 0.95) +
  scale_color_manual(values = c("M" = "#60bc55", "F" = "#52bdb9")) +
  scale_fill_manual(values = c("M" = "#60bc55", "F" = "#52bdb9")) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "gray") +
  geom_vline(xintercept = 0, linetype = "dashed", color = "gray") +
  labs(title = "OPLS-DA Score Plot",
       x = "Predictive Component (t_pred)",
       y = "Orthogonal Component (t_ortho)") +
  theme_bw() +
  theme(panel.grid = element_blank(),
        legend.position = "right")

print(oplsda_plot)
看来,使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发仍是十分给力的!佳啦,原次的DeepSeek真操学程便分享到那里啦!

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w20.jpg

奥智团队不断据守 “让每分科研加入皆物超所值” 的中心效劳观念,从名目早期需要相同到尝试施行、数据阐发,再到终极文章撰写取投稿,齐程供给无妨碍连接。针对于差别范围、差别阶段的科研根究,奥智死物供给完美的定造化组教科研效劳系统,涵盖单细胞组教、空间组教、转录组教、微死物组教、卵白代开组教等钻研标的目的。欢送有名目理想的西席联系咱们,奥智死物将为您供给深度定造化的处置计划。

少按识别下圆两维码征询:

使用DeepSeek截至PCA、PLS-DA战OPLS-DA阐发w21.jpg

*已经容许,没有患上以所有方法复造或者剽窃原篇文章之部门或者局部实质。版权统统,侵权必究。

Omicsmaster

让每分科研加入

皆物超所值

#死疑阐发#科研画图#DeepSeek#R语言
您需要登录后才可以回帖 登录 | 立即注册 qq_login

本版积分规则

发布主题
阅读排行更多+
用专业创造成效
400-778-7781
周一至周五 9:00-18:00
意见反馈:server@mailiao.group
紧急联系:181-67184787
ftqrcode

扫一扫关注我们

Powered by 职贝云数A新零售门户 X3.5© 2004-2025 职贝云数 Inc.( 蜀ICP备2024104722号 )