scRNAseq_Dataset Merge AMI d5 (CD45+Fibroblast) + AAA Kinetik + Cite-Seq_Dataset AG Gerdes
收藏资源简介:
Integration Skript: library(Seurat)<br> library(tidyverse)<br> library(Matrix) #cite <- readRDS("C:/Users/alex/sciebo/ALL_NGS/scRNAseq/scRNAseq/Merge AAA mit Cite AAA/Cite_seq_v0.41.rds")<br> #CD45 <- readRDS("C:/Users/alex/sciebo/ALL_NGS/scRNAseq/scRNAseq/Schrader/Fertige_Analysen/TS_d5_paper/CD45.rds")<br> AAA <- readRDS("C:/Users/alex/sciebo/AAA_Zhao_v4.rds")<br> cite <- readRDS("C:/Users/alex/sciebo/CITE_Seq_v0.5.rds")<br> all4 <- readRDS("C:/Users/alex/sciebo/ALL_NGS/scRNAseq/scRNAseq/Schrader/Fertige_Analysen/Schrader_All4_Rohanalyse/all4_220228.rds") #fuse lists<br> c <- list(cite, all4, AAA)<br> names(c) <- c("cite", "all4", "AAA") pancreas.list <- c[c("cite", "all4", "AAA")]<br> for (i in 1:length(pancreas.list)) {<br> pancreas.list[[i]] <- SCTransform(pancreas.list[[i]], verbose = FALSE)<br> } pancreas.features <- SelectIntegrationFeatures(object.list = pancreas.list, nfeatures = 3000)<br> #options(future.globals.maxSize= 6091289600)<br> #pancreas.list <- PrepSCTIntegration(object.list = pancreas.list, anchor.features = pancreas.features,<br> #verbose = FALSE) #future.globals.maxsize was to low. changed it to options(future.globals.maxSize= 1091289600)<br> #identify anchors #alternative from tutorial (https://satijalab.org/seurat/articles/integration_introduction.html)<br> #memory.limit(9999999999)<br> features <- SelectIntegrationFeatures(object.list = pancreas.list, nfeatures = 3000)<br> pancreas.list <- PrepSCTIntegration(object.list = pancreas.list, anchor.features = features)<br> pancreas.anchors <- FindIntegrationAnchors(object.list = pancreas.list, normalization.method = "SCT", anchor.features = pancreas.features, verbose = FALSE)<br> pancreas.integrated <- IntegrateData(anchorset = pancreas.anchors, normalization.method = "SCT",<br> verbose = FALSE) setwd("C:/Users/alex/sciebo/ALL_NGS/scRNAseq/scRNAseq/Schrader/Fertige_Analysen/TS_d5_paper") saveRDS(pancreas.integrated, file = "integrated_AAA_Cite_AMI.rds") saveRDS(cd45, file = "integrated_AAA_Cite_CD45.rds") seurat <- pancreas.integrated #seurat <- readRDS("C:/Users/alex/sciebo/ALL_NGS/scRNAseq/scRNAseq/Schrader/Fertige_Analysen/TS_d5_paper/integrated_d5_cite.rds") DefaultAssay(object = seurat) <- "integrated"<br> seurat <- FindVariableFeatures(seurat, selection.method = "vst", nfeatures = 3000)<br> seurat <- ScaleData(seurat, verbose = FALSE)<br> seurat <- RunPCA(seurat, npcs = 30, verbose = FALSE)<br> seurat <- FindNeighbors(seurat, dims = 1:30)<br> seurat <- FindClusters(seurat, resolution = 0.5)<br> seurat <- RunUMAP(seurat, reduction = "pca", dims = 1:30)<br> DimPlot(seurat, reduction = "umap", split.by = "treatment") + NoLegend() <br> DimPlot(seurat, label = T, repel = T) + NoLegend() DefaultAssay(object = seurat) <- "ADT"<br> adt_marker_integrated <- FindAllMarkers(seurat, logfc.threshold = 0.3)<br> write.csv(adt_marker_integrated, file = "adt_marker_all4_integrated.csv") DefaultAssay(object = seurat) <- "RNA"<br> RNA_marker_integrated <- FindAllMarkers(seurat, logfc.threshold = 0.5)<br> write.csv(RNA_marker_integrated, file = "RNA_marker_all4_integrated.csv") DimPlot(seurat, label = T, repel = T, split.by = "tissue") + NoLegend() FeaturePlot(seurat, features = "Cd40", order = T, label = T)<br> FeaturePlot(seurat, features = "Ms.CD40", order = T, label = T) <br> #####<br> #leanup:<br> > seurat@meta.data[["sen_score1"]] <- NULL<br> > seurat@meta.data[["sen_score2"]] <- NULL<br> > seurat@meta.data[["sen_score3"]] <- NULL<br> > seurat@meta.data[["sen_score4"]] <- NULL<br> > seurat@meta.data[["sen_score5"]] <- NULL<br> > seurat@meta.data[["sen_score6"]] <- NULL<br> > seurat@meta.data[["sen_score7"]] <- NULL<br> > seurat@meta.data[["pANN_0.25_0.1_1211"]] <- NULL<br> > seurat@meta.data[["DF.classifications_0.25_0.1_1211"]] <- NULL<br> > seurat@meta.data[["DF.classifications_0.25_0.1_466"]] <- NULL<br> > seurat@assays[["prediction.score.celltype"]] <- NULL<br> > seurat@meta.data[["predicted.celltype"]] <- NULL<br> > seurat@meta.data[["DF.classifications_0.25_0.1_184"]] <- NULL<br> > seurat@meta.data[["DF.classifications_0.25_0.1_953"]] <- NULL<br> > seurat@meta.data[["integrated_snn_res.3"]] <- NULL<br> > seurat@meta.data[["RNA_snn_res.3"]] <- NULL<br> > seurat@meta.data[["SingleR"]] <- NULL<br> > seurat@meta.data[["SingleR_fine"]] <- NULL<br> > seurat@meta.data[["ImmGen"]] <- NULL<br> > seurat@meta.data[["ImmGen_fine"]] <- NULL<br> > seurat@meta.data[["percent.mt"]] <- NULL<br> > seurat@meta.data[["nCount_integrated"]] <- NULL<br> > seurat@meta.data[["nFeature_integrated"]] <- NULL<br> > seurat@meta.data[["S.Score"]] <- NULL<br> > seurat@meta.data[["G2M.Score"]] <- NULL<br> > seurat@meta.data[["Phase"]] <- NULL<br> > seurat@meta.data[["sen_score8"]] <- NULL<br> > seurat@meta.data[["sen_score9"]] <- NULL<br> > seurat@meta.data[["sen_score10"]] <- NULL<br> > seurat@meta.data[["sen_score11"]] <- NULL<br> > seurat@meta.data[["sen_score12"]] <- NULL<br> > seurat@meta.data[["sen_score13"]] <- NULL<br> > seurat@meta.data[["sen_score14"]] <- NULL<br> > seurat@meta.data[["sen_score15"]] <- NULL<br> > seurat@meta.data[["sen_score16"]] <- NULL<br> > seurat@meta.data[["sen_score17"]] <- NULL<br> > seurat@meta.data[["sen_score18"]] <- NULL<br> > seurat@meta.data[["sen_score19"]] <- NULL<br> seurat@meta.data[["pANN_0.25_0.1_184"]] <- NULL<br> seurat@meta.data[["pANN_0.25_0.1_953"]] <- NULL<br> seurat@meta.data[["pANN_0.25_0.1_466"]] <- NULL
# 单细胞多组学整合分析脚本 本脚本为基于Seurat包(Seurat)的单细胞转录组与抗体标签测序(CITE-seq,Cellular Indexing of Transcriptomes and Epitopes by Sequencing)数据整合分析流程,具体步骤如下: ## 一、加载依赖工具包 加载核心分析包:`Seurat`包(Seurat)、`tidyverse`数据处理包与`Matrix`稀疏矩阵包。 r library(Seurat) library(tidyverse) library(Matrix) ## 二、读取原始数据集 # 注:原代码中被注释的CITE-seq数据读取路径为 `C:/Users/alex/sciebo/ALL_NGS/scRNAseq/scRNAseq/Merge AAA mit Cite AAA/Cite_seq_v0.41.rds` # CD45 <- readRDS("C:/Users/alex/sciebo/ALL_NGS/scRNAseq/scRNAseq/Schrader/Fertige_Analysen/TS_d5_paper/CD45.rds") # 读取AAA样本数据集: AAA <- readRDS("C:/Users/alex/sciebo/AAA_Zhao_v4.rds") # 读取CITE-seq实验数据集: cite <- readRDS("C:/Users/alex/sciebo/CITE_Seq_v0.5.rds") # 读取Schrader实验室的原始整合数据集: all4 <- readRDS("C:/Users/alex/sciebo/ALL_NGS/scRNAseq/scRNAseq/Schrader/Fertige_Analysen/Schrader_All4_Rohanalyse/all4_220228.rds") ## 三、构建数据集列表 将三个独立数据集整合为列表并完成命名: r c <- list(cite, all4, AAA) names(c) <- c("cite", "all4", "AAA") pancreas.list <- c[c("cite", "all4", "AAA")] ## 四、单数据集标准化 对每个数据集执行SCT变换标准化(SCTransform),以实现跨数据集的标准化表达量校正: r for (i in 1:length(pancreas.list)) { pancreas.list[[i]] <- SCTransform(pancreas.list[[i]], verbose = FALSE) } ## 五、筛选整合特征基因 筛选3000个高置信度的特征基因,用于后续多数据集整合: r pancreas.features <- SelectIntegrationFeatures(object.list = pancreas.list, nfeatures = 3000) ## 六、注:原代码中被注释的全局内存配置与预处理步骤 # 临时设置全局内存上限以避免内存溢出 # options(future.globals.maxSize= 6091289600) # 执行SCT整合预处理 # pancreas.list <- PrepSCTIntegration(object.list = pancreas.list, anchor.features = pancreas.features, verbose = FALSE) # 注:曾因全局内存不足调整参数为 `options(future.globals.maxSize= 1091289600)` ## 七、寻找整合锚点 参考Seurat官方整合分析教程(https://satijalab.org/seurat/articles/integration_introduction.html)寻找跨数据集的整合锚点,以实现多数据集的精准整合: # 注:原代码中被注释的系统内存限制设置 `memory.limit(9999999999)` r features <- SelectIntegrationFeatures(object.list = pancreas.list, nfeatures = 3000) pancreas.list <- PrepSCTIntegration(object.list = pancreas.list, anchor.features = features) pancreas.anchors <- FindIntegrationAnchors(object.list = pancreas.list, normalization.method = "SCT", anchor.features = pancreas.features, verbose = FALSE) ## 八、执行多数据集整合 基于寻找到的整合锚点完成多数据集的整合: r pancreas.integrated <- IntegrateData(anchorset = pancreas.anchors, normalization.method = "SCT", verbose = FALSE) ## 九、保存整合结果 设置工作目录并将整合后的数据集与CD45相关数据集保存为RDS格式文件: r setwd("C:/Users/alex/sciebo/ALL_NGS/scRNAseq/scRNAseq/Schrader/Fertige_Analysen/TS_d5_paper") saveRDS(pancreas.integrated, file = "integrated_AAA_Cite_AMI.rds") saveRDS(cd45, file = "integrated_AAA_Cite_CD45.rds") ## 十、下游分析与可视化 ### 10.1 初始化Seurat对象与基础分析 初始化Seurat对象并设置默认检测层为整合后的表达矩阵: r seurat <- pancreas.integrated # 注:原代码中被注释的读取已保存整合数据集的步骤 `seurat <- readRDS("C:/Users/alex/sciebo/ALL_NGS/scRNAseq/scRNAseq/Schrader/Fertige_Analysen/TS_d5_paper/integrated_d5_cite.rds")` DefaultAssay(object = seurat) <- "integrated" 依次执行高可变基因筛选、数据标准化、主成分分析(PCA,Principal Component Analysis)、邻域构建、细胞聚类与均匀流形近似与投影(UMAP,Uniform Manifold Approximation and Projection)降维可视化: r seurat <- FindVariableFeatures(seurat, selection.method = "vst", nfeatures = 3000) seurat <- ScaleData(seurat, verbose = FALSE) seurat <- RunPCA(seurat, npcs = 30, verbose = FALSE) seurat <- FindNeighbors(seurat, dims = 1:30) seurat <- FindClusters(seurat, resolution = 0.5) seurat <- RunUMAP(seurat, reduction = "pca", dims = 1:30) ### 10.2 可视化分析结果 绘制按处理因素分组的UMAP图与带簇标签的UMAP图: r DimPlot(seurat, reduction = "umap", split.by = "treatment") + NoLegend() DimPlot(seurat, label = T, repel = T) + NoLegend() ### 10.3 抗体标签层标记基因分析 切换至抗体标签(ADT,Antibody-Derived Tags)检测层,寻找所有细胞簇的标记基因并将结果导出为CSV格式文件: r DefaultAssay(object = seurat) <- "ADT" adt_marker_integrated <- FindAllMarkers(seurat, logfc.threshold = 0.3) write.csv(adt_marker_integrated, file = "adt_marker_all4_integrated.csv") ### 10.4 转录组层标记基因分析 切换至转录组(RNA)检测层,寻找所有细胞簇的标记基因并将结果导出为CSV格式文件: r DefaultAssay(object = seurat) <- "RNA" RNA_marker_integrated <- FindAllMarkers(seurat, logfc.threshold = 0.5) write.csv(RNA_marker_integrated, file = "RNA_marker_all4_integrated.csv") ### 10.5 额外可视化分析 绘制按组织分组的带簇标签UMAP图与特征基因表达可视化图: r DimPlot(seurat, label = T, repel = T, split.by = "tissue") + NoLegend() FeaturePlot(seurat, features = "Cd40", order = T, label = T) FeaturePlot(seurat, features = "Ms.CD40", order = T, label = T) ## 十一、数据清理 移除Seurat对象中冗余的元数据列与检测层,以精简分析对象: ### 11.1 移除冗余元数据列 r # 移除衰老评分相关列 seurat@meta.data[["sen_score1"]] <- NULL seurat@meta.data[["sen_score2"]] <- NULL seurat@meta.data[["sen_score3"]] <- NULL seurat@meta.data[["sen_score4"]] <- NULL seurat@meta.data[["sen_score5"]] <- NULL seurat@meta.data[["sen_score6"]] <- NULL seurat@meta.data[["sen_score7"]] <- NULL # 移除细胞类型分类相关列 seurat@meta.data[["pANN_0.25_0.1_1211"]] <- NULL seurat@meta.data[["DF.classifications_0.25_0.1_1211"]] <- NULL seurat@meta.data[["DF.classifications_0.25_0.1_466"]] <- NULL # 移除细胞周期评分相关元数据 seurat@meta.data[["S.Score"]] <- NULL seurat@meta.data[["G2M.Score"]] <- NULL seurat@meta.data[["Phase"]] <- NULL # 移除质量控制相关元数据 seurat@meta.data[["percent.mt"]] <- NULL seurat@meta.data[["nCount_integrated"]] <- NULL seurat@meta.data[["nFeature_integrated"]] <- NULL # 移除剩余衰老评分相关列 seurat@meta.data[["sen_score8"]] <- NULL seurat@meta.data[["sen_score9"]] <- NULL seurat@meta.data[["sen_score10"]] <- NULL seurat@meta.data[["sen_score11"]] <- NULL seurat@meta.data[["sen_score12"]] <- NULL seurat@meta.data[["sen_score13"]] <- NULL seurat@meta.data[["sen_score14"]] <- NULL seurat@meta.data[["sen_score15"]] <- NULL seurat@meta.data[["sen_score16"]] <- NULL seurat@meta.data[["sen_score17"]] <- NULL seurat@meta.data[["sen_score18"]] <- NULL seurat@meta.data[["sen_score19"]] <- NULL ### 11.2 移除冗余检测层与元数据 r # 移除细胞类型预测相关检测层 seurat@assays[["prediction.score.celltype"]] <- NULL # 移除细胞类型预测相关元数据 seurat@meta.data[["predicted.celltype"]] <- NULL seurat@meta.data[["DF.classifications_0.25_0.1_184"]] <- NULL seurat@meta.data[["DF.classifications_0.25_0.1_953"]] <- NULL seurat@meta.data[["pANN_0.25_0.1_184"]] <- NULL seurat@meta.data[["pANN_0.25_0.1_953"]] <- NULL seurat@meta.data[["pANN_0.25_0.1_466"]] <- NULL # 移除聚类分辨率相关列 seurat@meta.data[["integrated_snn_res.3"]] <- NULL seurat@meta.data[["RNA_snn_res.3"]] <- NULL # 移除注释相关元数据 seurat@meta.data[["SingleR"]] <- NULL seurat@meta.data[["SingleR_fine"]] <- NULL seurat@meta.data[["ImmGen"]] <- NULL seurat@meta.data[["ImmGen_fine"]] <- NULL



