單細胞數據挖掘實戰(zhàn):文獻復現(xiàn)(三)降維、聚類和細胞注釋

單細胞數據挖掘實戰(zhàn):文獻復現(xiàn)(一)批量讀取數據

單細胞數據挖掘實戰(zhàn):文獻復現(xiàn)(二)批量創(chuàng)建Seurat對象及質控

前面得到了samples_objects Seurat對象并進行了質控,下面進行降維、聚類和細胞注釋,主要是復現(xiàn)一下文獻中的Fig. 1b和Fig. 1c

一、高變基因

samples_objects <- lapply(seq_along(samples_objects), function(i) {
  samples_objects[[i]] <- FindVariableFeatures(object = samples_objects[[i]],
                                               selection.method = "vst", 
                                               nfeatures = 2000, verbose = FALSE)
})
names(samples_objects) <- names(samples_raw_data)

二闯狱、在Seurat對象中添加一些相關信息

  • 文獻中Fig. 1b和Fig. 1c主要用f_ctrl_1, f_tumor_1, m_ctrl_1, m_tumor_1這四個樣本;
  • 添加相關基因:用來計算細胞周期評分
#細胞周期相關基因
s_genes <- cc.genes$s.genes
g2m_genes <- cc.genes$g2m.genes
#小膠質細胞和巨噬細胞標志物
microglia_markers <- c("Tmem119", "P2ry12", "Sall1", "Pros1", "Crybb1")
macrophages_markers <- c("Itga4", "Tgfbi", "Cxcl2", "Ccr2", "Il10", "Fgr")
samples_objects <- lapply(seq_along(samples_objects), function(i) {
  # 添加shortID
  samples_objects[[i]]$shortID <- substr(as.character(samples_objects[[i]]$orig.ident), 15,
                                         nchar(as.character(samples_objects[[i]]$orig.ident)))
  
  # 添加sex和sex_condition
  samples_objects[[i]]$sex <- substr(as.character(samples_objects[[i]]$shortID), 12, 12)
  samples_objects[[i]]$sex_condition <- paste0(samples_objects[[i]]$sex, "_", samples_objects[[i]]$condition)
  
  # 添加var.features
  samples_objects[[i]]@assays$RNA@var.features <- unique(c(samples_objects[[i]]@assays$RNA@var.features, 
                                                           s_genes, g2m_genes, microglia_markers, macrophages_markers))
  samples_objects[[i]]
})
names(samples_objects) <- names(samples_raw_data)

三抛计、按條件整合樣本哄孤、PCA, t-SNE 及找細胞類群

設置參數

anchor_dims <- 30
pca_dims <- 30
clustering_resolution <- 0.3
n_features <- 2000

下面這個過程耗時較長

sex_condition_objects <- lapply(c(1,3,5,7), function(i) { # f_ctrl_1, f_tumor_1, m_ctrl_1, m_tumor_1
  sex_condition <- unique(samples_objects[[i]]$sex_condition)
  #按條件整合樣本(f_ctrl_1, f_tumor_1, m_ctrl_1, m_tumor_1)
  print(paste0("Find Integration Anchors: ", sex_condition))
  samples_anchors <- FindIntegrationAnchors(object.list = list(samples_objects[[i]], 
                                                               samples_objects[[i + 1]]), 
                                            dims = 1:anchor_dims,
                                            anchor.features = n_features)
  print(paste0("Integrate Data: ", sex_condition))
  samples_integrated <- IntegrateData(anchorset = samples_anchors, dims = 1:anchor_dims)
  DefaultAssay(object=samples_integrated) <- "integrated"
  #細胞周期評分(CellCycleScoring函數)
  print(paste0("Cell Cycle Scoring:", sex_condition))
  samples_integrated <- CellCycleScoring(object = samples_integrated, s.features = s_genes,g2m.features = g2m_genes, set.ident = TRUE)  
  
  print(paste0("Scale Data: ", sex_condition, " regress out: nCount_RNA, percent_mito, CC_difference"))
  
  #計算 G2M 和 S 期分數之間的差異,以分離非周期細胞和周期細胞
  # Seurat細胞周期評分和回歸 
  samples_integrated$CC_Difference <- samples_integrated$S.Score - samples_integrated$G2M.Score
  samples_integrated <- ScaleData(object = samples_integrated, verbose = FALSE, 
                                  vars.to.regress = c("nCount_RNA", 
                                                      "percent_mito", 
                                                      "CC_Difference"))  
  
  print(paste0("Run PCA: ", sex_condition))
  samples_integrated <- RunPCA(object = samples_integrated, npcs = pca_dims, verbose = FALSE)
  
  print(paste0("Run t-SNE:", sex_condition))
  samples_integrated <- RunTSNE(object = samples_integrated, reduction = "pca", dims=1:pca_dims)
  
  print(paste0("Find Neighbors: ", sex_condition))
  samples_integrated <- FindNeighbors(object = samples_integrated, dims = 1:pca_dims)
  
  print(paste0("Find Clusters: ", sex_condition))
  samples_integrated <- FindClusters(object = samples_integrated, resolution = clustering_resolution) 
  samples_integrated
})
names(sex_condition_objects) <- substring(names(samples_objects), 1, nchar(names(samples_objects))-2)[c(1,3,5,7)]

保存

