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)
mydeg
3. 通过循环自动计算差异基因
for(i in 1:length(cellfordeg)){
celldeg <- FindMarkers(pbmc,ident.1=paste0(cellfordeg[i],'_P3'),ident.2=paste0(cellfordeg[i],'_AS1'))
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