单细胞内置数据处理和分析

单细胞内置数据处理和分析

今天小果想学习分享一下单细胞内置数据的处理和分析过程,提高大家对公共数据的利用效率,有需要的可以学习掌握一下奥,代码如下:

  1. 安装需要的R包

install.packages(“BiocManager”)

BiocManager::install(“Seurat”)

devtools::install_github(‘satijalab/seurat-data’,force = TRUE)

install.packages(“patchwork”)

  1. 导入需要的R包

library(Seurat)

library(SeuratData)

Library(patchwork)

  1. 代码展示

InstallData(“ifnb”)

LoadData(“ifnb”)

# ifnb数据集中包含两个样本数据,分别为CTRL和STIM

head(ifnb@meta.data)

table(ifnb@meta.data$stim)

# 数据拆分成两组(STIM和CTRL)

# 使用splitobject将ifnb数据集分割成两个seurat对象的列表(STIM和CTRL)

ifnb.list <- SplitObject(ifnb, split.by = “stim”)

# 对两个数据集单独进行normalize并识别各自的高变异基因

ifnb.list <- lapply(X = ifnb.list, FUN = function(x) {

x <- NormalizeData(x)

x <- FindVariableFeatures(x, selection.method = “vst”, nfeatures = 2000)

})

# 计算两个数据中排完rank后top2000的高变异基因

features <- SelectIntegrationFeatures(object.list = ifnb.list, nfeatures = 2000)

# 使用上述高变异基因在两个基因集中分别执行PCA

ifnb.list <- lapply(X = ifnb.list, FUN = function(x) {

x <- ScaleData(x, features = features, verbose = T)

x <- RunPCA(x, features = features, verbose = T)

})

## 对两个数据集进行整合

# 首先使用findinintegrationanchors函数标识锚点,然后使用IntegrateData函数将两数据集整合在一起

# 可以通过调整k.anchor参数调整两个样本整合的强度,默认为5,数字越大整合强度越强

immune.anchors <- FindIntegrationAnchors(object.list = ifnb.list, anchor.features = features, reduction = “rpca”, k.anchor = 20)

immune<- IntegrateData(anchorset = immune.anchors)

# 常规流程,scale数据,跑PCA,使用前30个PC进行降维跑UMAP,计算Neighbors,分cluster

immune <- ScaleData(immune, verbose = FALSE)

immune <- RunPCA(immune, npcs = 30, verbose = FALSE)

immune <- RunUMAP(immune, reduction = “pca”, dims = 1:30)

immune <- FindNeighbors(immune, reduction = “pca”, dims = 1:30)

immune<- FindClusters(immune, resolution = 0.5)

immune@meta.data

Dingtalk_20230308171341

# 可视化

p <- DimPlot(immune, reduction = “umap”, group.by = “stim”)

p21<- DimPlot(immune, reduction = “umap”, group.by = “seurat_annotations”,label = TRUE,repel = TRUE)

#拼图

pdf(“immune.UMAP.pdf”, height = 5,width = 12)

p+ p1

dev.off()

Dingtalk_20230308171013

最终我们对内置数据集ifnb进行了数据处理,其中处理过程包含了数据集的整合和拆分等过程,并进行了单细胞常规流程分析,该分析所需要的R包本公司服务器已经全部安装,有需要的小伙伴可以联系小果奥,今天小果的分享就到这里。

今天小果想学习分享一下单细胞内置数据的处理和分析过程,提高大家对公共数据的利用效率,有需要的可以学习掌握一下奥,代码如下:

  1. 安装需要的R包

install.packages(“BiocManager”)

BiocManager::install(“Seurat”)

devtools::install_github(‘satijalab/seurat-data’,force = TRUE)

install.packages(“patchwork”)

  1. 导入需要的R包

library(Seurat)

library(SeuratData)

Library(patchwork)

  1. 代码展示

InstallData(“ifnb”)

LoadData(“ifnb”)

# ifnb数据集中包含两个样本数据,分别为CTRL和STIM

head(ifnb@meta.data)

table(ifnb@meta.data$stim)

# 数据拆分成两组(STIM和CTRL)

# 使用splitobject将ifnb数据集分割成两个seurat对象的列表(STIM和CTRL)

ifnb.list <- SplitObject(ifnb, split.by = “stim”)

# 对两个数据集单独进行normalize并识别各自的高变异基因

ifnb.list <- lapply(X = ifnb.list, FUN = function(x) {

x <- NormalizeData(x)

x <- FindVariableFeatures(x, selection.method = “vst”, nfeatures = 2000)

})

# 计算两个数据中排完rank后top2000的高变异基因

features <- SelectIntegrationFeatures(object.list = ifnb.list, nfeatures = 2000)

# 使用上述高变异基因在两个基因集中分别执行PCA

ifnb.list <- lapply(X = ifnb.list, FUN = function(x) {

x <- ScaleData(x, features = features, verbose = T)

x <- RunPCA(x, features = features, verbose = T)

})

## 对两个数据集进行整合

# 首先使用findinintegrationanchors函数标识锚点,然后使用IntegrateData函数将两数据集整合在一起

# 可以通过调整k.anchor参数调整两个样本整合的强度,默认为5,数字越大整合强度越强

immune.anchors <- FindIntegrationAnchors(object.list = ifnb.list, anchor.features = features, reduction = “rpca”, k.anchor = 20)

immune<- IntegrateData(anchorset = immune.anchors)

# 常规流程,scale数据,跑PCA,使用前30个PC进行降维跑UMAP,计算Neighbors,分cluster

immune <- ScaleData(immune, verbose = FALSE)

immune <- RunPCA(immune, npcs = 30, verbose = FALSE)

immune <- RunUMAP(immune, reduction = “pca”, dims = 1:30)

immune <- FindNeighbors(immune, reduction = “pca”, dims = 1:30)

immune<- FindClusters(immune, resolution = 0.5)

immune@meta.data

# 可视化

p <- DimPlot(immune, reduction = “umap”, group.by = “stim”)

p21<- DimPlot(immune, reduction = “umap”, group.by = “seurat_annotations”,label = TRUE,repel = TRUE)

#拼图

pdf(“immune.UMAP.pdf”, height = 5,width = 12)

p+ p1

dev.off()

最终我们对内置数据集ifnb进行了数据处理,其中处理过程包含了数据集的整合和拆分等过程,并进行了单细胞常规流程分析,该分析所需要的R包本公司服务器已经全部安装,有需要的小伙伴可以联系小果奥,今天小果的分享就到这里。