内容

1介绍

mfa是一个R包配件的贝叶斯混合因子分析来推断发展轨迹与分岔从单细胞基因表达数据。它能够共同推断拟时间、分支和基因不同监管在使用生成分支,贝叶斯层次模型。吉布斯抽样推断执行使用快。

2安装

mfa可以安装在两种方式之一:

2.1从Bioconductor

如果(!requireNamespace (“BiocManager”,悄悄地= TRUE)) install.packages (“BiocManager”) BiocManager::安装(mfa)库(mfa)

2.2从Github

这需要devtools包安装

install.packages (devtools) #如果没有安装devtools:: install_github (kieranrcampbell / mfa)库(mfa)

3一个例子在合成数据

3.1生成合成数据

我们首先创建一些合成数据调用100细胞和基因mfa函数create_synthetic。这返回一个列表,基因表达,拟时间,分支分配,和各种参数的估计:

synth < - create_synthetic (C = 100, G = 40)打印(str (synth))
# # 7 # # $ X:列表num [1:10 0, 1] 14 14.8 13.4 13.1 14.5……# # . .- attr (*, dimnames) =列表2 # #……美元:空空的[1:10]“cell1”“cell2”“cell3”“cell4”…# #……美元:空空的[40]“feature1”“feature2”“feature3”“feature4”…# # $分支:int [1:10] 0 0 0 0 1 0 0 0 0 0…# # $ pst: num (1:10 0) 0.747 0.544 0.362 0.869 0.719……# # $ k: num [1, 1:2) 6.98 6.82 -5.92 8.13 7.36……# # $φ:num [1, 1:2) 7.25 8.46 7.78 9.73 8.87…… ## $ delta : num [1:40, 1:2] 0.0129 0.2597 0.1763 0.3417 0.3547 ... ## $ p_transient: num 0 ## NULL

我们可以PCA和投入一笔可观的格式:

df_synth < - as_data_frame (prcomp (synth X美元)$ X[1:2]) % > %变异(拟时间= synth pst美元,分支=因素(synth分行美元))

看一看一个PCA表示,彩色拟时间和分支分配:

ggplot (df_synth aes (x = PC1, y = PC2,颜色=拟时间))+ geom_point ()

ggplot (df_synth aes (x = PC1, y = PC2,颜色=分支))+ geom_point ()

3.2调用mfa

的输入mfa要么是一个ExpressionSet(如使用包)或cell-by-gene矩阵表达式。如果一个ExpressionSet提供的值exprs槽用于基因表达。

我们调用mfa调用mfa (…)函数。根据数据集的大小和密度的迭代的数量,这可能需要一段时间:

m < - mfa (synth X美元)打印(m)
# # MFA符合# # # # 100细胞和基因(2000次迭代)

必须特别小心的初始化拟时间:默认情况下它们初始化第一主成分,但如果研究人员怀疑(基于绘图标记基因)的轨迹对应一个不同的电脑,这可以设置使用pc_initialise论点。

3.3获得诊断

在任何密度分析,基本的护理是必要的,以确保平稳分布的样本有聚合类似(见如。考尔斯和卡林(1996)为一个完整的讨论)。

快速的总结,mfa提供了两个函数:plot_mfa_traceplot_mfa_autocorr快速跟踪和自相关的策划后对数似:

plot_mfa_trace (m)

plot_mfa_autocorr (m)

3.4策划的结果

我们可以提取后的意思估计和可信的间隔使用总结功能:

< -女士总结(m)打印(头(ms))
# # #一个宠物猫:6×5 # #拟时间分支branch_certainty pseudotime_lower pseudotime_upper # # <双> < fct > <双> <双> <双> # -0.527 # 1 2 1 -0.578 -0.0158 -0.318 # # 2 2 1 -0.148 0.333 0.173 # # 3 1 1 0.148 -0.836 0.487 # # 4 2 1 -0.899 -1.12 -0.632 # # 5 1 1 -1.27 1.26 -0.870 # # 6 1 1 1.10 - 1.53

