MetaNeighbor Analysis中函數(shù)MetaNeighborUs

源代碼:https://rdrr.io/bioc/MetaNeighbor/src/R/MetaNeighborUS.R
reference paper:https://www.nature.com/articles/s41467-018-03282-0#Sec10
Github:https://github.com/maggiecrow/MetaNeighbor/blob/master/README.md

在MetaNeighborUs函數(shù)中,輸入表達(dá)矩陣,高變基因的列表,每個(gè)細(xì)胞對(duì)應(yīng)的類(lèi)型標(biāo)簽以及細(xì)胞所屬的樣本。
假設(shè)共有n個(gè)細(xì)胞,共有兩個(gè)樣本,共有m個(gè)高變基因。每個(gè)樣本中都有三個(gè)細(xì)胞類(lèi)型,且是互相對(duì)應(yīng)的。

原函數(shù)工作流程

計(jì)算每個(gè)細(xì)胞與不同細(xì)胞類(lèi)型之間的連接度

根據(jù)輸入的信息創(chuàng)建一個(gè)指示每個(gè)細(xì)胞類(lèi)型的零一矩陣。(cell_labels)(n*6)


每個(gè)細(xì)胞有且僅有一列的值為1 其余列的值為0

過(guò)濾掉表達(dá)矩陣中的非高變基因,用高變基因計(jì)算所有細(xì)胞(無(wú)論所屬的樣本與細(xì)胞類(lèi)型)兩兩之間的Spearmann Correlation。得到一個(gè)對(duì)稱的相關(guān)性矩陣(cor_data)。(n*n)此時(shí)對(duì)角線上的值為1,其余位置的值在0~1之間。

根據(jù)相關(guān)系數(shù)矩陣對(duì)矩陣中的所有項(xiàng)進(jìn)行秩的計(jì)算,由于共有nn項(xiàng),所以理論上最大值應(yīng)為nn,最小值應(yīng)為1,但是由于排序時(shí)tie.method設(shè)置不同,可能不符合。得到一個(gè)包含n*n的包含正整數(shù)的對(duì)稱矩陣(rank_data)。此時(shí)對(duì)角線上的值相同,且為矩陣中的最大值。

rank_data矩陣中的所有項(xiàng)均除以最大rank值。此時(shí)矩陣對(duì)角線上的值最大,為1,其余的值在0~1之間。

將rank_data每一列的值加和,得到的是一個(gè)細(xì)胞與其他所有細(xì)胞之間的相關(guān)性排序之和。(sum_all)一個(gè)細(xì)胞的值越大,說(shuō)明這個(gè)細(xì)胞與其他細(xì)胞之間的總相關(guān)性越強(qiáng)。

用rank_data矩陣乘以指示細(xì)胞類(lèi)型的矩陣cell_labels,就會(huì)得到每個(gè)細(xì)胞對(duì)于不同細(xì)胞類(lèi)型之間的連接度矩陣。(sum_in)(n*6)

將sum_in的每一行除以對(duì)應(yīng)細(xì)胞的sum_all值,使得每一行的和為1,即每個(gè)細(xì)胞與所有細(xì)胞類(lèi)型之間的連接度之和為1。該矩陣稱為predicts。(n*6)

分別計(jì)算每種細(xì)胞類(lèi)型與各種細(xì)胞類(lèi)型之間的AUROC值

對(duì)每種細(xì)胞類(lèi)型,從predicts中取出其所屬樣本中所有細(xì)胞與所有類(lèi)型之間的連接度組成矩陣。

對(duì)每一列分別進(jìn)行排序。

將屬于該類(lèi)型的細(xì)胞的在所有類(lèi)型的排序保留,其余行的項(xiàng)均為0。

對(duì)于每一列進(jìn)行求和,得到該細(xì)胞類(lèi)型在不同細(xì)胞類(lèi)型的排序的總和。

最終計(jì)算公式:cell_NV[i,]= (p/np - (np+1)/2)/nn

其中:p-排序的總和;np-屬于該細(xì)胞類(lèi)型的細(xì)胞數(shù);nn-在該樣本中不屬于該細(xì)胞類(lèi)型的細(xì)胞數(shù)

AUC計(jì)算公式:https://www.plob.org/article/22899.html
可以推斷的是:
當(dāng)p最大時(shí),所有不屬于該類(lèi)型的細(xì)胞的排序都低于屬于該類(lèi)型的細(xì)胞,即nn個(gè)不屬于該類(lèi)型的細(xì)胞完全被過(guò)濾掉了,保留下來(lái)的秩應(yīng)該都是大于nn的。所以pmax = [1+2+…+(np+nn)]-(1+2+…+nn)=(np+nn+1)(np+nn)/2 - (nn+1)nn/2=(np^2+2np)/2,根據(jù)該計(jì)算公式,如果p=pmax,cell_NV[i,j]=1。

關(guān)于最終AUROC矩陣為何是對(duì)稱的

在計(jì)算完所有類(lèi)型之間的AUROC之后,默認(rèn)參數(shù)設(shè)置symmetric_output = TRUE。會(huì)進(jìn)行一步計(jì)算使得矩陣強(qiáng)行對(duì)稱cell_NV <- (cell_NV + t(cell_NV))/2。

經(jīng)過(guò)測(cè)試,如果設(shè)置symmetric_output = F,則矩陣不是對(duì)稱的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容