1安装

解耦是一个R包,作为Bioconductor项目的一部分分发。要安装包,请输入R并输入:

install.packages(“BiocManager”)BiocManager::安装(“脱钩”)

或者,您也可以安装最新的开发版本GitHub:

BiocManager:安装(“saezlab /解耦”)

2使用

解耦(Badia-i-Mompel, Santiago, Braunger, Geiss, Dimitrov, Müller-Dott, Taus, Dugourd, Holland, Flores和Saez-Rodriguez, 2022)包含使用先验知识从组学数据中提取生物活性的不同统计方法。其中一些是:

  • AUCell: (Aibar, Bravo Gonzalez-Blas, Moerman, Huynh-Thu, Imrichova, Hulselmans, Rambow, Marine, Geurts, Aerts, van den Oord, Kalender Atak, Wouters和Aerts, 2017)
  • 快速GSEA:(Korotkevich, Sukhov, and Sergushichev, 2019)
  • GSVA:(H{ä}nzelmann, Castelo, and Guinney, 2013)
  • 毒蛇:(Alvarez, Shen, Giorgi, Lachmann, Ding, Ye, and Califano, 2016)

在这个小插图中,我们展示了如何使用它与一些玩具数据。

2.1

解耦可以导入为:

库(dplyr)库(pheatmap)

2.2输入数据

解耦需要一个矩阵()的任何分子读数(基因表达,logFC, p值等)和a网络它将目标特征(基因、蛋白质等)与“源”生物实体(途径、转录因子、分子过程等)联系起来。有些方法还要求每个相互作用的调节模式(MoR),定义为负权重或正权重。

要获得一个示例数据集,运行:

data <- get_toy_data() mat <- data$mat head(mat,5)[,1:5] #> S01 S02 S03 S04 S05 S05 #> G01 9.3709584 9.3888607 9.8951935 8.7844590 8.431446 #> G02 8.5646982 8.2787888 8.4304691 8.8509076 8.655648 #> G03 8.3631284 8.1333213 8.2572694 10.4142076 8.321925 #> G05 8.4042683 0.2842529 0.4600974 0.2059986 1.575728 network <- data$network network #> #一个tibble:10 × 3 #>源目标mor #>    #> 1 T1 G01 1 #> 2 T1 G02 1 #> 3 T1 G03 0.7 #> 4 T2 G06 1 #> 5 T2 G07 0.5 #> 6 T2 G08 1 #> 7 T3 G06 -0.5 #> 8 T3 G07 -3 #> 9 T3 G08 -1 #> 10 T3 G11 1

本例由两个具有不同基因表达模式(G,行)的小样本群体(S, cols)组成:

pheatmap(mat, cluster_rows = F, cluster_cols = F)

在这里我们可以看到一些基因似乎在一组样本中比在另一组样本中表达得更多,反之亦然。理想情况下,我们希望将基因程序中的这些差异捕捉到可解释的生物实体中。在这个例子中,我们将通过将基因表达总结为转录因子活动来做到这一点。

玩具数据还包含一个简单的网络,由3个转录因子(Ts)组成,对靶基因(阳性或阴性)有特定的调控。这个网络可以像图形一样可视化。绿色边为正调控(激活),红色边为负调控(失活):

根据该网络,第一个样本种群应该对T1和T3表现出较高的活性,而第二个样本种群只对T2表现出较高的活性。

2.3方法

解耦包含几个方法。要检查有多少可用的,运行:

show_methods() #> #12×2 # >函数名# > <空空的> <装备> > 1号run_aucell AUCell # > 2 run_consensus共识之间的得分方法# > 3 run_fgsea快速基因集富集分析(FGSEA) # > 4 run_gsva组基因变异分析(GSVA) # > 5 run_mdt多变量决策树(联合化疗)# > 6 run_mlm多元线性模型(传销)# > 7 run_ora在表征分析(ORA) # > 8 run_udt单变量决策树(UDT) # > 9 run_ulm单变量线性模型(乌尔姆)# > 10 run_viper虚拟Protein-activity推理#> 11 run_wmean加权平均值(WMEAN) #> 12 run_wsum加权平均值(WSUM)