这有六项:

  • 拟时间地图拟时间估计
  • 分支地图部门估计
  • branch_certainty的比例获得痕迹(老化后)的细胞被分配到地图分支
  • pseudotime_lowerpseudotime_upper:上下highest-probability-density后95%可信区间

我们可以比较真实值的推断拟时间:

qplot (synth pst美元,拟时间美元,女士颜色=因素(synth分行美元))+ xlab(“真正的拟时间”)+ ylab(推断拟时间)+ scale_color_discrete (name = '真\ nbranch ')

我们可以同样情节的PCA表示彩色地图分支:

变异(女士df_synth inferred_branch =[[“分支”]])% > % ggplot (aes (x = PC1, y = PC2,颜色= inferred_branch)) + geom_point () + scale_color_discrete (name = '推断\ nbranch ')

3.5发现基因分叉

一个独特的部分这个模型是通过一个ARD-like之前结构载荷矩阵我们可以自动推断出哪些基因参与分岔过程。快速上手看我们可以使用plot_chi功能,更大的值inverse-chi暗示与分岔相关联的基因:

plot_chi (m)

计算气的映射值我们可以调用calculate_chi函数,它返回一个data_frame功能名称和值:

posterior_chi_df < - calculate_chi (m)头(posterior_chi_df)
# # #一个宠物猫:6×2 # #特性chi_map # # <空空的> <双> # # 1 feature1 0.730 # # 2 feature2 0.529 # # 3 feature3 0.461 # # 4 feature4 0.614 # # 5 feature5 0.602 # # 6 feature6 0.872

4高级用法

4.1mfa

调用mfa (…)返回一个mfa对象,该对象包含所有的信息获得数据集和推理。请注意,它包含原始数据的一个副本。我们可以看到通过调用结构str在一个mfa对象:

str (m,马克斯。水平= 1)
# # 10 # # $痕迹:列表的列表10 # # $ iter: num薄# # 2000:num 1 # # $燃烧:num # # 1000 b: num 2 # # $崩溃:罗技假# # $ N: int # # 100 G: int 40 # # $ feature_names:空空的[40]“feature1”“feature2”“feature3”“feature4”…# # $ cell_name:空空的[1:10]“cell1”“cell2”“cell3”“cell4”…# # - attr(*,“类”)=空空的“外长”

它包含以下位置:

  • 痕迹——获得原始痕迹(下一节将讨论)
  • iter——获得迭代的数量
  • 获得的稀疏模型链
  • 燃烧——的数量获得迭代扔掉老化
  • b——分支模型的数量
  • 崩溃——无论是倒塌的吉布斯抽样实施
  • N——细胞的数量
  • G——的数量特征(如基因)
  • feature_names——功能(如基因)的名称
  • cell_name——细胞的名称

4.2获得访问痕迹

密度可以通过访问痕迹痕迹槽的mfa对象。这使每个变量与一个元素列表,以及对数似:

print(名称(m美元的痕迹))
# # [1]“tau_trace”“gamma_trace”“pst_trace”# # [4]“theta_trace”“lambda_theta_trace”“chi_trace”# # [7]“eta_trace”“k_trace”“c_trace”# # [10]“lp_trace”

这是一个简单的矩阵为non-branch-specific变量。例如,对于变量\ \(τ\)只是一个interation-by-gene矩阵:

str (m痕迹tau_trace美元)
# # num [1:1000, 40) 1.39 2.2 1.58 2.18 2.56……# # - attr (*, dimnames) =列表2 # # . .美元:零# # . .美元:空空的[40]“τ[1]”“τ[2]”“τ[3]”“τ[4]”…

我们可以很容易的被调用后的意思colMeans。更多的后验密度估计可以执行使用MCMCglmm包,如posterior.mode (…)地图估计(虽然在实践中这通常是类似于后的意思)。我们可以估计后间隔使用HPDInterval (…)函数的coda包(注意,必须转换为痕迹coda对象在调用这些之前)。

一些变量是分支依赖,这意味着返回数组(或痕迹张量在时尚的说),维度迭代x基因分支。一个例子是\ (k \)变量:

str (m痕迹k_trace美元)
# # num (40, 1:1000 1:2) -0.864 -0.881 -0.744 -0.89 -0.972……

