• 🍅:我负责提出问题
  • 🥕:我负责普及基础知识
  • 🥦:Seadon负责回答解决问题
  • 🍆:老胡zy负责具体介绍

🍅 🍅 🍅 🍅 🍅 🍅 🍅 🍅 🍅 🍅
🍅:我发现一个现象,细胞轨迹推断算法/软件有那么多,CytoTRACE算是一个比较早期的算法,似乎最近发表的几篇文章(例如Nature这篇)又都使用了CytoTRACE,是什么原因?

<https://doi.org/10.1038/s41586-024-07113-9>

🥦:所有细胞伪时序轨迹推断算法都不是使用和不使用的关系,而是合适不合适自己数据特点的关系。轨迹分析重要的是选择最符合先验知识和实验设计的方法,在此基础上发现新的现象。CytoTRACE一直在被使用是因为他能相对稳定的推断细胞状态起点和层次关系。
🥕 🥕 🥕 🥕 🥕 🥕 🥕 🥕 🥕 🥕
🥕:伪时间(Pseudotime)概念的提出
    细胞随着生长发育和疾病进程转录组发生动态变化,伪时间(pseudotime)概念的提出是以细胞的分化来描绘时间轴,具有高分化潜能的细胞拥有更初始的时间,分化程度高的细胞时间更靠后。假定样本中包含了位于不同疾病进程的细胞,则它们对应了时间轴中的不同时间,因为样本中的细胞实际上是在同一个时间点获得的,因此这个时间被称为拟时间。
🍆 🍆 🍆  🍆  🍆  🍆  🍆  🍆  🍆  🍆 
🍆01-CytoTRACE概述
    CytoTRACE(使用基因计数和表达的细胞轨迹重建分析)是一种利用单细胞RNA测序数据预测细胞分化状态的计算方法。CytoTRACE利用了一个简单而强大的发育潜力决定因素——每个细胞中可检测到的表达基因的数量,或基因计数。已经在315个细胞表型、52个谱系、14个组织类型、9个scRNA-seq平台和5个物种的约150K个单细胞转录组上验证了CytoTRACE。
🍆:02-CytoTRACE网站的功能
  • 分析使用CytoTRACE预先计算的42个公开可用的带注释的scRNA-seq数据集

  • 在自定义scRNA-seq数据集中预测分化状态

  • 预测来自不同平台和发展阶段的多个批次/数据集的分化状态

  • 使用交互式3D图形(包括t-SNE、力定向布局和UMAP)可视化预测分化

  • 总结已知表型的结果

  • 鉴定预测的干性和分化相关基因

CytoTRACE提供了在线网页和本地R包分析两个版本,在线分析网址:https://cytotrace.stanford.edu/。

具体操作如下:在线分析工具提供了两种mode,包括单个数据和整合多个数据,直接本地上传表达矩阵文件,RunCytTRACE即可,注意输入表达矩阵不能为mean标准化或者出现负值,可以为TPM格式等,并且没有经过过滤。里面还有一些计算好的数据集,可以直接查看。

🍆:03-CytoTRACE R包的分析流程

1) 安装CytoTRACE

# 在网站上下载CytoTRACE R安装包,直接用devtools在本地安装:install.packages("devtools")devtools::install_local("PATH/TO/DIRECTORY/CytoTRACE_0.3.3.tar.gz")
# 如果要用iCytoTRACE()进行多数据集整合分析,还需要安装scanoramaCT和numpy两个Python包:# pip install scanoramaCT# pip install numpy

2)运行CytoTRACE

我在CytoTRACE网站上下载了一个小鼠的Bone marrow (Smart-seq2)表达矩阵文件以及对应的metadata文件来作为演示!

  • Bone_marrow_smartseq2_matrix.txt

  • Bone_marrow_smartseq2_metadata.txt 

# 输入文件导入:library(CytoTRACE)counts <- read.table("Bone_marrow_smartseq2_matrix.txt", header = TRUE, row.names = 1)counts_M <- as.matrix(counts)phe1 <- read.table("Bone_marrow_smartseq2_metadata.txt", header = TRUE)phe <- phe1$Phenotypephe <- as.character(phe)names(phe) <- rownames(phe1)
# 运行CytoTRACE:results <- CytoTRACE(counts_M)
# 如果数据很大,可以采用多节点运行,比如8节点:# results <- CytoTRACE(counts_M, ncores = 8)

3CytoTRACE可视化

# 可视化与CytoTRACE相关的基因:plotCytoGenes(results, numOfGenes = 20, outputDir = "Bone_marrow")

# 可视化CytoTRACE结果:plotCytoTRACE(results, phenotype = phe,gene = "Cd34", outputDir = "Bone_marrow")

CytoTRACE默认展示自己聚类的UMAP图,如果想要展示原始UMAP图,可以通过plotCytoTRACE中的emb参数修改,直接从自己的seurat对象seurat_object里提取,如下:

# 这里由于phe1中存有cell.embeddings信息,直接从中提取即可:emb1 <- phe1[,3:4]
# 如果是自己的Seurat对象需要这样提取# emb1 <- as.data.frame(seurat_object@reductions$umap@cell.embeddings)
plotCytoTRACE(results, phenotype = phe,gene = "Cd34", emb = emb1, outputDir = "Bone_marrow_raw")

🍆:04-CytoTRACE总结

    CytoTRACE得分越高,表示未分化能力越强,其实也可以理解为增殖能力越强,所以后面如果用CytoTRACE分析包含细胞周期的亚群的单细胞数据时会发现往往细胞周期亚群的CytoTRACE得分最高。

    此外,在做轨迹分析时由于Monocle2不能确定轨迹起点,因此常常与CytoTRACE联合使用,用CytoTRACE计算分化得分,来确定分化起始亚群。我们后续会更新Monocle2+CytoTRACE进行拟时序分析的教程

    感兴趣的还可以看下2022年发表在Genome Medicine的一篇文章:Integrated analysis of single-cell and bulk RNA sequencing data reveals a pan-cancer stemness signature predicting immunotherapy response。该文章就是巧妙地利用CytoTRACE工具展开研究,用到的单细胞和bulk转录组数据都是公共来源的,是一篇不错的纯生信的文章,值得学习。

🍅:求人不如求己,我赶快试试,感谢!
🥦:课题指导,项目规划,论文修改,任何疑问,欢迎交流联系。

Welcome to Seadon's World. 
🥦:I am unique and amazing !

-END-


转载须知

  • 原创文章】本文著作权归本人所有,未经本人的允许禁止转载,本人拥有所有法定权利,违者必究。

封面来源:https://cytotrace.stanford.edu/

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。