每种方法都以不同的方式模拟生物活动,有时会返回多个估计或提供估计的显著性。要了解每个方法返回什么,请查看它们的文档,如下所示run_mlm ?

为了有一个统一的框架,方法有这些共享的参数:

  • :分子读数的输入矩阵。
  • 网络:输入分子特征与生物实体相关的先验知识信息。
  • .source.target而且.mor:要从中提取信息的列名网络
    • .source指生物实体。
    • .target是指分子特征。
    • .mor表示相互作用的“强度”(如果可用,则使用1s)。仅适用于可以建模交互权重的方法。
  • minsize:每个生物实体目标特征的最小值,默认为5个。如果较少,则删除源。这种滤波可以防止从匹配目标特征很少的生物实体中获得噪声活动矩阵.对于这个示例数据集,我们必须将其保持为0。

2.4运行方法

2.4.1个人的方法

作为一个例子,让我们首先运行基因集富集分析方法(gsea),是最著名的统计数字之一:

Res_gsea <- run_fgsea(mat, network, .source='source', .target='target', nproc=1,minsize = 0 ) #> | | | 0 % | |======================================================================| 100年 % #> #> | | | 0 % | |======================================================================| 100年 % #> #> | | | 0 % | |======================================================================| 100年 % #> #> | | | 0 % | |======================================================================| 100年 % #> #> | | | 0 % | |======================================================================| 100年 % #> #> | | | 0%| |======================================================================| 100年 % #> #> | | | 0 % | |======================================================================| 100年 % #> #> | | | 0 % | |======================================================================| 100年 % #> #> | | | 0 % | |======================================================================| 100年 % #> #> | | | 0 % | |======================================================================| 100年 % #> #> | | | 0% ||======================================================================| 100年 % #> #> | | | 0 % | |======================================================================| 100年 % #> #> | | | 0 % | |=================================== | 50 % | |======================================================================| 100年 % #> #> | | | 0 % | |=================================== | 50 % | |======================================================================| 100年 % #> #> | | | 0% ||=================================== | 50 % | |======================================================================| 100年 % #> #> | | | 0 % | |=================================== | 50 % | |======================================================================| 100年 % #> #> | | | 0 % | |=================================== | 50 % | |======================================================================| 100年 % #> #> | | | 0 % | |=================================== | 50% ||======================================================================| 100年 % #> #> | | | 0 % | |=================================== | 50 % | |======================================================================| 100年 % #> #> | | | 0 % | |=================================== | 50 % | |======================================================================| 100年 % #> #> | | | 0 % | |=================================== | 50 % | |======================================================================| # > 100%#> | | | 0% | |=================================== | 50% | |======================================================================| 100% #> #> | | | 0% | |=================================== | 50% | |======================================================================| 100% #> #> | | | 0% | |=================================== | 50% | |======================================================================| 100% res_gsea #> # A tibble: 144 × 5 #> statistic source condition score p_value #>      #> 1 fgsea T1 S01 0.889 0.0755 #> 2 norm_fgsea T1 S01 1.24 0.0755 #> 3 fgsea T2 S01 -0.667 0.548 #> 4 norm_fgsea T2 S01 -1.11 0.548 #> 5 fgsea T3 S01 -0.75 0.01 #> 6 norm_fgsea T3 S01 Inf 0.01 #> 7 fgsea T1 S02 0.889 0.0764 #> 8 norm_fgsea T1 S02 1.29 0.0764 #> 9 fgsea T2 S02 0 0.977 #> 10 norm_fgsea T2 S02 0 0.977 #> # … with 134 more rows

方法返回一个结果数据帧,其中包含:

  • 统计:统计项名称。根据方法的不同,每个方法可以有多个。
  • :生物实体名称。
  • 条件:样本名称。
  • 分数:推断的生物活性。
  • p_value:如果可用,则表示推断活动的重要性。