让后就意味着(或模式,或间隔)然后我们需要使用应用函数来遍历分支。找到后的手段k,然后,我们叫

pmean_k < -应用(m痕迹k_trace美元3 colMeans) str (pmean_k)
# # num [1, 1:2) -0.819 -0.614 1.003 -1.022 -0.922……

这返回一个gene-by-branch矩阵的后验估计。

5技术

sessionInfo ()
# # R版本4.2.0 RC (2022-04-21 r82226) # #平台:x86_64-pc-linux-gnu(64位)# #下运行:Ubuntu 20.04.4 LTS # # # #矩阵产品:默认# #布拉斯特区:/home/biocbuild/bbs - 3.16 - bioc / R / lib / libRblas。所以# # LAPACK: /home/biocbuild/bbs - 3.16 - bioc / R / lib / libRlapack。# # # #语言环境:# # [1]LC_CTYPE = en_US。utf - 8 LC_NUMERIC = C # #[3]而= en_GB LC_COLLATE = C # # [5] LC_MONETARY = en_US。utf - 8 LC_MESSAGES = en_US。utf - 8 # # [7] LC_PAPER = en_US。utf - 8 LC_NAME = C # # [9] LC_ADDRESS C = C LC_TELEPHONE = # # [11] LC_MEASUREMENT = en_US。utf - 8 LC_IDENTIFICATION = C附加基本包:# # # # # #[1]统计图形grDevices跑龙套数据集方法基础# # # #其他附加包:# # [1]dplyr_1.0.8 ggplot2_3.3.5 mfa_1.19.0 BiocStyle_2.25.0 # # # #通过加载一个名称空间(而不是附加):# # [1]Rcpp_1.0.8.3 ape_5.6-2 lattice_0.20-45 # # [4] tidyr_1.2.0 corpcor_1.6.10 assertthat_0.2.1 # # [7] digest_0.6.29 utf8_1.2.2 plyr_1.8.7 # # [10] R6_2.5.1 MatrixModels_0.5-0 evaluate_0.15 # # [13] coda_0.19-4 highr_0.9 pillar_1.7.0 # # [16] rlang_1.0.2 SparseM_1.81 cubature_2.0.4.4 # # [19] jquerylib_0.1.4 magick_2.7.3 Matrix_1.4-1 # # [22] rmarkdown_2.14 labeling_0.4.2 MCMCglmm_2.33 # # [25] stringr_1.4.0 munsell_0.5.0 compiler_4.2.0 # # [28] xfun_0.30 pkgconfig_2.0.3 BiocGenerics_0.43.0 # # [31] ggmcmc_1.5.1.1 mcmc_0.9-7 htmltools_0.5.2 # # [34] tidyselect_1.1.2 tibble_3.1.6 tensorA_0.36.2 # # [37] bookdown_0.26 codetools_0.2-18 reshape_0.8.9 # # [40] fansi_1.0.3 crayon_1.5.1 withr_2.5.0 # # [43] MASS_7.3-57 grid_4.2.0 GGally_2.1.2 # # [46] nlme_3.1 - 157 jsonlite_1.8.0 gtable_0.3.0 # # [49] lifecycle_1.0.1 DBI_1.1.2 magrittr_2.0.3 # # [52] scales_1.2.0 cli_3.3.0 stringi_1.7.6 # # [55] farver_2.1.0 bslib_0.3.1 ellipsis_0.3.2 # # [58] generics_0.1.2 vctrs_0.4.1 RColorBrewer_1.1-3 # # [61] tools_4.2.0 Biobase_2.57.0 glue_1.6.2 # # [64] purrr_0.3.4 parallel_4.2.0 fastmap_1.1.0 # # [67] yaml_2.3.5 colorspace_2.0-3 BiocManager_1.30.17 # # [70] knitr_1.38 sass_0.4.1 quantreg_5.88 # # [73] MCMCpack_1.6-3

引用

考尔斯,卡林玛丽凯瑟琳,布拉德利P。1996。“马尔可夫链蒙特卡罗的融合诊断:比较审查”。美国统计协会杂志》上91 (434):883 - 904。