Monocle 2 的主要工作是使细胞按照生物过程的进展进行排序。一旦对细胞进行排序后,就可以分析这些细胞,找到随着细胞进展而变化的基因。Monocle 2为每一个细胞分配一个pseudotime
的值,它记录了细胞的进展。
为找的找到随着细胞进展而变化的基因,Monocle 2使用R package VGAM将基因的表达水平建模为一个平滑的、非线性吃的pseudotime function
。
diff_test_res <- differentialGeneTest(cds_subset, fullModelFormulaStr = "~sm.ns(Pseudotime)")
sm.ns
指出monocle应该通过基因表达拟合一个natural spline
Branch expression analysis modeling (BEAM) 是一个新的test方法对于分析特殊分支的点,BEAM可以报告分支相关的基因。
在Monocle 2 中将为每个细胞分配:
作者开发了BEAM去test依赖分支的基因表达,通过将问题表述为两个negative binomial GLMs
之间的比。
测试的空模型(null model)假设被测试的基因不是分支特异性基因:
expression \sim sm.ns(Pseudotime)
然而,替代模型(alternative model)假设该基因是一个分支特异性基因,表示分支和转换伪时间之间的交互项。
expression \sim sm.ns(Pseudotime)+Branch+sm.ns(Pseudotime):Branch
每个模型都包括一个natural spline
(这里有三个自由度) ,描述了作为pseudotime
函数的平均expression
的平滑变化。null model
仅拟合单个曲线,alternative model
为每个分支拟合不同的曲线。
在Monocle 2中依赖R package VGAM中的"smart" spline
拟合功能,因此使用的是sm.ns()
函数,而不是R package splines中的ns()
使用VGAM中的lrtest()
函数执行likelihood ratio testing
,类似于Monocle中的其它差异表达test。
显著的分支依赖基因(significant branch-dependent genes),意味着这个基因沿着每个分支具有不同的表达动力学dynamics
,具有不同形状的平滑曲线。
为了拟合完整的模型,必须将每个cell分配给适当的分支,该分支通过上述模型公式中的factor“Branch”进行编码。
Monocle的test分支的函数接受一个参数,制定比较那些分支。