R语言:单细胞pcoa降维和去批次

#生成随机颜色
> randomColor <- function() {
  paste0("#",paste0(sample(c(0:9, letters[1:6]), 6, replace = TRUE),collapse = ""))
}

# 生成100个随机颜色
> randomColors <- replicate(100,randomColor())
> seurat=readRDS("seurat.rds")#读取数据
#归一化
> all.genes <- rownames(seurat)
> seurat <- ScaleData(seurat, features = all.genes)

# PCA降维
> seurat <- Seurat::RunPCA(seurat, features = VariableFeatures(object = seurat))
> seurat <- Seurat::RunTSNE(seurat,dims = 1:20)
> pdf(file = "降维tsne图.pdf",width =7.5,height = 5.5)
> DimPlot(seurat, reduction = "tsne",pt.size = 0.5)+theme_classic()+theme(panel.border = element_rect(fill=NA,color="black", size=0.5, linetype="solid"),legend.position = "right") #top为图列位置最上方,除此之外还有right、left、bottom(意思同英文)
> dev.off()


> pdf(file = "降维pca图.pdf",width =7.5,height = 5.5)
> DimPlot(seurat, reduction = "pca",pt.size = 0.5)+theme_classic()+theme(panel.border =  element_rect(fill=NA,color="black", size=0.5, linetype="solid"),legend.position = "right")
> dev.off()

> colaa=distinctColorPalette(100)
> pdf(file = "降维tsne单样品分布图.pdf",width =12,height = 10)

> coords <- as.data.frame(seurat@reductions$tsne@cell.embeddings[, c(1, 2)])
> names(coords) <- c("tSNE_1", "tSNE_2")

# 添加聚类信息
> coords$cluster <- seurat@meta.data$Type

# 绘制 t-SNE 图
> ggplot(coords, aes(x = tSNE_1, y = tSNE_2, color = cluster)) +
  geom_point(size = 0.5) +
  ggtitle("This is the plot title") +
  theme(legend.position = "bottom")

> dev.off()

#harmony 去批次
> seurat <- RunHarmony(seurat, group.by.vars = "Type")

## 鉴定高变基因(由于去除了存在批次的细胞,高变基因可能会发生改变,因此需要重新鉴定高变基因)
> seurat <- FindVariableFeatures(seurat, selection.method = "vst", nfeatures = 2000)

# 提取前10的高变基因
> top10 <- head(VariableFeatures(seurat), 10)

# 展示高变基因
> plot1 <- VariableFeaturePlot(seurat)
> plot1

> plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)

> pdf(file = "去批次后鉴定高变基因.pdf",width =7,height = 6)
> plot2                  
> dev.off()

#降维可视化
> pdf(file = "harmony去批次pca图.pdf",width =7.5,height = 5.5)
> DimPlot(seurat, reduction = "harmony",pt.size = 0.5)+theme_classic()+theme(panel.border = element_rect(fill=NA,color="black", size=0.5, linetype="solid"),legend.position = "right")
> dev.off()

> seurat <- Seurat::RunTSNE(seurat,dims = 1:20,reduction ='harmony')
> pdf(file = "去批次后tsne图.pdf",width =7.5,height = 5.5)
> DimPlot(seurat, reduction = "tsne",pt.size = 0.5)+theme_classic()+theme(panel.border = element_rect(fill=NA,color="black", size=0.5, linetype="solid"),legend.position = "right")
> dev.off()

> pdf(file = "去批次后tsne单样本分布图.pdf",width =12,height = 7.5)

# 添加聚类信息
> coords$cluster <- seurat@meta.data$Type

# 绘制 t-SNE 图
> ggplot(coords, aes(x = tSNE_1, y = tSNE_2, color = cluster)) +
  geom_point(size = 0.5) +
  ggtitle("This is the plot title") +
  theme(legend.position = "bottom")

> dev.off()

#绘制去批次后tsne单样本分布图

> ggplot(coords, aes(x = tSNE_1, y = tSNE_2, color = cluster)) +
  geom_point(size = 0.5) +
  ggtitle("This is the plot title") +
  theme(legend.position = "bottom")

学习交流

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值