利用Seurat进行单细胞数据预处理
引入相关包
library(Seurat) ##version 4.0
library(dplyr)
从CSV文件读取scRNA-seq数据
>counts <- read.csv(file="file/path/data.csv",header = TRUE) #行为基因,列为细胞;自动将第一行细胞名作为列名;数据类型为data.frame
>rownames(counts) <- counts[,1] #将第一列基因名作为行名
>counts <- counts[,-1] #删除第一列
>dim(counts) #输出scRNA-seq维度
从data.frame数据创建Seurat对象
# 创建Seurat对象
> mydata <- CreateSeuratObject(counts = counts, project = "PBMC") # counts为原始数据,project为Seurat对象的项目名称
# 查看数据基本信息
> mydata.data[c("CD3D", "TCL1A", "MS4A1"), 1:30] #查看这3列的前30行数据
# 查看PBMC项目前5个变量的数据质控
> head(mydata@meta.data, 5)
orig.ident nCount_RNA nFeature_RNA
CGTCAAGAGGGACA PBMC 722 363
CTCTAATGGAGGAC PBMC 1690 679
AAGCACTGATAAGG PBMC 5953 1422
CGTGAAACAAGGCG PBMC 1366 525
TTTCACGAGGCGAA PBMC 927 463
# nFeature_RNA代表每个细胞测到的基因数目。
# nCount_RNA代表每个细胞测到所有基因的表达量之和。
#使用小提琴图可视化QC指标
plot <- VlnPlot(mydata, features = c("nFeature_RNA", "nCount_RNA"), ncol = 2)
#nCount_RNA与nFeature_RNA的相关性
plot2 <- FeatureScatter(mydata, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
Seurat数据预处理
数据标准化
# 对原始Reads进行LogNomalize
mydata <- NormalizeData(mydata)
# 标准化的数值存储在mydata[["RNA"]]@data中
筛选高变异基因
# nfeatures 为筛选基因数量
mydata <- FindVariableFeatures(mydata , selection.method = "vst", nfeatures = 2000)
# 查看最高变的10个基因
top10 <- head(VariableFeatures(mydata), 10)
# 画出不带标签或带标签基因点图
plot1 <- VariableFeaturePlot(mydata)
plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)
plot1 + plot2
将变量保存到csv文件
write.csv(top10,"E:/path/example.csv")
参考
Seurat4.0官方文档 https://satijalab.org/seurat/articles/pbmc3k_tutorial.html
https://zhuanlan.zhihu.com/p/359020041