学术资讯 » 学界研圈

  • 首 页
  • 期刊选题
  • 期刊点评
  • 期刊大全
  • 学人博客
  • 编辑征稿
  • 投稿选刊
  • 万维群组
  • 学术会议
  • 万维读书
  • SCI/E期刊
  • SSCI期刊
  • AHCI期刊
  • PLS-DA代替PCA试试降维效果?

    阅读: 2022/4/6 10:06:55

    最近有小伙伴问道PLS-DA(Partial least squares Discriminant Analysis,偏最小二乘判别分析),一种组学分析中常用的多变量分析方法,具体的原理就不多说了,主要也怕数学的内容说错了误导人,我们就看看R怎么分析和可视化即可,详细的原理可翻阅《多元统计学》偏最小二乘判别分析部分学习。

    其实,如果不做代谢组学或者看这方面的文章,一般学点组学分析的人还真不容易看到PLS-DA,因为常见组学(转录组、蛋白组),文章中一般使用PCA分析降维(转录组不求人系列(三):PCA分析及CNS级别作图),代谢组学使用较多。如果你的样品之间相关性不强,这时候主成分分析降维的效果其实不太好,就可以试试这种有监督的学习方法---PLS-DA来代替PCA。

    首先我们构建一下数据(随便找的,没有意义),行名为基因,列名为样本。

    我们做下PCA看看效果。

    setwd("F:/生物信息学/PLS-DA")

    A <- read.csv("pl.csv",header = T,row.names = 1)

    data <- t(A)

    data.pca <- prcomp(data)

    library(factoextra)

    group=c(rep("MD",11),rep("MA",12))

    fviz_pca_ind(data.pca,

                 col.ind=group,

                 mean.point=F,

                 addEllipses = T,

                 legend.title="Groups",

                 palette = c("#CC3333", "#339999"))+

      theme(panel.border = element_rect(fill=NA,color="black", size=1, linetype="solid"))

    可以看到主成分是无法分开的。我们接下来试试PLS-DA分析看看效果。先使用mixOmics包做一下,可以进行分析和可视化,过程很简单。数据和分组同上面PCA。可以看到结果样本分组差异很明显,以后蛋白组或者转录组数据都可应用。

    BiocManager::install("mixOmics")

    library(mixOmics)

    pls_ana <- plsda(data,

                     group,

                     ncomp = 2)

    plotIndiv(pls_ana,

              comp = c(1,2),

              group = group,

              ind.names = TRUE,

              ellipse = TRUE,

              legend = TRUE,

              style = 'ggplot2',

              pch =16,

              cex =5)

    还可计算背景面积可视化预测区域。

    background = background.predict(pls_ana, comp.predicted=2, dist = "max.dist")

    plotIndiv(pls_ana, comp = 1:2,

              group = group, ind.names = T,

              legend = TRUE,  background = background)

    其他的R包:ropls包也可进行PLS-DA分析。结果与mixOmics包一样,不过可视化更加方便,可视化结果更多。

    BiocManager::install("ropls")

    library(ropls)

    pls-ana <- opls(x = data, y = group, orthoI = 0)

    pls-ana

    还可以获取更多信息,例如查看查看差异比较大的表达基因。

    par(mfrow = c(1, 2))

    plot(pls-ana, typeVc = 'x-score', parAsColFcVn = group)

    plot(pls-ana, typeVc = 'x-loading')

    以上就是非常粗略的说了下PLS-DA的做法和可视化差异性了,其实PLS-DA还有很多内容,想了解的自行深入学习吧!

     

    如有侵权,请联系本站删除!

    浏览(523)
    点赞(0)
    收藏(0)
  • 上一篇:复现20分文章的图形分析---学习两组差异基因可视化八象限图

    下一篇:持续更新!国家自然科学基金项目申报通知汇总(非集中受理期)

  • 首页

  • 文章

  • 期刊

  • 帮助

  • 我的

版权所有 Copyright@2023    备案号:豫ICP备2021036211号