2022-01-17 多个样本单细胞分析流程 - 简书 (jianshu.com)
一、人工注释
人工注释需要借助文献检索marker或者结合常用的注释数据库,例如两个常用的数据库:
CellMarker(http://bio-bigdata.hrbmu.edu.cn/CellMarker/);
panglaoDB(A Single Cell Sequencing Resource ForGene Expression Data,https://panglaodb.se/)。
手动注释的话,用小提琴图、热图展示
1、计算每一类细胞中的Marker基因
all.markers <- FindALLMarkers(esperiment.aggregate, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
head(markers)
dim(all.markers)
2、计算特定亚群之间的marker基因
cluster1.markers <- FindMarkers(experiment.aggregate, ident.1 = 1, min.pct = 0.25)
head(x = cluster1.markers, n = 5)
FeaturePlot(experiment.aggregate, features = rownames(cluster1.markers)[1:6])
3、细筛
序号3在自己的亚群中至少50%的细胞表达,也可以PCT2<0.5;4.5按情况选择要不要做
4、计算特定两组细胞之间的差异基因,决定要不要把两个亚群合并
计算特定两组细胞之间的差异基因
sub.markers <- FindMarkers(experiment.aggregate, ident.1 = "0", ident.2 = "3")
View(sub.markers)
发现0和3差异大的都是线粒体基因,说明本身差异不大,那就可以合并
再看看0,3和1的差异
sub.markers <- FindMarkers(experiment.aggregate, ident.1 =( "0","3"), ident.2 = "1")
View(sub.markers)
如果这些差异是有意义的,那么1可以不合并
new.cluster.ids <- c("Memory CD4+", "Naive CD4+ T", "...")
names(new,cluster,ids) <- levels(pbmc)
pbmc <- RenameIdents(pbmc, new,cluster,ids) #修改Idents
pbmc$celltype <- Idents(pbmc) #在metadata中,添加Celltype信息
二、SingleR
使用内置参考进行注释(最简便的)
使用SingleR的最简单方法是使用内置参考对细胞进行注释。通过专用的检索功能提供了7个参考数据集(主要来自大量RNA-seq或微阵列数据)。
singleR自带的7个参考数据集,需要联网才能下载,其中5个是人类数据,2个是小鼠的数据:
BlueprintEncodeData Blueprint (Martens and Stunnenberg 2013) and Encode (The ENCODE Project Consortium 2012) (人)
DatabaseImmuneCellExpressionData The Database for Immune Cell Expression(/eQTLs/Epigenomics)(Schmiedel et al. 2018)(人)
HumanPrimaryCellAtlasData the Human Primary Cell Atlas (Mabbott et al. 2013)(人)
MonacoImmuneData, Monaco Immune Cell Data - GSE107011 (Monaco et al. 2019)(人)
NovershternHematopoieticData Novershtern Hematopoietic Cell Data - GSE24759(人)
ImmGenData the murine ImmGen (Heng et al. 2008) (鼠)
MouseRNAseqData a collection of mouse data sets downloaded from GEO (Benayoun et al. 2019).鼠)
SingleR包的工具包括:
SingleR()函数,用于注释
plotScoreHeatmap()使用热图比较label score
pruneScores() 对低质量的注释进行“修剪”(即注释为NA)
plotScoreDistribution()观察修剪是否合适,默认为偏离中值3个MAD(评价数据离散程度的统计学指标)
操作步骤:
1、SingleR的安装
# 使用devtools包进行安装
devtools::install_github('dviraran/SingleR') # this might take long, though mostly because of the installation of Seurat.
# 安装celldex
if(!require("BiocManager",quietly=TRUE)) install.packages("BiocManager") BiocManager::install("celldex")
或者
if(!require("BiocManager",quietly=TRUE)) install.packages("BiocManager")
BiocManager::install("SingleR")
install.packages("remotes")
remotes :: install_github("LTLA/celldex")
SingleR这个包本身并不会自带数据库,而是专门的把数据库文件丢给了celldex包。所以还需要安装celldex包
2、加载R包和所需的数据集
library(SingleR)
library(celldex)
mouseRNA <- MouseRNAseqData() #小鼠数据集为例
3、读取上一节保存的RDS文件,并将seurat对象转换为SingleR分析所需的SingleCellExpriment对象。
sce_for_SingleR <- GetAssayData(seurat_tutorial, slot="data")
clusters=seurat_tutorial@meta.data$seurat_clusters
4、注释细胞
pred.mouseRNA <- SingleR(test=sce_for_SingleR, ref = mouseRNA, labels = mouseRNA$label.main, method = "clusters", clusters = clusters, assay.type.test = "logcounts", assay.type.ref ="logcounts")
注释时labels一般选择main labels, 大的细胞类型相对准确度要高一些。
5、提取并保存注释信息
cellType = data.frame(ClusterID=levels(seurat_tutoria@meta.data$seurat_clusters), celltype = pred.mouseRNA$labels)
6、将细胞注释信息添加到seurat对象中
seurat_tutoria@meta.data$singleR = cellType[match(clusters, cellType$ClusterID), 'celltype']
三、基于已发表的文献
除了参考细胞注释数据库外,也可以从已发表的单细胞文章中查找marker基因,一般通过PubMed或者GeenMedical等数据库网站来进行文献的查找和检索。
1)首先明确样本的物种和组织类型信息,比如研究的是人肝内胆管癌,可在PubMed搜索框中输入“Single-cell transcriptomic intrahepatic cholangiocarcinoma”关键词进行搜索,左边也可以通过拖动时间条来选择文章的发表时间,选择排名比较靠前的文章,比如这里选择第一篇文章《Single-cell transcriptomic architecture and intercellular crosstalk of human intrahepatic cholangiocarcinoma》进行下载查看。
2)单细胞文献中首先会针对研究样本绘制单细胞图谱,通过文献中的单细胞图谱可以看到该研究检测到的细胞类型,以及定义这些细胞类型所用的maker基因,通常会利用热图、小提琴图、气泡图、t-SNE/UMAP聚类分布图等对marker基因进行可视化展示。例如在这篇文章中通过已知的marker基因及CNV分析共注释到了10种细胞类型,分别为:B cells、Cholangiocytes、Dendritic cells、Endothelial cells、Fibroblasts、Hepatocytes、Macrophages、Malignant cells、NK cells、T cells,同时也对各细胞类型的marker基因进行了可视化展示,如果您研究的物种和组织类型信息和该文献一致,就可以参考该文献中的marker基因来进行细胞注释。
#### 除可视化图片注释外,还可以基于表格注释
细胞注释需要对细胞聚类结果中的每个cluster依次进行,以百迈客结题报告结果文件夹中的cluster0为例,进行该cluster的细胞类型注释:
1)首先依照路径biomarker_Web_Report\BMK_3_seurat_analysis\BMK_3_Integrated\BMK_4_MarkerGene\BMK_1_Statistics,找到All.cluster0.diff_featuregene这个表格;
2)然后基于数据库/文献查找到的已知marker基因列表,在All.cluster0.diff_featuregene表中对已有marker基因进行检索,将能够检索到的marker基因在cluster0中的log2FC值、pct.1值、pct.2值进行记录(log2FC代表对应基因在cluster0中的差异表达水平,pct.1值代表cluster0中表达该基因的细胞比例,pct.2值代表除cluster0外其他cluster表达该基因的细胞比例);3)将所有marker基因全部比对结束后,对比各个细胞类型的marker基因的log2FC值,pct.1和pct.2,该细胞类型表达的marker基因越多、log2FC值越大、pct.1值越大、pct.2值越小,证明cluster0注释为该细胞类型的可能性越大;如下图所示,基于列表中高表达的基因和T细胞的marker基因基本吻合,故将cluster0注释成T细胞;