saveRDS(sex_condition_objects, file = "sex_condition_objects.RDS")

四吹截、細胞注釋

  • 細胞注釋這一步文獻中是手工注釋的瘦陈,需要找一些marker,然后根據marker基因在哪些cluster中表達來判斷波俄;
  • 可以用DotPlot和FeaturePlot可視化marker基因晨逝;
  • 文獻中用到的marker在附件中,可以下載懦铺;

先看一下文獻中的圖


1.png

這里只嘗試f-ctrl這個樣本捉貌,其它三個大家可以自己去復現(xiàn)一下
先簡單畫個圖,看下cluster

DimPlot(sex_condition_objects[[1]],label = T)
2.png

選取marker并作圖觀察

##這些marker來自文獻中Fig. 1c中所示的基因
ctrl_gene_panel <- c("Cd14", "Tmem119", "P2ry12", "Csf1", "Crybb1", "Mcm5", "Ifit3", "Tgfbi", "Ifitm2", "Ifitm3", "S100a6", "Ly6c2", "Ccr2", "Mrc1", "Cd163", "Cd24a","Ncam1")

########################FeaturePlot###########
for (i in seq_along(ctrl_gene_panel)) {
  FeaturePlot(sex_condition_objects[[1]], features = ctrl_gene_panel[i], coord.fixed = T, order = T)
  ggsave2(paste0("FeaturePlot_tumor_gene_panel_", tumor_gene_panel[i], ".png"), path = "./annotation/f_ctrl", width = 10, height = 10, units = "cm")
}
#######################
#############################DotPlot#####################
p <- DotPlot(sex_condition_objects[[1]], features = ctrl_gene_panel,
             assay='RNA'  )  + coord_flip()
p
###############################################
3.png

需要對這些marker進行觀察判斷冬念,然后根據marker對細胞進行注釋趁窃,這里就按照文獻里的注釋進行下一步;

注釋:Fig. 1b

#################################################
anno_cells <- c("MG1","MG2","MG3","BAM","MG4","MG5","pre-MG",
                "pre-MG","pre-MG","pre-MG","MG6","pre-MG")
names(anno_cells) <- levels(sex_condition_objects[[1]])
sex_condition_objects[[1]] <- RenameIdents(sex_condition_objects[[1]],anno_cells)
DimPlot(sex_condition_objects[[1]],label = T,pt.size = 0.5,
        cols = c("#9AEAFF","#41589C","#64A7D4","#0FD1AE",
                 "#3A2985","#427DB0","#29A5C8","#518FC3"))+NoLegend()
#################################################

和文獻的圖比較一下

4.png

總體感覺差不多急前,MG4位置有點不一樣醒陆,不知道是不是因為R包版本不一致引起的?

Fig. 1c

DotPlot(sex_condition_objects[[1]], features = ctrl_gene_panel,
        cols = c("#92cee9","#00ed01")) + RotatedAxis() +
        theme(legend.position="top")

和文獻的圖比較一下


5.png

顏色需要調一下裆针,字體什么的可以去AI里修改刨摩,這里只做了f_ctrl_1一個樣本,還有f_tumor_1, m_ctrl_1, m_tumor_1三個樣本据块,感興趣的話可以去試一下码邻。

往期單細胞數據挖掘實戰(zhàn)

單細胞數據挖掘實戰(zhàn):文獻復現(xiàn)(一)批量讀取數據

單細胞數據挖掘實戰(zhàn):文獻復現(xiàn)(二)批量創(chuàng)建Seurat對象及質控

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末折剃,一起剝皮案震驚了整個濱河市另假,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌怕犁,老刑警劉巖边篮,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件己莺,死亡現(xiàn)場離奇詭異,居然都是意外死亡戈轿,警方通過查閱死者的電腦和手機凌受,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來思杯,“玉大人胜蛉,你說我怎么就攤上這事∩” “怎么了誊册?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長暖璧。 經常有香客問我案怯,道長,這世上最難降的妖魔是什么澎办? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任嘲碱,我火速辦了婚禮,結果婚禮上局蚀,老公的妹妹穿的比我還像新娘麦锯。我一直安慰自己,他們只是感情好琅绅,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布离咐。 她就那樣靜靜地躺著,像睡著了一般奉件。 火紅的嫁衣襯著肌膚如雪宵蛀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天县貌,我揣著相機與錄音术陶,去河邊找鬼。 笑死煤痕,一個胖子當著我的面吹牛梧宫,可吹牛的內容都是我干的。 我是一名探鬼主播摆碉,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼塘匣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了巷帝?” 一聲冷哼從身側響起忌卤,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎楞泼,沒想到半個月后驰徊,有當地人在樹林里發(fā)現(xiàn)了一具尸體笤闯,經...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年棍厂,在試婚紗的時候發(fā)現(xiàn)自己被綠了颗味。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡牺弹,死狀恐怖浦马,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情张漂,我是刑警寧澤捐韩,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站鹃锈,受9級特大地震影響荤胁,放射性物質發(fā)生泄漏。R本人自食惡果不足惜屎债,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一仅政、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盆驹,春花似錦圆丹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至廉丽,卻和暖如春倦微,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背正压。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工欣福, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人焦履。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓拓劝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嘉裤。 傳聞我的和親對象是個殘疾皇子郑临,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內容