浅谈单细胞分析流程

单细胞分析在现在非常火,今天小果也想带着大家开始学习梳理一下单细胞分析流程,简单熟悉一下单细胞分析所包含的内容,分析内容如下:

  1. 安装单细胞分析R包

install.packages(“BiocManager”)

BiocManager::install(“Seurat”)

library(Seurat)

  1. 单细胞测序文件的读入和Seurat对象构建

#读取数据所在的文件夹-标准的10X文件

pbmc.data <- Read10X(data.dir = “filtered_gene_bc_matrices/hg19/”)

Dingtalk_20230308103719

#创建Seurat文件

pbmc <- CreateSeuratObject(counts = pbmc.data, project = “pbmc3k”, min.cells = 3, min.features = 200)

min.cells表示筛选至少在3个细胞中表达的基因

min.features表示筛选至少有200个基因表达的细胞

  1. 单细胞数据质控(QC)

#先计算线粒体比例

pbmc[[“percent.mt”]] <- PercentageFeatureSet(pbmc, pattern = “^MT-“)

#用小提琴图展示控前指标

VlnPlot(pbmc, features = c(“nFeature_RNA”, “nCount_RNA”, “percent.mt”), ncol = 3,group.by=”orig.ident”,pt.size=0))

Dingtalk_20230308132956

#进行质控(可以根据自己的数据进行过滤)

pbmc<-subset(pbmc,nFeature_RNA>200 &nFeature_RNA<5000 &percent.mt <15)

VlnPlot(pbmc, features = c(“nFeature_RNA”, “nCount_RNA”, “percent.mt”), ncol = 3,group.by=”orig.ident”,pt.size=0)

  1. 单细胞数据标准化及计算高变基因

#数据标准化

pbmc <- NormalizeData(pbmc, normalization.method = “LogNormalize”, scale.factor = 10000)

用log标准化等方式降低其他干扰因素的影响

#计算高变异基因

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

all.genes <- rownames(pbmc)

pbmc <- ScaleData(pbmc, features = all.genes)

  1. 单细胞数据UMAP降维聚类

pbmc <- RunPCA(pbmc, features = VariableFeatures(object = pbmc))

#细胞聚类

pbmc <- FindNeighbors(pbmc, dims = 1:10)

#计算SNN

pbmc <- FindClusters(pbmc, resolution = 0.5)

#UMAP非线性降维分析

pbmc <- RunUMAP(pbmc, dims = 1:10)

#绘制UMAP降维聚类图

DimPlot(pbmc, reduction = “umap”, label=T)+ NoLegend()

Dingtalk_20230308134139

  1. 单细胞数据marker基因鉴定

pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)

signifcant.markers<-pbmc.markers[pbmc.markers$p_val_adj<0.2,]

#保存marker基因数据

write.csv(signifcant.markers,file=”signifcant.markers.csv”)

#marker基因可视化

#可以用自己感兴趣的marker基因进行展示

markers<-c(“LDHB”,“CD3D”,”NOSIP”,”IL7R”)

##UMAP图

FeaturePlot(pbmc,features=markers)

Dingtalk_20230308142154

##点图

DotPlot(pbmc,features=markers)+coord_flip()

Dingtalk_20230308142640

##热图

Dingtalk_20230308143103

  1. 单细胞数据细胞群注释

# 给每个cluster标注细胞类型(一般细胞群的注释通过人工查文献获得的注释结果比较准确)

new.cluster.ids <- c(“T”, “Mono”, “T”, “B”, “T”, “Mono”, “NK”, “DC”, “Platelet”)

names(new.cluster.ids) <- levels(pbmc)

pbmc <- RenameIdents(pbmc, new.cluster.ids)

# 添加细胞类型至meta data

pbmc@meta.data$celltype <- pbmc@active.ident

Dingtalk_20230308144016

哈哈,这就是单细胞数据分析的基本流程,一般单细胞数据分析都需要很大的计算资源奥,通常都会利用高性能服务器来进行数据分析,小果推荐大家使用本公司的服务器,单细胞分析所需要的软件和R包都已安装好,有需要的可以联系小果,本期的分享就到这里。