全网最详细单细胞保姆级教程(四) --- 细胞间差异分析及可视化

1. 数据,包的准备

library(Seurat)
library(dplyr)
pbmc <- readRDS('pbmcrenamed.rds')
DimPlot(pbmc,label = T)

请添加图片描述

DimPlot(pbmc,split.by = 'group')

请添加图片描述

2. 差异分析

pbmc$celltype.group <- paste(pbmc$celltype,pbmc$group,sep = '_')
pbmc$celltype <- Idents(pbmc)
Idents(pbmc) <- 'celltype.group'
mydeg <- FindMarkers(pbmc,ident.1 = 'VSMC_AS1',ident.2 = 'VSMC_C57',verbose = F,test.use='wilcox',min.pct=0.1)
# test.use = 'wilcox':这个参数指定了使用 Wilcoxon 秩和检验来识别差异表达基因
# min.pct = 0.1 指定了在至少一组细胞中表达的基因最小百分比
mydeg

请添加图片描述

3. 通过循环自动计算差异基因

# 通过循环自动计算差异基因
for(i in 1:length(cellfordeg)){
  celldeg <-    FindMarkers(pbmc,ident.1=paste0(cellfordeg[i],'_P3'),ident.2=paste0(cellfordeg[i],'_AS1'))
  # write.csv(CELLDEG,paste0(cellfordeg[i],".CSV"))
    top10 <- celldeg %>% top_n(n=10,wt=avg_log2FC) %>% rownames()
}

4. 数据缩放

pbmc <- ScaleData(pbmc,features = rownames(pbmc))

5. 可视化

5.1 热图
DoHeatmap(pbmc,features = top10,size = 2.7)

请添加图片描述

5.2 小提琴图
Idents(pbmc) <- 'celltype'
VlnPlot(pbmc,split.by = 'group',idents = 'EC',features = top10)

请添加图片描述

5.3 特征图
top2 <- celldeg %>% top_n(n=2,wt=avg_log2FC) %>% rownames()
FeaturePlot(pbmc,features = top2,split.by = 'group')

请添加图片描述

5.4 点图
DotPlot(pbmc,features = top10,split.by = 'group',cols = c('blue','yellow','pink'))

请添加图片描述

5.5 箱线图
5.5.1 第一种
# 提取表达量
# 第一种方式
mymatrix <- as.data.frame(pbmc@assays$RNA$data)
mymatrix2 <- t(mymatrix) %>% as.data.frame()
mymatrix2[,1] <- pbmc$celltype

colnames(mymatrix2)[1] <- "celltype"
mymatrix2[,ncol(mymatrix2)+1] <- pbmc$group
colnames(mymatrix2)[ncol(mymatrix2)] <- 'group'

library(ggplot2)
p7 <- ggplot2::ggplot(mymatrix2,aes(x=celltype,y=Thbs1,fill=group))+
geom_boxplot(alpha=0.7)+ # 添加箱线图层,并设置透明度
scale_y_continuous('Expression')+
scale_x_discrete('celltype')+
scale_fill_manual(values = c('DeepSkyBlue','Orange','pink'))
5.5.2 第二种
Idents(pbmc) <- colnames(pbmc)
mymatrix <- log1p(AverageExpression(pbmc, verbose = FALSE)$RNA)
mymatrix2<-t(mymatrix)%>%as.data.frame()
mymatrix2[,1]<-pbmc$celltype
colnames(mymatrix2)[1] <- "celltype"

mymatrix2[,ncol(mymatrix2)+1]<-pbmc$group
colnames(mymatrix2)[ncol(mymatrix2)] <- "group"

library(ggplot2)
p8 <- ggplot2::ggplot(mymatrix2,aes(x=celltype,y=Thbs1,fill=group))+
geom_boxplot(alpha=0.7)+
scale_y_continuous(name = "Expression")+
scale_x_discrete(name="Celltype")+
scale_fill_manual(values = c('DeepSkyBlue','Orange','pink'))
p8

library(patchwork)
p7|p8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莘薪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值