在这种情况下gsea,它返回活动的简单估计(fgsea),一个归一化估计(norm_fgsea)和p值。

其他方法可以返回不同的东西,例如单变量线性模型(乌尔姆):

res_ulm <- run_ulm(mat, network, .source='source', .target='target', .mor='mor', minsize = 0) res_ulm #> # A tibble:72×5 # >统计源状况得分p_value # > <空空的> <空空的> <空空的> <双> <双> # > 1乌尔姆T1 S01 4.21 - 0.00180 # > 2乌尔姆T1 S02 4.07 - 0.00224 # > 3乌尔姆T1 S03 3.85 - 0.00319 # > 4乌尔姆T1 S04 4.60 - 0.000979 # > 5乌尔姆T1 S05 3.90 - 0.00298 # > 6乌尔姆T1 S06 3.66 - 0.00442 # > 7乌尔姆T1 S07 4.31 - 0.00153 # > 8乌尔姆T1 S08 4.65 - 0.000902 # > 9乌尔姆T1 S09 4.49 - 0.00117 # > 10乌尔姆T1 S10 4.07 - 0.00225  #> # ... 与62多行

在这种情况下,乌尔姆只返回一个估计值(乌尔姆)及其相关的p值。每种方法可以返回不同的统计数据,我们建议查看它们的文档以了解更多关于它们的信息。

让我们绘制得到的结果,首先为gsea

#转换到矩阵mat_gsea <- res_gsea %>% filter(statistic=='fgsea') %>% pivot_wider_profile(id_cols = source, names_from = condition, values_from = score) %>% as.matrix() pheatmap(mat_gsea, cluster_rows = F, cluster_cols = F, cellwidth = 15, cellheight = 40)

我们可以观察到,对于转录因子T1和T2,得到的活性可以正确地区分两个样本种群。另一方面,由于T3是一种抑制因子,因此在第二个样本总体中T3应该下降。这种对活动的错误标记是因为gsea在推断生物活性时不能模拟重量。

当权重在先验知识中可用时,我们绝对建议使用任何将它们考虑在内的方法来获得更好的估计,例如乌尔姆

#转换到矩阵mat_ulm <- res_ulm %>% filter(statistic=='ulm') %>% pivot_wider_profile(id_cols = source, names_from = condition, values_from = score) %>% as.matrix() pheatmap(mat_ulm, cluster_rows = F, cluster_cols = F, cellwidth = 15, cellheight = 40)

乌尔姆在估计生物活性时,它正确地将T3分配为无活性的样本的第二个总体。

2.4.2多个方法

解耦也允许同时运行多个方法。此外,它还根据所获得的跨方法的活动计算一个共识分数共识

默认情况下,deocuple只运行基准测试中性能最好的方法(传销乌尔姆而且wsum),并估计他们的一致得分。可以使用该变量传递特定方法的特定参数arg游戏.更多信息请查阅解耦?

res_decoupling <- decoupling (mat, network, .source='source', .target='target', minsize = 0)432×6 # > run_id统计源状况得分p_value # > <双> <空空的> <空空的> <空空的> <双> <双> # 1传销T1 S01 3.52 - 0.00781 # > > 1 2 1传销T2 S01 -1.13 - 0.290 # > 3 1传销T3 S01 -0.247 - 0.811 # > 4 1传销T1 S02 3.48 - 0.00831 # > 5 1传销T2 S02 -0.213 - 0.837 # > 6 1传销T3 S02 -0.353 - 0.733 # > 7 1传销T1 S03 3.15 - 0.0135 # > 8 1传销T2 S03 -0.638 - 0.541 # > 9 1传销T3 S03 0.0749 - 0.942 # > 10 1传销T1 S04 3.82 - 0.00512  #> # ... 与422多行

让我们看看之前的共识得分的结果解耦运行:

#转换到矩阵mat_consensus <- res_decomple %>% filter(statistic=='consensus') %>% pivot_wider_profile(id_cols = source, names_from = condition, values_from = score) %>% as.matrix() pheatmap(mat_consensus, cluster_rows = F, cluster_cols = F, cellwidth = 15, cellheight = 40)

