

CoIA概述
CoIA過程可概括如下。
分別在變數矩陣X和Y(X、Y資料集中的物件需一致)的多維空間中,分解總慣量獲得一組正交軸(特徵向量),它們各自代表了正交方向上的最大化慣量方向。總慣量是資料變異程度的整體度量,如果透過PCA執行特徵向量的分解,則過程中的總慣量等於總方差。
協慣量則是對X和Y空間中物件共同結構的全域性度量,當X和Y中的變數具有較高的某種相關程度時,協慣量高,當X和Y中的變數趨於獨立時,協慣量低。CoIA的目的是確定X和Y空間中具有最大協慣量的兩組特徵向量,並透過它們計算獲得一組協慣量軸,代表正交方向上最大化協慣量的方向,各軸承載的協慣量之和即總協慣量。
上述X和Y在特徵分解過程中是各自獨立的過程。如果將上述兩步統一起來,則也可以這樣理解:CoIA中計算了X和Y內變數交叉的協方差矩陣,協方差矩陣的平方和即為總協慣量,協慣量軸則代表了對協方差矩陣的特徵分解。
最後將X和Y中的原始物件和變數投影至協慣量軸中,據此判斷它們之間的關係。並可結合置換檢驗,確定CoIA在評估X和Y結構相似程度的有效性。

在分解X和Y總慣量的過程中,根據實際情況存在多種備選方法,例如PCA、CA等,並且允許使用不同的方法分別對各資料集分析。因此CoIA可對應多種融合型別,例如PCA-PCA融合的CoIA、CA-PCA融合的CoIA等。除常規的定量資料外,還可透過與多重對應分析(MCA)、模糊主成分分析(FPCA)等的結合,實現對定性資料、模糊資料等的分析,充分體現了CoIA的靈活性。
但是CoIA要求在分別對X和Y執行特徵分解後,行的權重必須相等才可將兩個分離的排序過程融合在一起,因此可能限制了基於加權迴歸的CA在CoIA中的應用。
常見的約束排序如冗餘分析(RDA)、典範對應分析(CCA)涉及了多元迴歸過程,對於解釋變數而言,如果不相關(即正交)變數很少,則多元迴歸步驟近似於單變量回歸的擴充套件,此時RDA、CCA都是相對有效的方法。但若解釋變數較多,它們通常之間會存在更多的相關性,此時RDA和CCA將變得不穩定。因此對於RDA、CCA,通常要求解釋變數的數量一般不能很多,例如在物種–環境的約束排序分析中,儘可能減少環境變數(解釋變數)的數量以提升約束模型精度。相比之下,CoIA與偏最小二乘迴歸相關聯,在資料維數隨變數數量迅速增加時通常表現較好,因此對於上述這類物種–環境關係的確立,CoIA無需考慮對環境變數數量的限制,是經典迴歸的可靠替代方法。儘管如此,CoIA由於其屬於對稱分析範疇,分析的兩資料集之間無解釋變數與響應變數之分,二者無解釋與被解釋關係。如果期望使用環境對物種建模(即變數間存在因果關係),RDA、CCA等仍是首選,並透過變數選擇去除不重要且存在強相關的解釋變數。
總體來講,CoIA廣泛應用於多元分析。在生物學領域的多組學研究中,經常可以見到CoIA。
例如在微生物組研究中,除了上述提到的物種–環境的互動外(微生物群落),其它方面,例如使用CoIA確定兩組環境變數的相關性或者物種間的共變(微生物群落),或者物種組成(如16S、18S、ITS測序)與功能(如宏基因組)的關係,以及群落功能的一致性(如宏基因組、宏轉錄組、代謝組)等。再例如轉錄組中,使用CoIA分析微陣列與RNA-seq的基因表達譜一致性等。
R語言執行CoIA
本篇簡介R語言執行CoIA的方法。
在R中,可用於執行CoIA的方法有很多,例如ade4包的coinertia(),made4包的cia()等。
made4的內建資料集“NCI60”為60種人類腫瘤細胞系的基因表達譜,這些細胞系來源於白血病、黑色素瘤、肺癌、結腸癌、中樞神經癌、卵巢癌、腎癌、乳腺癌和前列腺癌等。“NCI60”是一個列表結構,包含了基因表達矩陣“Affy”和“Ross”,分別為使用Affymetrix和spotted cDNA微陣列技術對這60種細胞系進行表達譜分析的子集,兩組微陣列涉及的樣本(物件)相同,但基因(變數)不同,且兩組資料集中的基因表達譜已經過標準化處理。
#bioconductor 安裝 made4 包
#BiocManager::install('made4')
#載入 made4 包,made4 以 ade4 為基礎(呼叫 ade4 的函式),所以它也會自動載入 ade4 包
library(made4)
#資料集
#詳情 http://www.bioinf.ucd.ie/people/aedin/R/pages/made4/html/NCI60.html
data(NCI60)
names(NCI60)
head(NCI60$Ross[1:6]) #spotted cDNA 微陣列
head(NCI60$Affy[1:6]) #Affymetrix 微陣列
head(NCI60$classes) #細胞系的癌細胞型別

