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

#生成随机颜色

> randomColor <- function() {

paste0("#",paste0(sample(c(0:9, letters1: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")

添加聚类信息

> coordscluster \<- seurat@meta.dataType

绘制 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)

添加聚类信息

> coordscluster \<- seurat@meta.dataType

绘制 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")

学习交流

相关推荐
Omics Pro8 小时前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
2401_868534789 小时前
【无标题】
数据结构·r语言
asyxchenchong8883 天前
R+VIC 模型融合实践技术应用及未来气候变化模型预测
开发语言·r语言
生信大杂烩4 天前
从 Seurat 到 AnnData:用 anndataR 打通 R 与 Python 单细胞数据生态
python·算法·数据分析·r语言
Sylvia-girl4 天前
R语言基本语法
开发语言·r语言
赵钰老师5 天前
R语言与作物模型(以DSSAT模型为例)融合应用
开发语言·数据分析·r语言
hef2888 天前
R包grafify:简单操作实现高效统计绘图
开发语言·python·r语言
oo哦哦8 天前
矩阵系统的流行病学密码:用SIR传染模型和基本再生数R₀,解释为什么你的100条种草内容,传播力还不如别人1条
线性代数·矩阵·r语言
Omics Pro9 天前
免费!糖蛋白质组学数据分析
开发语言·深度学习·数据挖掘·数据分析·r语言·excel·知识图谱
山居秋暝LS9 天前
【无标题】RTX00安装paddle OCR,win11不能装最新的,也不能用GPU
开发语言·r语言