monocle做拟时序分析首先要构建CDS需要3个矩阵:expr.matrix、pd、fd,其次将Seurat中的对象转换为monocle识别的对象。 然后选择想要做拟时序依据的基因就可以了,如果已知开始和结束的细胞,将过程开始时收集的细胞与结束时收集的细胞简单地进行比较,并找到差异表达的基因,做拟时序依据的基因,根据时间点的差异分析选择基因通常非常有效 个矩阵:expr.matrix、pd、fd # 将Seurat中的对象转换为monocle识别的对象 #cds <- importCDS(GetAssayData(seurat.object)) #选择做拟时序的亚群 Mono_tj<-subset(seurat.object, idents = c(1,2,4,6,7)) Mono_matrix<-as(as.matrix(GetAssayData(Mono_tj Mono.cds <- reduceDimension( Mono.cds, max_components = 2, method = 'DDRTree') #计算psudotime值 Mono.cds
单样本输入数据输入数据是降维聚类分群注释的数据做拟时序分析通常不是拿全部的细胞,而是拿感兴趣的一部分。用subset提取子集即可。因为要使用差异基因来排序,所以要两类及以上细胞。 estimateDispersions(sc_cds)选择差异基因来构建细胞发育轨迹(不同:differentialGeneTest和reduceDimension的参数不同)fdif = "diff_test_res2. Pseudotime') p3 = plot_cell_trajectory(sc_cds, color_by = 'celltype') + scale_color_npg()library(patchwork)p2+ p1/p3#多样本的添加这个可以看去批次效应plot_cell_trajectory(sc_cds, color_by = 'orig.ident')经典拟时序热图这里图展示基因随着时间的渐变,不同于findmarker )(100))基因轨迹图gs = head(gene_to_cluster)plot_cell_trajectory(sc_cds,markers=gs,use_color_gradient=T)基因拟时序点图
0.背景知识 做拟时序分析是为了探索自己感兴趣的几种细胞之间的发育关系,一般不是用全部类型的细胞来做的。例如本例中选择了CD14和CD16单核细胞。 如果让ai来说拟时序的目的那就比我说的多: 拟时序分析(Pseudo-time analysis)是一种用于理解细胞状态和细胞命运变化的计算生物学方法。 以下是进行拟时序分析的几个主要目的: 细胞状态推断:通过分析单个细胞的基因表达模式,推断细胞在生物学过程中所处的状态。 基因调控网络推断:通过分析基因表达随“拟时间”的变化,推断基因调控网络和信号传导途径。 疾病机理探索:在疾病研究中,拟时序分析有助于揭示疾病发生和发展的分子机制。 拟时序分析是一种强大的工具,它可以帮助研究者在没有直接时间标记的情况下,通过基因表达数据来探索细胞状态的变化和动态过程。这种方法在单细胞生物学、发育生物学、癌症生物学和神经科学等领域有着广泛的应用。
1 拟时序分析拟时序分析是为了探索自己感兴趣的几种细胞之间的发育关系,一般不是用全部类型的细胞来做的。 实在不行问问ai,回答可详细1.1 单样本拟时序分析#rm(list = ls()) #单样本library(Seurat)library(monocle)library(dplyr)load("sce.Rdata celltype是细胞类型注释,用以下代码添加> scRNA$celltype = Idents(scRNA) #做拟时序分析通常不是拿全部的细胞,而是拿感兴趣的一部分。用subset提取子集即可。 在做拟时序分析的时候,因为是采用差异基因进行排序的,所以要求是两类细胞或者两类以上(要选择的细胞亲缘关系要近一点,有分化的可能性,完全不挨着的细胞不太行)。 大致分析一下Tcells是成熟细胞了,NK细胞会发育成为两种状态1.4.2 经典的拟时序分析展示了一些基因是如何随着时间轨迹的变化而变化的,体现变化过程,选择q值小的(是不是忘了为啥,q值是错误值相当于
前面已经是介绍了单个样品的单细胞转录组表达量矩阵的monocle分析,接下来分享一下多样品的时候如何注意个体差异因素。 虽然monocle3已经出来很久了,但大家都不约而同的选择monocle2,大概就是习惯了吧。。 row.names (subset(diff_test_res, qval < 0.01)) #然后是查看基因,设置为排序要使用的基因 head(ordering_genes) ## [1] "NOC2L p3 = plot_cell_trajectory(sc_cds, color_by = 'celltype') + scale_color_npg() library(patchwork) p2+ 不同样本中的细胞基本是均匀分布在轨迹上的,说明前面的代码很好的去除了样本间的批次效应 plot_cell_trajectory(sc_cds, color_by = 'orig.ident') 经典的拟时序热图
前面我们提到了目前绝大部分单细胞转录组数据分析相关文章都不约而同的使用了monocle2这个软件来做拟时序分析,但是并不意味着它是金标准,也不意味着非monocle2不可。 我们也简单的展示了目前的可以做拟时序分析的软件的测评,详见:拟时序的多种算法大比拼(拟时序一本通03) 。 但是,测评归测评,最终大家还是得使用monocle2做拟时序分析,所以不得不把重点放它的细节剖析上面,我们后面也会介绍一下其它软件和方法: monocle3拟时序实战 SCORPIUS Slingshot 基于其它编程语言的拟时序分析 我们这里还是使用最开始的测试数据来作为案例演练,我们主要是关心的是已知的CD14和CD16的单核细胞的拟时序数据分析情况。 创造一个函数包装monocle2的拟时序分析 前面在为什么做拟时序 (展示差异细节)我们简单的演示了如何做一个极简的使用monocle2包的拟时序分析 ,就是构建好对象后的挑选基因,降维,排序这3个步骤即可
单细胞测序—拟时序分析综合拟时序分析(Pseudotime Analysis)在单细胞测序(Single-cell RNA-seq)中是一个重要的分析步骤,主要用于研究细胞在发育过程或其他生物学过程中所经历的状态变化 拟时序分析可以帮助研究者识别出这些分化路径,并且理解在这些路径中哪些基因起了关键作用。理解细胞状态的动态变化:拟时序分析允许研究者推断出细胞状态的连续变化,而不仅仅是静态的分类。 为后续的拟时序分析创建必要的文件结构和工作目录。 这种方法适用于拟时序分析,因为它可以揭示细胞状态如何随时间或分化进程变化。orderCells():这个函数是 Monocle2 中拟时序分析的关键步骤之一。 这在拟时序分析中是关键的一步,因为根状态通常代表最早的或未分化的细胞状态,而其他细胞状态将在拟时序轨迹中相对于这个根状态进行排序。
拟时序分析概述 拟时序分析(Pseudotime analysis)是一种在单细胞RNA测序(scRNA-seq)数据中重建细胞发育轨迹的计算方法。 为什么需要拟时序分析? 传统的scRNA-seq分析通常将细胞分为离散的类型,但这忽略了细胞状态是连续变化的事实。 拟时序分析有以下优势: 揭示细胞分化路径和发育轨迹 识别驱动细胞状态转变的关键基因 在没有时间序列实验的情况下推断细胞发育动态 发现新的细胞亚群和中间过渡状态 怎么做拟时序分析? 拟时序分析的基本流程包括: 从预处理好的数据中创建拟时序对象 降维和聚类 学习细胞轨迹 排序细胞并计算伪时间 分析与伪时间相关的基因表达变化 目前常用的拟时序分析工具包括Monocle3、Slingshot 实际操作:基于Seurat对象的拟时序分析流程 以下是从Seurat对象开始进行拟时序分析的完整流程。前提是已经有一个处理好的Seurat对象,包含标准化数据、降维结果和细胞类型注释。
最近刷了刷植物领域单细胞文献,有一个蛮早期的拟南芥根部单细胞研究:《High-Throughput Single-Cell Transcriptome Profiling of Plant Cell Types》对拟时序分析描述的很清楚 降维聚类分群 然后你需要有背景知识才能做 拟时序分析 :文章是这样描述:focusing on endodermal cells, which have a known trajectory from ,已经针对哪部分细胞亚群进行拟时序分析哦! 然后是拟时序的的各自特征基因的生物学功能数据库注释: 这一套图表的代码也是在「生信技能树」使用Smart-seq2单细胞转录组数据探索小鼠性腺发育,链接是:https://www.bilibili.com ,这里略 拟时序分析是否可以对全部单细胞亚群呢?
单细胞数据分析常用到建立trajectory和pseudoTime,拟时序分析可以用 Diffusion( Destiny R package) #Diffusion PseudoTime Analysis image.png #2D plot plot(dm, 1:2, pch = 20, col_by = 'num_cells', legend_main = 'Cell stage') ? image.png #3D plot library(rgl) plot3d(eigenvectors(dm)[, 1:3], col = log2(guo_norm$num_cells), type image.png 同样可以用ggplot画出来 qplot(DC1, DC2, data = dm, colour = factor(num_cells)) + scale_color_cube_helix image.png # or alternatively: dif<-fortify(dm)#转化为data.frame ggplot(dif, aes(DC1, DC2, color = factor
副标题: 所有的大样本量差异分析都可以转为拟时序分析 两个分组的差异分析仅仅是上下调吗? 很多小伙伴在后台表示对单细胞数据分析里面的拟时序分析不理解,恰好最近看到了一个超级清晰明了的展现拟时序分析的作用的文献,分享给大家。 它完美的展现了差异分析为什么不够,为什么拟时序分析就是差异分析的细节剖析。 拟时序的结果 拟时序虽然就展现了上面的一个图,但是具体的代码步骤还是有点难度哦。 monocle.Rdata') 有了上面的 output_of_phe2_monocle.Rdata 文件,就是拟时序分析的结果, 接下来就可以进行各种各样的可视化啦!
单细胞 一文打通 拟时序分析monocle2 上个月发了一文全打通系列之后,有人问还有没有后续。 肯定有呀 关于monocle2,最难的一步好像在软件的正确安装,因为有的版本中,某些函数总是报错,需要找到正确的版本。 这次排版不太好,还请见谅。 lowerDetectionLimit = 0.5, expressionFamily = negbinomial.size()) 归一化 差异分析 (cds)$stim), "State_Stim_summary.xlsx", colnames=T, rownames=T) getwd() 设置谁是root ##we set the state 2 as root ########state 2 #这里设置谁为root??
Monocle2是一款常用的单细胞拟时序分化轨迹分析软件,它可以通过反向图嵌入的机器学习技术构建单细胞轨迹,将细胞放置在轨迹中的适当位置,并通过差异分析模块获取在轨迹过程中受调控的基因。 然而,目前的拟时序轨迹分析软件缺乏对轨迹关键驱动基因的下游分析,2020年发表在Bioinformatics杂志上的分析软件GeneSwitches基于此现状,重点开发了拟时序分化轨迹开关基因分析方法, R2值,其中表达激活的开关基因与拟时序正相关(R2>0),被定义为上调型开关基因(Up-regulation),而表达沉默的开关基因与拟时序负相关(R2<0),被定义为下调型开关基因(Down-regulation 拟时序相关性越高代表基因与该轨迹进程的关系越密切。得到了每个潜在开关基因的开关时间和相关性R2值后,将Top开关基因按其开关时间在拟时序上排序可视化,可以更直观地展示分化轨迹进程中的关键基因作用。 开关基因富集分析结果表明与细胞周期(Cell Cycle)相关的通路在拟时序早期下调,而与心脏功能相关的通路在拟时序后期上调。
plot_genes_in_pseudotime(cds[cg,],color_by = "Cluster") 图片图片前面根据差异基因,推断好了拟时序,也就是说把差异基因动态化了,后面就可以具体推断哪些基因随着拟时序如何的变化 my_cds_subset=cds# 拟时序数据和细胞位置在pData 中head(pData(my_cds_subset))# 这个differentialGeneTest会比较耗费时间,测试每个基因的拟时序表达 gene_short_name) -> my_pseudotime_genemy_pseudotime_gene=my_pseudotime_gene[,1]my_pseudotime_gene#绘制一个或多个基因的拟时序 ", nrow= 3,ncol = NULL )+ scale_color_nejm()ggsave('monocle_top6_pseudotime_by_cluster.pdf')图片将前50个随拟时序变化的基因做聚类热图 [my_gene,], branch_point = 2, ncol = 1)图片图片做热图查看拟时序基因在两个亚群的表达
今天我们就跟随王老师一起来看一下BD SeqGeq™之单细胞测序数据拟时序分析。 ? 什么是拟时序分析? 不同状态的细胞连起来就是一个“轨迹”,类似根据时间关系判断出的发育轨迹变化,但这并不是真正的时间,而是通过基因表达来模拟细胞的发育演化过程,所以称为“拟”时序分析(Pseudotime analysis 目前拟时序分析最常用的方法 Monocle是由Trapnell实验室开发的,采用了无监督算法,将单个细胞按照拟时间排列在对应的轨迹上。 BD SeqGeq™ 支持拟时序分析 BD SeqGeq™目前将Monocle v2.0整合为插件。 下面就为大家详细展示如何在SeqGeq™中获取Monocle以及使用它进行拟时序分析。
拟时(pseudotime)分析,又称细胞轨迹(cell trajectory)分析,根据不同细胞亚群基因表达量随时间的变化情况通过拟时分析可以来推断发育过程细胞的分化轨迹或细胞亚型的演化过程。 并非一定要不同时间段做实验的结果,因为细胞本身存在拟时序变化,细胞是有变化的,可以做拟时序分析。 Nature Communications文章 Single-cell analysis reveals new evolutionary complexity in uveal melanoma中的拟时序分析结果图 一 加载数据 R包 本次介绍monocle2进行拟时序分析 #BiocManager::install("monocle") library(monocle) #载入注释后的数据 load('pbmc_tutorial_singleR.RData 13714 features, 2000 variable features) # 3 dimensional reductions calculated: pca, umap, tsne 二 Monocle2分析
也就是说,我们做拟时序之前通常是要细分亚群到足够深入,需要确定被做拟时序分析的对象是有比较大生物学变化的可能性。 但是前面我们在 为什么做拟时序 提到了其实可以把拟时序分析简化成为了主要是为了展示差异细节,这个文章里面也是如此,就有了图(F)的monocle2的拟时序结果,因为我们关心的是GZMH高表达的效应(毒性 一些拟时序创新 因为单细胞转录组数据的流行才让大家都认识到了这个拟时序分析可以展示差异分析的细节,但其实展现 差异分析细节这个需求在单细胞之前就存在。 monocle2拟时序实战 降维聚类分群 拟时序 多种基础可视化 正向特殊可视化(目标基因表达量,基因集打分) 反方向特殊可视化(5种可视化) monocle3拟时序实战 SCORPIUS实战 Slingshot 实战 基于其它编程语言的拟时序分析 然而,本人的理解肯定是片面的,希望通过这10个推文的指引能让大家对单细胞转录组的明星分析方法拟时序有一个基础的认知。
昨天我在单细胞天地讲解了使用monocle2进行拟时序分析的方法,基本上跟着我的代码走一波就可以学会了,当然具体参数理解需要自行发力哦,见:使用monocle做拟时序分析(单细胞谱系发育) 用法只是最基础的知识而已 ,更多的时候,我们需要活学活用,比如课程学员提到的问题,就是因为做不到活学活用,他想知道下面的拟时序分析的热图提取基因,学员把基因按照发育顺序绘制了热图,而这些基因被他分成了3组,想拿基因去做GO/KEGG 我这里不能拿学员真实项目数据来演示,所以还是用我们的老朋友,拿scRNAseq包的表达矩阵测试,见:使用monocle做拟时序分析(单细胞谱系发育) 首先根据细胞发育谱系来绘制热图 因为前面的教程 使用 monocle做拟时序分析(单细胞谱系发育) 我们已经把细胞发育情况做出来了,就是NPC细胞跟另外3种细胞从生理上就不一样,所以是单独的发育轨迹,而 “GW16” and “GW21” ,“GW21+3 ” 这种孕期细胞,就可以很清晰的看到时间被反映在我们的拟时序分析结果了。
而且,加入拟时序分析有时候确实是能更加说明问题。 尝试一下monocle2的拟时序分析 拟时序有非常多多种算法,后面我们再慢慢介绍,包括但不限于: monocle2拟时序实战 monocle3拟时序实战 SCORPIUS Slingshot 基于其它编程语言的拟时序分析 现在基于前面的CD14和CD16的单核细胞两个细胞亚群上面的组成的对象,我们尝试一下monocle2的拟时序分析,首先是构建monocle2的对象; seurat=scRNA library(monocle > table(pData(cds)$State) 1 2 3 105 49 46 而且也可以把这个拟时序分析后针对每个细胞 产生的 Pseudotime数值和State分组 值得一提的是拟时序一本通专辑的目录是: 为什么做拟时序(展示差异细节) 拟时序的正确姿势,错误示范,创新型拟时序 拟时序的多种算法大比拼 monocle2拟时序实战 降维聚类分群 拟时序 多种基础可视化
偶然见到一张将拟时序分析的结果映射到umap中的图(https://www.jianshu.com/p/e2f0dc8a485c),想了下只需要获取 时序分析的结果 + umap的位置信息 ,使用ggplot2 一 加载数据 R包 使用上篇推文得到的拟时序分析的结果,也可后台回复 “时序”获取。 尽可能的熟悉单细胞分析中常见的数据都存在哪,记不住的可以多使用 str 函数查看 library(monocle) library(Seurat) library(ggplot2) #载入数据 load element_blank(), axis.line = element_line(colour = "black")) p4 p3 / p4 OK,完成拟时序分析结果的映射 是不是觉得其实只要知道需要的数据都在哪,然后使用ggplot2 或者 基础函数就能解决问题。 你用,或者不用我。 数据就在那里,不藏不躲。