hello,大家好躯畴,又是新的一周民鼓,我們今天來(lái)學(xué)習(xí)一些簡(jiǎn)單的內(nèi)容,關(guān)于降維聚類的新的認(rèn)識(shí)蓬抄。說(shuō)到底丰嘉,降維聚類其實(shí)都是根本的問(wèn)題,一切的分析都基于此嚷缭,所以如何才能做好這個(gè)工作饮亏,其實(shí)需要很深的背景和積累。
先來(lái)第一個(gè)阅爽,scLINE路幸,大家可以參考scLINE: A multi-network integration framework based on network embedding for representation of single-cell RNA-seq data。
scLINE 是一個(gè) R 包付翁,用于對(duì)單細(xì)胞 RNA-seq 數(shù)據(jù)進(jìn)行降維简肴。 scLINE 整合了單細(xì)胞 RNA-seq 數(shù)據(jù)和從公共數(shù)據(jù)庫(kù)整理的多個(gè)基因網(wǎng)絡(luò),補(bǔ)充基因間的相互作用百侧,解決了因 drop-out 事件導(dǎo)致信息缺失的問(wèn)題砰识。 說(shuō)白了,利用現(xiàn)有大量的公共數(shù)據(jù)對(duì)單細(xì)胞drop-out事件進(jìn)行填補(bǔ)移层,非常有意義的分析仍翰。
- 圖注: (A) 基于 scRNA-seq 數(shù)據(jù)構(gòu)建細(xì)胞-基因網(wǎng)絡(luò)。 (B) 基于多個(gè)基因相互作用數(shù)據(jù)庫(kù)整合和構(gòu)建基因網(wǎng)絡(luò)观话。 (C) 在每次迭代中予借,選擇細(xì)胞-基因網(wǎng)絡(luò)中的邊,根據(jù)表達(dá)信息和整合的基因關(guān)系更新相應(yīng)的細(xì)胞和基因的低維向量。 訓(xùn)練模型以獲得細(xì)胞和基因的低維表示灵迫。
接下來(lái)我們看一下分析代碼
1秦叛、安裝與加載
install.packages("devtools")
library(devtools)
install_github("BMILAB/scLINE")
library(scLINE)
2、準(zhǔn)備數(shù)據(jù)
2.1 單細(xì)胞轉(zhuǎn)錄組數(shù)據(jù)
scLINE 的輸入是一個(gè) scRNA-seq 數(shù)據(jù)矩陣瀑粥,其中行對(duì)應(yīng)于基因挣跋,列對(duì)應(yīng)于細(xì)胞。 示例中狞换,以來(lái)自人類神經(jīng)元細(xì)胞的數(shù)據(jù)集 Usoskin 為例避咆。
> load(system.file("data","Usoskin.Rdata",package = "scLINE"))
> exp_mat<-Usoskin$rawdata
> dim(exp_mat)
[1] 25334 622
> exp_mat[6:10,1:5]
L128_B01 L128_C01 L128_D01 L128_E01 L128_F01
AAMP 55.678 303.9 156.57 80.096 185.63
AANAT 0.000 0.0 0.00 0.000 0.00
AARS 83.517 303.9 156.57 0.000 0.00
ABAT 27.839 0.0 0.00 0.000 0.00
ABCA1 0.000 0.0 0.00 0.000 0.00
2.2 構(gòu)建基因網(wǎng)絡(luò)
這一步需要輸入基因網(wǎng)絡(luò)列表。 網(wǎng)絡(luò)需要以三元組的形式表示修噪,有以下三列:基因 ID查库、基因 ID、分?jǐn)?shù)黄琼。 基因網(wǎng)絡(luò)可以來(lái)源于現(xiàn)有的公共數(shù)據(jù)庫(kù)或用戶通過(guò)其他方式獲得的基因間關(guān)系網(wǎng)絡(luò)樊销。 在示例中,我們以從公共數(shù)據(jù)庫(kù) String(v9.1)脏款、HumanNet(v1) 和 IntPath(v2.0) 中集成的 3 個(gè)基因網(wǎng)絡(luò)為例围苫。
> load(system.file("data","string.Rdata",package = "scLINE"))
> load(system.file("data","ppi.Rdata",package = "scLINE"))
> load(system.file("data","humannet.Rdata",package = "scLINE"))
> gene_network<-list(string = string,ppi = ppi,humannet = humannet)
> str(gene_network)
List of 3
$ string :'data.frame': 11353056 obs. of 3 variables:
..$ V1: chr [1:11353056] "ARF5" "ARF5" "ARF5" "ARF5" ...
..$ V2: chr [1:11353056] "PRKCG" "ZNF148" "PRDX6" "KALRN" ...
..$ V3: int [1:11353056] 260 164 159 194 164 189 240 164 164 224 ...
$ ppi :'data.frame': 39240 obs. of 3 variables:
..$ X1: chr [1:39240] "ALDH1A1" "ITGA7" "PPP1R9A" "SRGN" ...
..$ X2: chr [1:39240] "ALDH1A1" "CHRNA1" "ACTG1" "CD44" ...
..$ X3: num [1:39240] 1 1 1 1 1 1 1 1 1 1 ...
$ humannet:'data.frame': 476399 obs. of 3 variables:
..$ V1: chr [1:476399] "DLST" "MCM2" "FEN1" "EIF4A2" ...
..$ V2: chr [1:476399] "OGDH" "MCM3" "PCNA" "EIF4G1" ...
..$ V3: num [1:476399] 4.26 4.25 4.24 4.24 4.24 ...
3、Standard analysis work-flow
可以通過(guò)函數(shù) scLINE 獲得單個(gè)細(xì)胞的低維表示矩陣撤师。 需要指定低維向量維度L剂府、迭代次數(shù)T、負(fù)樣本數(shù)K丈氓、初始學(xué)習(xí)率rho周循,以及是否設(shè)置隨機(jī)權(quán)重Random_weight的選擇。
> lowdim_list<-scLINE(exp_mat, gene_network, L = 100, K = 5, T = 3e7, rho = 0.025, Random_weight = TRUE)
Mathching geneID...
Constructing mapping tables for sampling...
Start iterating...
Visualize the obtained low dimensional matrix in 2D through the function visualize.
visualize(lowdim_list$cell_low,Usoskin$label)
總結(jié)一下万俗,這個(gè)軟件雖然不錯(cuò)湾笛,但是輸入的東西要求比較多,如果有條件的話闰歪,這個(gè)分析是不錯(cuò)的嚎研。
接下來(lái)第二個(gè)軟件,ScCAEs库倘,聚類分析临扮,大家可以參考ScCAEs: Deep clustering single-cell RNA-seq via convolutional autoencoder embedding and soft K-means,ScCAEs首先通過(guò)卷積自編碼器學(xué)習(xí)從原始scRNA-seq到低維特征的非線性映射,然后通過(guò)具有KL散度的正則化軟Kmeans算法迭代完成細(xì)胞聚類教翩。 Kmeans的聚類方式其實(shí)相對(duì)少見(jiàn)杆勇,因?yàn)樾枰藶橹付ň垲悢?shù)的關(guān)系,很少有人用饱亿,不過(guò)這個(gè)算法有其優(yōu)勢(shì)蚜退,在一些特殊的情況下還是會(huì)用到闰靴。
我們來(lái)看一下代碼
準(zhǔn)備數(shù)據(jù),運(yùn)行數(shù)據(jù)集钻注,首先應(yīng)生成“data.csv”(基因計(jì)數(shù)矩陣蚂且,其中行代表細(xì)胞,列代表基因)和“l(fā)abel.csv”(真實(shí)標(biāo)簽)兩個(gè)文件幅恋。 然后杏死,可以將包含上述兩個(gè)文件(“data.csv”和“l(fā)abel.csv”)的數(shù)據(jù)集文件夾放入“datasets”并運(yùn)行以下代碼:
python scCAEs.py --dataset folder_name
然后我們可以得到如下結(jié)果,In the following two images, the first image is colored with clustering results, and the second image is colored with true labels.
The inference of cellular trajectory
這個(gè)軟件的分析倒是有點(diǎn)先入為主的嫌疑捆交。
當(dāng)然淑翼,方法都是人用的,我們要甄別零渐,不能拿來(lái)就用窒舟。
生活很好系忙,有你更好~~