内容

1安装

如果(!requireNamespace('BiocManager', quiet = TRUE) install.packages('BiocManager') BiocManager::install("BioNERO")
#加载包后安装库(BioNERO) set.seed(123) #重现性

2简介及算法描述

在前面的小插图中,我们探索了基因共表达网络(GCNs)的各个方面,它们表示为无向加权图.它是无向因为,对于一个给定的连接一个基因而且基因B,我们只能说这些基因是共表达的,但我们不能知道是否一个基因控制基因B或以其他方式。此外,加权意味着基因对之间的某些共表达关系比其他的更强。在这个小插图中,我们将演示如何用BioNERO从表达数据推断基因调控网络(grn)。grn显示调控因子(如转录因子或mirna)与其靶标(如基因)之间的相互作用。因此,它们被表示为有向无加权图

已经开发了许多算法来从表情数据推断grn。然而,算法的性能高度依赖于基准数据集。为了解决这种不确定性,Marbach et al. (2012)提出了应用“群众智慧”GRN推理的原理。这种方法包括用不同的算法推断grn,对每种方法识别的交互进行排序,并在所有使用的算法中计算每种交互的平均排序。这样,我们就可以有共识,高可信度的优势,用于生物学解释。为此,BioNERO实现了三种常用算法:GENIE3(Huynh-Thu et al. 2010), ARACNE(Margolin et al. 2006)和CLR(Faith et al. 2007)

3.数据预处理

在推断GRN之前,我们将对表达式数据进行预处理,方法与前面的小插图相同。

#预处理表达式数据final_exp <- exp_预处理(zma.se)se, min_exp = 10, variance_filter = TRUE, n = 2000

4基因调控网络推理

BioNEROGRN推断只需要2个对象:表达数据(实验总结,矩阵或数据帧)和的字符向量监管机构(转录因子或miRNAs)。本插图中使用的转录因子从PlantTFDB 4.0下载(Jin et al. 2017)

数据(zma.tfs)头(zma.tfs) ##基因家族## 6 Zm00001d022525 Dof ## 25 Zm00001d037605 GATA ## # 28 Zm00001d049540 NAC ## 45 Zm00001d042287 MYB ## 46 Zm00001d042288 NAC ## 54 Zm00001d039371 TCP

4.1共识GRN推断

基于的grn推断群众的智慧原理可以用一个函数完成:exp2grn ().该函数将使用GENIE3、ARACNE和CLR推断grn,计算每个交互的平均等级,并根据最优无标度拓扑(SFT)拟合对结果网络进行过滤。在过滤步骤中,n通过对顶部进行细分,可以创建不同的网络n分位数。例如,如果给定一个由10,000条边组成的网络作为输入Nsplit = 10,将创建10个不同的网络:第一个网络有1000条边,第二个网络有2000条边,依此类推,最后一个网络是原始输入网络。然后,对于每个网络,函数将计算SFT拟合,并选择最佳拟合。

#使用10棵树作为演示目的。使用默认值:1000 grn <- exp2grn(exp = final_exp, regulators = zma。tfs美元基因,nTrees = 10 ) ## The top number of edges that best fits the scale-free topology is 247

头部(grn) ##调节器目标## 290 Zm00001d041474 Zm00001d041474 Zm00001d006602 ## 281 Zm00001d041474 Zm00001d006942 ## 325 Zm00001d044315 Zm00001d043497 ## 65 Zm00001d013777 Zm00001d046996 ## 252 Zm00001d038832 Zm00001d021147

4.2特定于算法的GRN推理

本节针对那些出于某种原因(例如,比较,探索)想要使用特定算法推断grn的用户。可用的算法有:

GENIE3:一种基于回归树的算法,分解grn的预测n基因导入n回归问题。对于每个回归问题,使用随机森林(默认)或额外树从所有其他基因的表达谱中预测目标基因的表达谱。

#使用10棵树作为演示目的。使用默认值:1000 genie3 <- grn_infer(final_exp, method = "genie3", regulators = zma。tfs美元基因,nTrees = 10) head(genie3) ## Node1 Node2 Weight ## 20352 Zm00001d041474 Zm00001d017881 0.5439514 ## 41340 Zm00001d034751 Zm00001d037111 0.5322394 ## 13037 Zm00001d034751 Zm00001d012407 0.4348469 ## 13207 Zm00001d045323 Zm00001d012513 0.4203583 ## 55378 Zm00001d028432 Zm00001d048693 0.4071160 ## 50200 Zm00001d013777 Zm00001d044212 0.3957483 dim(genie3) ## [1] 60136 3

ARACNE:信息论算法,旨在消除由共表达式推断的间接交互作用。

aracne <- grn_infer(final_exp, method = "aracne", regulators = zma.tfs$Gene) head(aracne) ## Node1 Node2 Weight ## 23861 Zm00001d038832 Zm00001d021147 1.789818 ## 1758 Zm00001d038832 Zm00001d038832 zm00001d011032 1.692232 ## 11337 Zm00001d038832 Zm00001d011086 1.692232 ## 27014 Zm00001d011139 Zm00001d024274 1.674840 ## 51070 Zm00001d011139 zm00001d04569 1.658043 ## 28387 Zm00001d038832 Zm00001d025784 1.641802 dim(aracne) ## [1] 411

CLR:相关网络算法的扩展,使用相互信息来识别监管相互作用。

clr <- grn_infer(final_exp, method = "clr", regulators = zma.tfs$Gene) head(clr) ## Node1 Node2 Weight ## 26302 Zm00001d046937 Zm00001d023376 12.70216 ## 11267 Zm00001d046937 Zm00001d011080 12.25336 ## 12540 Zm00001d041474 Zm00001d045042 10.74023 ## 51019 Zm00001d042263 Zm00001d041474 Zm00001d015811 10.33216 ## 29278 Zm00001d046937 Zm00001d026632 10.20075 dim(clr) ## [1] 26657

用户还可以使用该功能同时推断3种算法的grnexp_combined ().生成的边列表存储在一个包含3个元素的列表中。1注意:在引擎盖下,exp2grn ()使用exp_combined ()其次是平均排名grn_average_rank ()然后用grn_filter ()

Grn_list <- grn_combined(final_exp, regulators = zma。tfs美元基因,nTrees = 10) head(grn_list$genie3) ## Node1 Node2权重## 12013 Zm00001d041474 Zm00001d046568 Zm00001d011541 0.4289222 ## 33403 Zm00001d041474 Zm00001d041474 Zm00001d030748 0.4140894 ## 6910 Zm00001d044315 Zm00001d006725 0.4103733 ## 22057 zm00001d0441474 zm00001d0441474 Zm00001d018986 0.4020641 # 45153 Zm00001d034751 Zm00001d039733 0.3935705头(grn_list$aracne) ## Node1 Node2权重## 23861 Zm00001d038832 Zm00001d038832 1.692232 ## 11337Zm00001d038832 Zm00001d011139 Zm00001d024274 1.674840 ## 51070 Zm00001d011139 Zm00001d045069 1.658043 ## 28387 Zm00001d038832 Zm00001d025784 1.641802头(grn_list$clr) ## Node1 Node2重量## 26302 Zm00001d046937 Zm00001d023376 12.70216 ## 11267 Zm00001d046937 zm00001d0231080 12.25336 ## 12540 Zm00001d041474 zm00001d015842 10.50925 ## 17810 Zm00001d041474 Zm00001d015811 10.33216 ## 29278 Zm00001d046937Zm00001d026632 10.20075

5基因调控网络分析

在推断GRN后,BioNERO允许用户执行一些常见的下游分析。

5.1Hub基因鉴定

GRN中心被定义为连接程度最高的前10%的监管机构,但这个百分比在BioNERO2注意:记住:grn表示为导演图表。这意味着在确定中心时只考虑监管机构。这里的目标是确定控制几个基因表达的调控因子(例如,转录因子)。他们可以被认同get_hubs_grn ()

中心< - get_hubs_grn(入库单)中心度# # 1 # #基因Zm00001d038832 16 # # 2 Zm00001d041474 13 # # 3 Zm00001d046937 13 # # 4 Zm00001d011139 12 # # 5 Zm00001d052229 11 # # 6 Zm00001d013777 10 # # 7 Zm00001d039989 10 # # 8 Zm00001d038227 10 # # 9 Zm00001d030617 10 # # 10 Zm00001d044315 9 # # 11 Zm00001d003822 9 # # 12 Zm00001d020020 9 # # 13 Zm00001d046568 9 # # 14 Zm00001d010227 9 # # 15 Zm00001d025339 8 # # 16 Zm00001d028974 8 # # 17 Zm00001d042267 7 # # 18 Zm00001d014377 7 # # 19 Zm00001d054038 6 # # 2024 Zm00001d034751 6 ## 25 Zm00001d018081 6 ## 26 Zm00001d027957 5

5.2网络可视化

plot_grn(入库单)

grn也可以交互式地可视化,用于探索目的。

plot_grn(grn, interactive = TRUE, dim_interactive = c(500,500))

最后,BioNERO也可用于蛋白质-蛋白质(PPI)相互作用网络的可视化和中心识别。的函数get_hubs_ppi ()而且plot_ppi ()与grn的等效原理相同(get_hubs_grn ()而且plot_grn ()).

会话信息

这个小插图是在以下条件下创建的:

sessionInfo() ## R version 4.2.1(2022-06-23) ##平台:x86_64-pc-linux-gnu (64-bit) ##运行在Ubuntu 20.04.5 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.16-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.16-bioc/R/lib/libRlapack。所以## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=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 lc_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats graphics grDevices utils datasets methods基础## ##其他附加包:## [1]BioNERO_1.6.0 BiocStyle_2.26.0 ## ##通过命名空间加载(且未附加):[1] backports_1.4.1 circlize_0.4.15 ## [3] Hmisc_4.7-1 plyr_1.8.7 ## [5] igraph_1.3.5 splines_4.2.1 ## [9] GenomeInfoDb_1.34.0 ggnetwork_0.5.10 ## [11] ggplot2_3.3.6 sva_3.46.0 ## [13] digest_0.6.30 foreach_1.5.2 ## [15] htmltools_0.5.3 magick_3 .7.3 ## [17] GO.db_3.16.0 fansi_1.0.3 ## [23] doParallel_1.0.17 limma_3.54.0 ## [25] ComplexHeatmap_2.14.0 fastcluster_1.2.3 ## [27]Biostrings_2.66.0 annotate_1.76.0 # # [29] matrixStats_0.62.0 jpeg_0.1-9 # # [31] colorspace_2.0-3 blob_1.2.3 # # [33] ggrepel_0.9.1 xfun_0.34 # # [35] dplyr_1.0.10 crayon_1.5.2 # # [37] rcurl_1.98 - 1.9 jsonlite_1.8.3 # # [39] genefilter_1.80.0 impute_1.72.0 # # [41] survival_3.4-0 iterators_1.0.14 # # [43] glue_1.6.2 gtable_0.3.1 # # [45] zlibbioc_1.44.0 XVector_0.38.0 # # [47] GetoptLong_1.0.5 DelayedArray_0.24.0 # # [49] shape_1.4.6 BiocGenerics_0.44.0 # # [51] abind_1.4-5 scales_1.2.1 # # [53] DBI_1.1.3edgeR_3.40.0 # # [55] Rcpp_1.0.9 xtable_1.8-4 # # [57] htmlTable_2.4.1 clue_0.3 - 62 # # [59] foreign_0.8 - 83 bit_4.0.4 # # [61] preprocessCore_1.60.0 Formula_1.2-4 # # [63] stats4_4.2.1 htmlwidgets_1.5.4 # # [65] httr_1.4.4 RColorBrewer_1.1-3 # # [67] farver_2.1.1 pkgconfig_2.0.3 # # [69] xml_3.99 - 0.12 nnet_7.3-18 # # [71] sass_0.4.2 deldir_1.0-6 # # [73] locfit_1.5 - 9.6 utf8_1.2.2 # # [75] dynamicTreeCut_1.63-1 labeling_0.4.2 # # [77] tidyselect_1.2.0 rlang_1.0.6 # # [79] reshape2_1.4.4 AnnotationDbi_1.60.0 # #[81] munsell_0.5.0 tools_4.2.1 ## [83] cachem_1.0.6 cli_3.4.1 ## [85] generics_0.1.3 RSQLite_2.2.18 ## [87] statnet.common_4.7.0 evaluate_0.17 ## [89] stringr_1.4.1 fastmap_1.1.0 ## [91] yaml_2.3.6 RhpcBLASctl_0.21-247.1 ## [93] knitr_1.40 bit64_4.0.5 ## [95] KEGGREST_1.38.0 nlme_3.1-160 ## [97] compiler_4.2.1 rstudioapi_0.14 ## [99] png_0.1-7 minet_3.56.0 ## [101] tibble_3.1.8 statmod_1.4.37 ## [103] bslib_0.4.0 stringi_1.7.8 ## [105] highr_0.9 lattice_0.20-45 ## [107] Matrix_1.5-1 vctrs_0.5.0 ## [109] pillar_1.8.1 lifecycle_1.0.3 ## [111] networkD3_0.4 BiocManager_1.30.19 ## [113] jquerylib_0.1.4 GlobalOptions_0.1.2 ## [115] data.table_1.14.4 bitops_1.0-7 ## [117] patchwork_1.1.2 GenomicRanges_1.50.0 ## [119] R6_2.5.1 latticeExtra_0.6-30 ## [121] bookdown_0.29 network_1.18.0 ## [123] gridExtra_2.3 IRanges_2.32.0 ## [125] codetools_0.2-18 assertthat_0.2.1 ## [127] SummarizedExperiment_1.28.0 rjson_0.2.21 ## [129] S4Vectors_0.36.0 GenomeInfoDbData_1.2.9 ## [131] intergraph_2.0-2 mgcv_1.8-41 ## [133] parallel_4.2.1 grid_4.2.1 ## [135] rpart_4.1.19 NetRep_1.2.4 ## [137] coda_0.19-4 rmarkdown_2.17 ## [139] MatrixGenerics_1.10.0 Cairo_1.6-0 ## [141] ggnewscale_0.4.8 Biobase_2.58.0 ## [143] WGCNA_1.71 base64enc_0.1-3 ## [145] interp_1.1-3

参考文献

费思,耶利米·J.,鲍里斯·海耶特,约书亚·t·塔登,伊拉里亚·莫格诺,杰米·威尔兹博斯基,纪尧姆·科塔雷尔,西蒙·卡西夫,詹姆斯·J·柯林斯和蒂莫西·s·加德纳。2007。“从表达谱纲要中大规模映射和验证大肠杆菌转录调控。”公共科学图书馆生物学5(1): 0054-0066。https://doi.org/10.1371/journal.pbio.0050008

Huynh-Thu, Vân Anh, Alexandre Irrthum, Louis Wehenkel, Pierre Geurts. 2010。“使用基于树的方法从表情数据推断调节网络。”《公共科学图书馆•综合》5(9): 1-10。https://doi.org/10.1371/journal.pone.0012776

金,J, F, D C杨,Y问孟,L,高罗,和G。2017。“PlantTFDB 4.0:朝着植物转录因子和调控相互作用的中心枢纽。”核酸测定45 (d1): d1040-d1045。https://doi.org/10.1093/nar/gkw982

Marbach, Daniel, James C. Costello, Robert Küffner, Nicole M. Vega, Robert J. Prill, Diogo M. Camacho, Kyle R. Allison,等。2012。“群体智慧,强大的基因网络推理。”自然方法9(8): 796-804。https://doi.org/10.1038/nmeth.2016

马戈林,亚当·A,伊利亚·内曼曼,卡蒂亚·巴索,克里斯·维金斯,古斯塔沃·斯托洛维茨基,里卡多·达拉·法维拉,安德里亚·卡利法诺。2006。ARACNE:在哺乳动物细胞环境中重建基因调节网络的算法。BMC生物信息学7(补充1):1-15。https://doi.org/10.1186/1471-2105-7-S1-S7