什么是CytoTRACE
CytoTRACE(使用基因计数和表达的细胞(Cyto)轨迹重建分析)是一种计算方法,可根据单细胞 RNA 测序数据预测细胞的相对分化状态。CytoTRACE 被开发用于在没有任何先验信息的情况下预测 scRNA-seq 数据中的分化状态。详情见官网
CytoTRACE 运行原理和步骤
(1)基因计数:第一步是计算每个细胞中可检测表达的基因数量。这是通过对每个单细胞表达大于零的基因总数求和来完成的。
(2)基因计数特征(GCS):第二步是捕捉表达模式与基因计数相关的基因。这是通过以下步骤完成的:
输入基因表达表被重新调整为每百万转录本 (TPM) 或每百万计数 (CPM)。
将每个单个细胞的转录本总和设置为该细胞中可检测表达的基因总数。这样做是为了将基因表达矩阵转换为相对转录物计数,或细胞裂解物中 mRNA 分子的估计丰度,我们和其他人已经证明这可以改进差异表达基因的检测(Gulati 等人,2020 年;Qiu 等人等,2017)。
生成的表达式矩阵是 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 实现。
本地如何安装和使用
CytoTRACE安装
1、下载R包,下载地址:https://cytotrace.stanford.edu/CytoTRACE_0.3.3.tar.gz,要求 R(版本 >= 4.0.0)。
2、运行命令安装即可。
install.packages("devtools")
devtools::install_local("PATH/TO/DIRECTORY/CytoTRACE_0.3.3.tar.gz")
3、安装 Python 依赖库
pip install scanoramaCT
pip install numpy
运行CytoTRACE
重要函数和数据集:
CytoTRACE: 对自定义 scRNA-seq 数据集进行CytoTRACE 分析的函数
iCytoTRACE:跨多个 scRNA-seq 批次/数据集运行 CytoTRACE 的功能
plotCytoTRACE: 用于生成 CytoTRACE、表型和基因表达的 2D 可视化的函数
自带数据集:两个骨髓分化 scRNA-seq 数据集(marrow_10x_expr和marrow_plate_expr),带有相应的表型标签(marrow_10x_pheno和marrow_plate_pheno)
library(CytoTRACE) #加载包
results <- CytoTRACE(marrow_10x_expr)#使用自带骨髓 10x scRNA-seq 数据集运行 CytoTRACE
# 或者使用“ncores”(默认值 = 1)进行多线程
#或使用“subsamplingsize”(默认值 = 1,000 个单元格)指示子采样大小
#比如:使用 8 个内核和 1,000 个子样本在快速模式下运行以下数据集
results <- CytoTRACE(marrow_10x_expr, ncores = 8, subsamplesize = 1000)
#在多个 scRNA-seq 批次/数据集上运行
datasets <- list(marrow_10x_expr, marrow_plate_expr)
results <- iCytoTRACE(datasets)
#绘制 CytoTRACE 和 iCytoTRACE 结果
#可视化 CytoTRACE 结果
plotCytoTRACE(results, phenotype = marrow_10x_pheno)
#可视化与 CytoTRACE 相关的基因
plotCytoGenes(results, numOfGenes = 10)