传统方法如谱系追踪和功能移植实验在研究细胞分化层次方面(尤其在人类组织中)具有局限性,而单细胞RNA测序(scRNA-seq)虽然是一种用于重建细胞分化轨迹的强大方法,但在推断细胞分化状态和方向上还具有挑战性。在如下这篇文章中,作者提出了一个名为CytoTRACE的方法来预测细胞分化状态。
文献名:Single-cell transcriptional diversity is a hallmark of developmental potential
期刊:Science
IF:44.7
发表日期:2020-01-24
CytoTRACE是一种使用基因计数和表达的细胞(Cyto)轨迹重建分析的计算方法,通过细胞表达基因数量来推断细胞分化状态。CytoTRACE 被开发用于在没有任何先验信息的情况下预测 scRNA-seq 数据中的分化状态。
1.无监督学习:不需要先验知识或中间细胞状态标记即可推断细胞分化轨迹。
2.广泛适用性:在多种组织和物种中表现出色,能够处理不同平台和技术生成的数据。
3.高精度:在多个数据集上验证,CytoTRACE的性能优于其他RNA特征和方法。
4.识别静止干细胞:能够区分具有长期再生潜力的静止(非循环)成人干细胞和更特化的细胞。
5.应用广泛:不仅适用于正常组织,还可用于研究癌症等疾病中的细胞分化层次。
目前预测细胞分化轨迹的常用软件有monocle和RNA速率分析,但是:
1.monocle需要人为二次判断起点;
2.RNA速率分析分析速度比较慢,需要额外生成loom文件,因此本软件cytotrace可以作为备用软件进行细胞分化分析。
cytotrace相较于这两款软件的优点如下:
1.分析速度快(3k多的细胞大概1分钟就能分析完)
2.可以直接判断起点(0:分化程度更高;1:分化程度较低)
同时,cytotrace需要输入坐标文件进行分析,因此不仅可以实现在tsne/umap聚类图上绘制cytotrace结果值,也可以基于拟时序分化轨迹图绘制该结果,从而实现monocle和cytotrace的联合分析,效果如下:
接下来,我们来看下CytoTRACE 的运行原理
1.基因计数:第一步是计算每个细胞中可检测表达的基因数量。这是通过对每个单细胞表达大于零的基因总数求和来完成的。
2.基因计数特征(GCS):第二步是捕捉表达模式与基因计数相关的基因。这是通过以下步骤完成的:
输入基因表达表被重新调整为每百万转录本 (TPM) 或每百万计数 (CPM)。
将每个单个细胞的转录本总和设置为该细胞中可检测表达的基因总数。这样做是为了将基因表达矩阵转换为相对转录物计数,或细胞裂解物中 mRNA 分子的估计丰度,我们和其他人已经证明这可以改进差异表达基因的检测。
生成的表达式矩阵是 log 2归一化的,伪计数为 1。
为了测量每个基因与基因计数的关系,计算每个基因的标准化表达和基因计数之间的 Pearson 相关性。
与基因计数最正相关的前 200 个基因的几何平均表达是基因计数特征 (GCS)。
3.CytoTRACE:最后一步是通过利用细胞之间的局部相似性并应用两步平滑程序来迭代改进我们对 GCS 向量的估计:
创建我们的最近邻图,我们将归一化的表达矩阵转换为马尔可夫过程,以捕捉单元格之间的局部相似性。
使用这个马尔可夫矩阵,然后我们将非负最小二乘回归 (NNLS) 应用到 GCS。这使我们能够将 GCS 表示为马尔可夫矩阵中捕获的不同转录邻域的函数。
应用扩散过程,根据马尔可夫过程的概率结构迭代调整 GCS。注意:这不是 GCS,而是经过 NNLS 调整的 GCS。
结果值在 0 和 1 之间进行排序和缩放,代表细胞的相对分化状态的预测顺序(0,分化程度更高;1,分化程度较低
根据自身的情况,我们可以选择指令化或者界面化的方式来进行CytoTRACE分析:运行 CytoTRACE 所需的只是一个由单细胞 RNA 测序生成的基因表达矩阵,其中列是细胞,行是基因/转录本。CytoTRACE网站(https://cytotrace.stanford.edu/)可以在线分析,要求此文件是大小小于 2.5 GB 且细胞数 < 15,000 个的文本 (txt)、制表符分隔值 (tsv) 或逗号分隔值 (csv) 文件。对于大于 2.5 GB 或细胞数大于 15,000 个的数据集,则需使用 R 包或 Docker 实现。
方式一:运行R代码
撰写一个R脚本,并运行:
library(CytoTRACE)
library(Seurat)
load("rData路径")
# 导入细胞注释文件
cell_annot<-read.table("cluster_annot.txt",header=F,sep="\t",quote="",check.names=F,stringsAsFactors =F)
colnames(cell_annot)<-c("cluster","cells")
if(!("seurat_clusters" %in% colnames(pbmc_filt@meta.data))){
pbmc_filt[["seurat_clusters"]]=pbmc_filt@meta.data$res.0.8
}else{
print(head(pbmc_filt@meta.data))
}
cell.types <- vector("logical",length=ncol(pbmc_filt))
for (i in 0:(length(levels(pbmc_filt@active.ident))-1)){
cells<-as.vector(cell_annot$cells[which(cell_annot$cluster==i,arr.ind = TRUE)])
cell.types[pbmc_filt@meta.data$seurat_clusters==i]<-cells
}
pbmc_filt[["celltype"]] <- cell.types
pbmc_filt_sub <- pbmc_filt
Idents(pbmc_filt_sub) <- "celltype"
expr <- as.data.frame(pbmc_filt_sub@assays$RNA@counts)
pheno <- as.character(Idents(pbmc_filt_sub))
names(pheno) <- names(Idents(pbmc_filt_sub))
# 获得tsne/umap坐标文件(可以更换为拟时序坐标)
emb <- as.data.frame(pbmc_filt_sub@reductions$tsne@cell.embeddings)
results <- CytoTRACE(expr, ncores = 8)
plotCytoTRACE(results, phenotype = pheno,emb=emb)
#可视化与 CytoTRACE 相关的基因
plotCytoGenes(results, numOfGenes = 10)
方式二:网页运行
进入CytoTRACE网站(https://cytotrace.stanford.edu/)
官方准备了针对三种不同分析需求的教程,在此不赘述:
得到的结果值在 0 和 1 之间进行排序和缩放,代表细胞的相对分化状态的预测顺序(0:分化程度更高;1:分化程度较低),分化程度较低的细胞类型为起点细胞。同时将每一行基因 (每个基因在不同细胞中的表达量向量) 与 cytotrace结果值进行相关性计算,得到跟cytotrace结果(细胞分化状态)相关性较高的基因。
1)展示CytoTRACE和表型的t-SNE图:
2)如果每个单细胞都有表型标签,可以使用箱线图来总结每个表型的CytoTRACE值的中位数和分布:
3)预测基因与CytoTRACE的相关性:
Gulati GS, Sikandar SS, Wesche DJ, Manjunath A, Bharadwaj A, Berger MJ, Ilagan F, Kuo AH, Hsieh RW, Cai S, Zabala M, Scheeren FA, Lobo NA, Qian D, Yu FB, Dirbas FM, Clarke MF, Newman AM. Single-cell transcriptional diversity is a hallmark of developmental potential. Science. 2020 Jan 24;367(6476):405-411. doi: 10.1126/science.aax0249. PMID: 31974247; PMCID: PMC7694873.
ROC分析介绍|生信开发实战
如果使用find_circ来鉴定circRNA|生信开发实战
单细胞免疫组TCR/BCR多样本使用cellranger aggr整合分析|生信开发实战
解析细胞功能基因集变异——遇见GSVA|生信开发实战
本文系联川生物公众号原创文章,未经授权禁止转载,侵权必究! 扫描下方二维码 点分享
点点赞
点在看