我们可以观察到,共识评分正确地预测了T1和T3应该在第一个样本总体中活跃,而T2应该在第二个样本总体中活跃。

3.会话信息

# >会话信息────────────────────────────────────────────────────────────────────────────────────────────────────────# # > >设置值R版本正在开发的(不稳定的)(2022-10-25 r83175) # > os Ubuntu 22.04.1 LTS # >系统x86_64, linux-gnu ui X11 # # > >语言(EN) # >整理c# > ctype en_US。utf - 8 # > tz美国/ New_York # 2022-11-01 # > >日期pandoc 2.9.2.1 @ /usr/bin/(通过rmarkdown) # > # >包────────────────────────────────────────────────────────────────────────────────────────────────────────────# >包*版本日期(UTC)自由源# >为了0.2.1 2019-03-21[2]凹口安装(R 4.3.0) # >补丁1.4.1 2021-12-13[2]凹口安装(R 4.3.0) # >助理0.5.0 2022-09-25[2]凹口安装(R 4.3.0) # > BiocManager 1.30.19 2022-10-25[2]凹口安装(R 4.3.0) # > BiocParallel 1.33.0 2022-11-01 [2]> BiocStyle * 2.27.0 2020-11-01 [2] Bioconductor #> bookdown 0.29 2022-09-12 [2] CRAN (R 4.3.0) #> bslib 0.4.0 2022-07-16 [2] CRAN (R 4.3.0) #> cachem 1.0.6 2021-08-19 [2] CRAN (R 4.3.0) #> cli 3.4.1 2022-09-23 [2] CRAN (R 4.3.0) #> codetools 0.2-18 2020-11-04 [2] CRAN (R 4.3.0) #> colorspace 2.0-3 2022-02-21 [2] CRAN (R 4.3.0) #> cowplot 1.1.1 2020-12-30 [2] CRAN (R 4.3.0) #> data。安装表1.14.4 2022-10-17[2]凹口(R 4.3.0) # > DBI 1.1.3 2022-06-18[2]凹口安装(R 4.3.0) # >解耦* 2.5.0 2022-11-01 [1]Bioconductor # >消化0.6.30 2022-10-18[2]凹口安装(R 4.3.0) # > dplyr * 1.0.10 2022-09-01[2]凹口安装(R 4.3.0) # >省略号0.3.2 2021-04-29[2]凹口安装(R 4.3.0) # >评估0.17 2022-10-07[2]凹口安装(R 4.3.0) # > fansi 1.0.3 2022-03-24[2]凹口安装(R 4.3.0) # > fastmap 1.1.0 2021-01-25[2]凹口安装(R 4.3.0) # > fastmatch 1.1 - 3 2021-07-23[2]凹口安装(R 4.3.0) # > fgsea 1.25.0 2022-11-01 [2]Bioconductor # >泛型0.1.3 2022-07-05[2]凹口安装(R 4.3.0) # > ggplot2 3.3.6 2022-05-03[2]凹口安装(R 4.3.0) # >胶1.6.2 2022-02-24[2]凹口安装(R 4.3.0) # > gtable 0.3.1 2022-09-01[2]凹口安装(R 4.3.0) # > highr 0.9 2021-04-16[2]凹口安装(R 4.3.0) # > htmltools 0.5.3 2022-07-18[2]凹口安装(R 4.3.0) # > httr 1.4.4 2022-08-17[2]凹口安装(R 4.3.0) # > jquerylib 0.1.4 2021-04-26[2]凹口安装(R 4.3.0) # > jsonlite 1.8.3 2022-10-21[2]凹口安装(R 4.3.0) # > knitr 1.40 2022-08-24[2]凹口安装(R 4.3.0) # >晶格0.20 -45安装2021-09-22[2]凹口(R 4.3.0) # >生命周期1.0.3 2022-10-07[2]凹口安装(R 4.3.0) # > lubridate 1.8.0 2021-10-07[2]凹口安装(R 4.3.0) # >魔法2.7.3 2021-08-18[2]凹口安装(R 4.3.0) # > magrittr 2.0.3 2022-03-30[2]凹口安装(R 4.3.0)矩阵1.5 - 1 # > 2022-09-13[2]凹口安装(R 4.3.0) # >孟塞尔0.5.0 2018-06-12[2]凹口安装(R 4.3.0) # > pheatmap * 1.0.12 2019-01-04[2]凹口安装(R 4.3.0) # >支柱1.8.1 2022-08-19[2]凹口安装(R 4.3.0) # > pkgconfig 2.0.3 2019-09-22[2]凹口安装(R 4.3.0) # > plyr 1.8.7 2022-03-24[2]凹口(R4.3.0) # > purrr 0.3.5 2022-10-06[2]凹口安装(R 4.3.0) # > R6 2.5.1 2021-08-19[2]凹口安装(R 4.3.0) # > RColorBrewer 1.1 - 3 2022-04-03[2]凹口安装(R 4.3.0) # > Rcpp 1.0.9 2022-07-08[2]凹口安装(R 4.3.0) # > RefManageR * 1.4.0 2022-09-30[2]凹口安装(R 4.3.0) # > rlang 1.0.6 2022-09-24[2]凹口安装(R 4.3.0) # > rmarkdown 2.17 2022-10-07[2]凹口安装(R 4.3.0) # > sass 0.4.2 2022-07-16[2]凹口安装(R 4.3.0) # >尺度1.2.1 2022-08-20[2]凹口安装(R 4.3.0) # > sessioninfo 1.2.2 2021-12-06[2]凹口安装(R 4.3.0) # > stringi 1.7.8安装2022-07-11[2]凹口(R 4.3.0) # > stringr 1.4.1 2022-08-20[2]凹口安装(R 4.3.0) # >宠物猫3.1.8中2022-07-22[2]凹口安装(R 4.3.0) # > tidyr 1.2.1 2022-09-08[2]凹口安装(R 4.3.0) # > tidyselect 1.2.0 2022-10-10[2]凹口安装(R 4.3.0) # > utf8 1.2.2 2021-07-24[2]凹口安装(R 4.3.0) # > vctrs 0.5.0 2022-10-22[2]凹口安装(R 4.3.0) # > withr 2.5.0 2022-03-03[2]凹口安装(R 4.3.0) # > xfun 0.34 2022-10-18[2]凹口安装(R 4.3.0) # > xml2 1.3.3 2021-11-30[2]凹口安装(R 4.3.0) # > yaml 2.3.6 2022-10-18[2]凹口安装(R 4.3.0) # > # > [1]/ tmp / Rtmphj9EUb Rinst22d08666282112 # > [2] /home/biocbuild/bbs - 3.17 bioc / R /图书馆# > # >──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

4参考书目

[1]S. Aibar, C. Bravo Gonzalez-Blas, T. Moerman等,“SCENIC:单细胞调控网络推断和聚类”。:自然方法14(2017),第1083-1086页。DOI:10.1038 / nmeth.4463

[2]M. J. Alvarez, Y. Shen, F. M. Giorgi等,“利用基于网络的蛋白质活性推断癌症体细胞突变的功能特征”。:自然遗传学48.8(2016),第838-47页。

[3]P. Badia-i-Mompel, J. V. Santiago, J. Braunger等,“解耦:从组学数据推断生物活性的计算方法的集成”。:生物信息学的发展(2022)。DOI:https://doi.org/10.1093/bioadv/vbac016

[4]S. Hänzelmann, R.卡斯特罗,J.基尼。“GSVA:微阵列和RNA-Seq数据的基因集变异分析”。:BMC生物信息学14(2013),第7页。DOI:10.1186 / 1471-2105-14-7.URL:http://www.biomedcentral.com/1471-2105/14/7

[5]G.科罗特克维奇,V.苏霍夫,A.塞尔古西切夫。“快速基因集富集分析”。:bioRxiv(2019)。DOI:10.1101/060012.URL:http://biorxiv.org/content/early/2016/06/20/060012