細胞類型重復性驗證----MetaNeighbor(2)

繼續上面MetaNeighbor 1的學習,我們做第二個測試數據,第二組場景的測試。

========測試數據2============

第二個數據集,基于已經訓練好或者注釋好的參考數據集,來衡量新數據集細胞類型注釋的準確性。這個測試數據是采用的BICCN,一個小鼠初級運動皮層的細胞。可以去作者的paper鏈接中下載。

library(MetaNeighbor)

library(SingleCellExperiment)

biccn_data <- readRDS("full_biccn_hvg.rds")

colnames(colData(biccn_data))

table(biccn_data$study_id)

dim(biccn_data)

從數據集來看,BICCN數據包含7個不同sample的數據集,總共482,712個細胞。這個數據,作者已經魚過濾,挑了319個高變異的基因了。


下面,使用trainModel函數通過訓練來獲得參考數據集,該函數具有與前面使用的MetaNeighborUS函數相同的參數。這里,我們利用兩種不同的注釋信息:一個是joint_subclass_label(中等分辨率,例如Vip中間神經元、L2/3 IT興奮神經元)和joint_cluster_label(高分辨率,例如Chandelier細胞),其實就是一個注釋的偏大類,一個注釋到了小類。

pretrained_model <- MetaNeighbor::trainModel(var_genes = rownames(biccn_data),

? ? ? ? ? ? ? ? ? ? ? ? dat = biccn_data,

? ? ? ? ? ? ? ? ? ? ? ? study_id = biccn_data$study_id,

? ? ? ? ? ? ? ? ? ? ? ? cell_type = biccn_data$joint_subclass_label)

write.table(pretrained_model,"pretrained_biccn_subclasses.txt")

pretrained_model <- MetaNeighbor::trainModel(var_genes = rownames(biccn_data),

? ? ? ? ? ? ? ? ? ? ? ? dat = biccn_data,

? ? ? ? ? ? ? ? ? ? ? ? study_id = biccn_data$study_id,

? ? ? ? ? ? ? ? ? ? ? ? cell_type = biccn_data$joint_cluster_label)

write.table(pretrained_model,"pretrained_biccn_clusters.txt")


下面,我們就加載我們的測試數據,也是scRNAseq包中的一組數據。

library(scRNAseq)

tasic <- TasicBrainData(ensembl=FALSE)

colnames(colData(tasic))

tasic$study_id <- "tasic"

biccn_subclasses <- read.table("pretrained_biccn_subclasses.txt",check.names=FALSE)

biccn_clusters <- read.table("pretrained_biccn_clusters.txt",check.names=FALSE)

aurocs <- MetaNeighborUS(trained_model=biccn_subclasses,

? ? ? ? ? ? ? ? ? ? ? ? dat = tasic,

? ? ? ? ? ? ? ? ? ? ? ? study_id = tasic$study_id,

? ? ? ? ? ? ? ? ? ? ? ? cell_type = tasic$primary_type,

fast_version=TRUE)

plotHeatmapPretrained(aurocs)

從圖中可以看出,主要有3個大的block,根據細胞類型來看,主要是non-neurons (左上), inhibitory neurons (中間block) 和excitatory neurons (右下角)。同時也說明在三個大類型內部,可以相互很好的匹配和預測。其實大類里面還可以再繼續細分小類,比如中間的inhibitory neurons。

進而,為了更加清晰的去發現inhibitory neurons 這個類型的詳細信息,我們可以利用splitTrainClusters和splitTestClusters函數,來提取結果的子集重新顯示。

gabaergic_tasic <- splitTestClusters(aurocs,k=4)[[2]]

gabaergic_biccn <- splitTrainClusters(aurocs[gabaergic_tasic,],k=4)[[4]]

full_label <- makeClusterName(tasic$study_id,tasic$primary_type)

tasic_subdata <- tasic[,full_label %in% gabaergic_tasic]

aurocs <- MetaNeighborUS(trained_model=biccn_subclasses[,gabaergic_biccn],

? ? ? ? ? ? ? ? ? ? ? ? dat = tasic_subdata,

? ? ? ? ? ? ? ? ? ? ? ? study_id = tasic_subdata$study_id,

? ? ? ? ? ? ? ? ? ? ? ? cell_type = tasic_subdata$primary_type,

fast_version=TRUE)

plotHeatmapPretrained(aurocs,cex=0.7)

從結果來看,訓練集中BICCN的Lamp5和測試數據的Igtp和Smad3高度一致同源。?

上面的熱圖表明,所有Tasic細胞類型都可以與一個BICCN亞類相匹配。我們下面查看inhibitory neurons 的細胞是否在高分辨率細胞類型上能獲得同樣的結果。

aurocs <- MetaNeighborUS(trained_model=biccn_clusters,

? ? ? ? ? ? ? ? ? ? ? ? dat = tasic_subdata,

? ? ? ? ? ? ? ? ? ? ? ? study_id = tasic_subdata$study_id,

? ? ? ? ? ? ? ? ? ? ? ? cell_type = tasic_subdata$primary_type,

fast_version=TRUE)

plotHeatmapPretrained(aurocs,cex=0.7)

因為BICCN的細胞類型過多,這個圖就顯得稍微復雜,我們也可以像前面一樣,只顯示最高hit的cell來顯示。

best_hits<- MetaNeighborUS(trained_model=biccn_clusters,

? ? ? ? ? ? ? ? ? ? ? ? dat = tasic_subdata,

? ? ? ? ? ? ? ? ? ? ? ? study_id = tasic_subdata$study_id,

? ? ? ? ? ? ? ? ? ? ? ? cell_type = tasic_subdata$primary_type,

fast_version=TRUE,

one_vs_best=TRUE)


?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容