最近有小伙伴問(wèn)道PLS-DA(Partial least squares Discriminant Analysis曙寡,偏最小二乘判別分析),一種組學(xué)分析中常用的多變量分析方法楣号,具體的原理就不多說(shuō)了,主要也怕數(shù)學(xué)的內(nèi)容說(shuō)錯(cuò)了誤導(dǎo)人怒坯,我們就看看R怎么分析和可視化即可炫狱,詳細(xì)的原理可翻閱《多元統(tǒng)計(jì)學(xué)》偏最小二乘判別分析部分學(xué)習(xí)。
其實(shí)敬肚,如果不做代謝組學(xué)或者看這方面的文章毕荐,一般學(xué)點(diǎn)組學(xué)分析的人還真不容易看到PLS-DA,因?yàn)槌R?jiàn)組學(xué)(轉(zhuǎn)錄組艳馒、蛋白組)憎亚,文章中一般使用PCA分析降維(轉(zhuǎn)錄組不求人系列(三):PCA分析及CNS級(jí)別作圖),代謝組學(xué)使用較多弄慰。如果你的樣品之間相關(guān)性不強(qiáng)第美,這時(shí)候主成分分析降維的效果其實(shí)不太好,就可以試試這種有監(jiān)督的學(xué)習(xí)方法---PLS-DA來(lái)代替PCA陆爽。
首先我們構(gòu)建一下數(shù)據(jù)(隨便找的什往,沒(méi)有意義),行名為基因慌闭,列名為樣本别威。
我們做下PCA看看效果躯舔。
setwd("F:/生物信息學(xué)/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"))
可以看到主成分是無(wú)法分開(kāi)的。我們接下來(lái)試試PLS-DA分析看看效果省古。先使用mixOmics包做一下粥庄,可以進(jìn)行分析和可視化,過(guò)程很簡(jiǎn)單豺妓。數(shù)據(jù)和分組同上面PCA惜互。可以看到結(jié)果樣本分組差異很明顯琳拭,以后蛋白組或者轉(zhuǎn)錄組數(shù)據(jù)都可應(yīng)用训堆。
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)
還可計(jì)算背景面積可視化預(yù)測(cè)區(qū)域。
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包也可進(jìn)行PLS-DA分析白嘁。結(jié)果與mixOmics包一樣坑鱼,不過(guò)可視化更加方便,可視化結(jié)果更多絮缅。
BiocManager::install("ropls")
library(ropls)
pls-ana <- opls(x = data, y = group, orthoI = 0)
pls-ana
還可以獲取更多信息姑躲,例如查看查看差異比較大的表達(dá)基因。
par(mfrow = c(1, 2))
plot(pls-ana, typeVc = 'x-score', parAsColFcVn = group)
plot(pls-ana, typeVc = 'x-loading')
以上就是非常粗略的說(shuō)了下PLS-DA的做法和可視化差異性了盟蚣,其實(shí)PLS-DA還有很多內(nèi)容,想了解的自行深入學(xué)習(xí)吧卖怜!