然後期望評估兩個微陣列中的基因表達特徵是否相似。由於兩個微陣列涉及的基因(變數)不同,故無法根據共有基因的表達水平直接去觀測,此時CoIA是個較好的替代方案。
抱歉,這裡載入made4包,只是單純地想使用它的資料集……至於為什麼不繼續使用made4中的方法執行CoIA,個人感覺它的處理效果不如ade4靈活;然後ade4中自帶的資料集,也感覺不好使……
##ade4 執行 CoIA
#這裡對於兩組基因表達譜,可執行 PCA-PCA 融合的 CoIA
#首先執行資料集1(spotted cDNA 微陣列矩陣)的 PCA,詳情 ?dudi.pca
dudi1 <- dudi.pca(NCI60$Ross, scale = FALSE, scan = FALSE, nf = 4)
#其次執行資料集2(Affymetrix 微陣列矩陣)的 PCA
dudi2 <- dudi.pca(NCI60$Affy, scale = FALSE, scan = FALSE, nf = 4)
#檢視兩步 PCA 的總方差由各軸的承載比,評估前幾軸的代表性
summary(dudi1)
summary(dudi2)
#檢視兩步排序的行權重是否一致,為 TRUE 時才可用於融合
all.equal(dudi1$lw, dudi2$lw)
首先對兩組資料集分別執行獨立的PCA分析(特徵分解),dudi.pca()函式中的scale引數用於標準化資料,這裡由於兩組資料集已經是標準化後的基因表達譜矩陣,所以scale=FALSE;nf引數可用於擷取結果中的排序軸數量以便後續觀測和分析資料(不影響計算過程),這裡保留前4軸。
以下是兩個PCA的結果概要。

兩個PCA的前幾軸貢獻度可觀,且兩個PCA結果的行權重一致,滿足CoIA的前提,然後將兩個PCA結果提交coinertia()執行CoIA,結果中同樣保留前4軸(這裡的軸數選擇要小於等於兩個PCA中的最小軸數,同樣地,軸數選擇僅為方便觀測資料,不影響計算結果)。
#PCA-PCA 融合的 CoIA,詳情 ?coinertia
coin1 <- coinertia(dudi1, dudi2, scan = FALSE, nf = 2)
coin1
summary(coin1)
以下是CoIA融合兩個PCA後的結果概要。
透過CoIA軸的協慣量承載比,評估CoIA軸的代表性;透過比較投影后慣量與原始慣量的比例,評估CoIA軸表徵先前兩組PCA軸的效率;透過RV值,評估兩資料集的關聯程度;等等。

透過隨機置換,計算每次置換資料後的RV值(RV*),RV*大於初始觀測RV值的機率即為p值,越小表明CoIA評估兩組資料集結構相似程度的結果越可信。
#置換檢驗確定 CoIA 軸的顯著性,顯示顯著
rand_test <- randtest(coin1, nrepet = 999)
rand_test
plot(rand_test)

以及對於一些結果的提取示例。
##提取主要結果,以融合後的結果為例
summary_coin1 <- summary(coin1)
names(coin1)
names(summary_coin1)
#各軸特徵值
coin1$eig
#各軸特徵值貢獻度
coin1$eig / sum(coin1$eig)
#dudi1 物件座標
coin1$co
#dudi2 物件座標
coin1$li
#CoIA 分析協慣量矩陣特徵根的分解情況
summary_coin1$EigDec

綜上可知,CoIA前2軸具有較好的代表性,表明兩個資料集(兩個微陣列的基因表達)的大部分共同結構都可以透過CoIA的前兩軸呈現出來。並且兩個資料集之間具有顯著的相關性,儘管相關程度不是特別高。
最後透過排序圖觀測資料集之間的關係。
#排序圖,ade4 打包好的作圖樣式
plot(coin1)
透過左上兩圈圖,可知對於兩組資料集,PCA的前兩軸(Ax1、Ax2)與CoIA前兩軸(背景圓圈的正交線)的重合性相對可觀,表明CoIA能有效反映先前兩個PCA中的結構。
透過左下的特徵根柱形圖,可知CoIA前兩軸承載了絕大部分的協慣量,表明CoIA前兩軸具有很好的代表性。
右上排序圖展示了物件在CoIA前兩軸中的排序位置,其中箭頭起點代表了第1個數據集(本示例為spotted cDNA微陣列矩陣)物件的投影,箭頭頂點代表了第2個數據集(本示例為Affymetrix微陣列矩陣)物件的投影,箭頭越短表明兩資料集的一致性越高。
右下方的圖反映了兩個資料集中的變數對排序空間的貢獻,相關性搞的變數箭頭方向趨於一致,箭頭長度代表了變數對排序的貢獻程度。

參考資料



