日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

胃癌單細(xì)胞數(shù)據(jù)集GSE163558復(fù)現(xiàn)(四):細(xì)胞分群可視化

 健明 2024-06-21 發(fā)布于廣東

前言

Hello小伙伴們大家好,我是生信技能樹的小學(xué)徒”我才不吃蛋黃“。今天是胃癌單細(xì)胞數(shù)據(jù)集GSE163558復(fù)現(xiàn)系列第四期。第三期我們選擇0.5分辨率,對細(xì)胞進(jìn)行了分群注釋。本期,我們將在第三期基礎(chǔ)上使用多種方法可視化細(xì)胞和基因。

1.背景介紹

繪圖質(zhì)量一定程度上會(huì)直接影響文章的發(fā)表。站在審稿人的角度,好看的圖會(huì)令人賞心悅目,不好看的圖會(huì)成為巨大的減分項(xiàng)。好看的圖往往邏輯清晰、布局合理、配色協(xié)調(diào)。

邏輯清晰與否主要體現(xiàn)在機(jī)制/流程圖上。這張圖是全文的重中之重,是作者科研能力、繪圖水平和文章質(zhì)量的集中體現(xiàn)。布局是否合理大圖和小圖都會(huì)涉及。小圖需要我們?nèi)ゲ粩嗟恼{(diào)整坐標(biāo)軸、標(biāo)簽、文字的位置、大小和粗細(xì),還有圖片的透明度、分組的順序等等等等。配色協(xié)調(diào)考驗(yàn)的是繪圖人的審美水平。筆者是直男審美,在學(xué)習(xí)R繪圖的時(shí)候,數(shù)據(jù)和代碼的問題往往能解決,但就是畫的一手丑圖。

特別是配色一言難盡,只能找愛逛街的師妹幫忙配色,或者去找高分文章的配色然后直接copy。由于是審美不在線,因此本系列所有的顏色代碼,我就老老實(shí)實(shí)的copy。

看看第三期的圖,配色是不是看著很舒服:

2.可視化

在分群注釋之后,我們可以使用DimPlot、FeaturePlot、DoHeatmap、DotPlot等多種函數(shù)對細(xì)胞或基因可視化。

在繪圖之前,我們首先創(chuàng)建新的工作目錄,并讀取第三期亞群注釋后的數(shù)據(jù):

dir.create("4-plot")
setwd('4-plot/')
sce.all=readRDS( "../3-Celltype/sce_celltype.rds")
sce.all

使用DimPlot函數(shù)展示T細(xì)胞("0","1")在tSNE圖中的位置:

Idents(sce.all)
DimPlot(sce.all,label=T,
        reduction = "tsne",pt.size = 0.2,
        cells.highlight=list(
          T=WhichCells(sce.all, idents = c("0","1"))
        ),
        cols.highlight = c("red"),cols = "grey")

使用FeaturePlot函數(shù)展示T細(xì)胞maker基因('CD3D', 'CD3E', 'CD8A', 'CD4','CD2')的表達(dá)情況:

T_marker <- c('CD3D''CD3E''CD8A''CD4','CD2')
FeaturePlot(sce.all,features = T_marker,reduction = "tsne",cols = c("lightgrey" ,"#DE1F1F"),ncol=2,raster=FALSE)

使用DimPlot函數(shù)展示上皮細(xì)胞("5","11","12")在tSNE圖中的位置:

DimPlot(sce.all,label=T,
        reduction = "tsne",pt.size = 0.2,
        cells.highlight=list(
          Epithelial=WhichCells(sce.all, idents = c("5","11","12"))
        ),
          cols.highlight = c("red"),cols = "grey")

使用FeaturePlot函數(shù)展示上皮細(xì)胞maker基因('EPCAM','KRT19','CLDN4')的表達(dá)情況:

Epithelial_marker <- c('EPCAM','KRT19','CLDN4')
FeaturePlot(sce.all,features = Epithelial_marker,reduction = "tsne",cols = c("lightgrey" ,"#DE1F1F"),ncol=2,raster=FALSE)

FeaturePlot函數(shù)展示maker基因的表達(dá)也可以幫助我們檢查注釋準(zhǔn)確與否,因此,我們可以批量繪制多個(gè)maker基因:

genes_to_check = c('EPCAM','KRT19','CLDN4',  #上皮
                   'PECAM1' , 'CLO1A2''VWF',  #基質(zhì)
                   'CD3D''CD3E''CD8A''CD4','CD2'#T
                   'CDH5''PECAM1''VWF',  #內(nèi)皮
                   'LUM' , 'FGF7''MME',  #成纖維
                   'AIF1''C1QC','C1QB','LYZ',  #巨噬
                   'MKI67''STMN1''PCNA',  #增殖
                   'CPA3' ,'CST3''KIT''TPSAB1','TPSB2',#肥大
                   'GOS2''S100A9','S100A8','CXCL8'#中性粒細(xì)胞
                   'KLRD1''GNLY''KLRF1','AREG''XCL2','HSPA6'#NK
                   'MS4A1','CD19''CD79A','IGHG1','MZB1''SDC1',  #B
                   'CSF1R''CSF3R''CD68'#髓系

##批量畫基因
FeaturePlot(sce.all, features =genes_to_check, 
            cols = c("lightgrey"'red'),
            reduction = "tsne",
            ncol = 8 ) & NoLegend() & NoAxes() & theme(
              panel.border = element_rect(color = "black", size = 1)
            )

FeaturePlot除了可以展示單個(gè)基因,還可以把多個(gè)基因畫在同一個(gè)圖中。

Featureplot把兩個(gè)基因畫在同一個(gè)圖中,看右上角可以發(fā)現(xiàn)黃色越深的地方兩個(gè)基因疊加越多。這樣可以看兩個(gè)基因的共表達(dá),是不是和免疫熒光圖比較類似:

FeaturePlot(sce.all, features = c('S100A9','S100A8'),
            reduction = "tsne",
            cols = c("lightgrey""green""orange"),
            blend=T,blend.threshold=0)

Featureplot還可以把三個(gè)基因畫在同一個(gè)圖中:

# 提取tsne坐標(biāo)
tsne_df <- as.data.frame(sce.all@reductions$tsne@cell.embeddings)
tsne_df$cluster <- as.factor(sce.all$celltype)
head(tsne_df)
# 提取基因表達(dá)數(shù)據(jù)并與tsne坐標(biāo)合并
gene_df <- as.data.frame(GetAssayData(object = sce.all, slot = "data")[c('S100A9','S100A8','CXCL8'), ])

library(ggnewscale)
merged_df <- merge(t(gene_df), tsne_df, by = 0, all = TRUE)
head(merged_df)
colnames(merged_df)
ggplot(merged_df, vars = c("tSNE_1""tSNE_2"'S100A9','S100A8','CXCL8'), aes(x = tSNE_1, y = tSNE_2, colour = S100A9)) +
  geom_point(size=0.3, alpha=1) +
  scale_colour_gradientn(colours = c("lightgrey""green"), limits = c(0, 0.3), oob = scales::squish) +
  new_scale_color() +
  geom_point(aes(colour = S100A8), size=0.3, alpha=0.7) +
  scale_colour_gradientn(colours = c("lightgrey""blue"), limits = c(0.1, 0.2), oob = scales::squish) +
  new_scale_color() +
  geom_point(aes(colour = CXCL8), size=0.3, alpha=0.1) +
  scale_colour_gradientn(colours = c("lightgrey""red"), limits = c(0, 0.3), oob = scales::squish)+
  theme_classic()

此外,我們還可以使用DoHeatmap函數(shù)繪制熱圖,展示每群細(xì)胞top基因:

Idents(sce.all)
Idents(sce.all) = sce.all$celltype
sce.markers <- FindAllMarkers(object = sce.all, only.pos = TRUE, 
                              min.pct = 0.25, 
                              thresh.use = 0.25)
write.csv(sce.markers,file='sce.markers.csv')
#sce.markers = read.csv('sce.markers.csv',row.names = 1)
library(dplyr) 
top5 <- sce.markers %>% group_by(cluster) %>% top_n(5, avg_log2FC)
#為了防止數(shù)據(jù)量太大不好出圖,這里在每個(gè)亞群提取出來100個(gè)
DoHeatmap(subset(sce.all,downsample=100),top5$gene,size=3)+scale_fill_gradientn(colors=c("#94C4E1","white","red"))

使用DotPlot函數(shù)繪制氣泡圖:

top5_dotplot <- DotPlot(sce.all, features = top5$gene)+
  theme(axis.text.x = element_text(angle = 90, vjust = 1, hjust = 1))
top5_dotplot

結(jié)語

本期,我們使用了DimPlot、FeaturePlot、DoHeatmap、DotPlot等多種函數(shù)對細(xì)胞群和基因進(jìn)行了可視化。下一期,我們將在此基礎(chǔ)上,繪制餅圖、堆積柱狀圖、箱線圖、氣泡圖等,比較不同分組之間細(xì)胞比例差異。干貨滿滿,歡迎大家持續(xù)追更,謝謝!

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章