knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
library(shinySbm)
This vignette illustrates the use of the {shinySbm} package which is a shiny based graphical user interface (GUI) of the {sbm} package. These packages are made to apply Stochastic Block Models on network dataset. This dataset can be in two format: edges list and connection matrix. First we will see how to use the shiny application in the package. And in the second part we will see how to use the external functions as plotSbm()
and visSbm()
.
shinySbmApp()
shinySbmApp() function contain a {shiny} application which help to use and help to learn the basics of {sbm} package. Users can import their data inside it and apply Stochastic Block Models. They can transform network data from edges list to connection matrix. Once the SBM ran, users can explore the different number of groups selected by {sbm}. They can get models outputs as: table of parameters, plots, interactive network visuals, automatic reports (pdf or html) (French or English), R script to repeat the analysis outside of the app and tables of block attributions.
The following code show how to run shinySbmApp()
from your R console.
library(shinySbm) shinySbmApp()
When this is done your browser should load this page. From this page you can import your dataset by clicking on the Browse button in embedded in red.
knitr::include_graphics("images/shinysbmapp1.png")
When you load it, the install helper (1) can show advice to adjust the importation. For example here, we imported this set as an Adjacency or Incidence matrix but as we can see in (2), we imported an Edges list. So, we need to change the nature of imported data.
knitr::include_graphics("images/shinysbmapp2.png")
When there is no warnings any more, we can then press the button Matrix Builder, which will extract essential information from your dataset. If your used an edges list, an adjacency matrix will be built.
knitr::include_graphics("images/shinysbmapp3.png")
Once the matrix is correctly imported. You should go to the SBM application (1) page and then click on the Run SBM button (2). When the calculation are done you will see a small summary from the current model. The small module Block settings allows you by clicking on the graph (or numeric input) to select another block number and change the current model. You can also tune your SBM model from this page with the More Settings button.
knitr::include_graphics("images/shinysbmapp4.png")
Then it's time to explore the visuals and outputs in the other pages.
The following codes are built by the shinySbmApp
application, page Report with the R code option. The next chunk is only made of {sbm} package functions.
# Loading Dataset myNetworkMatrix <- fungusTreeNetwork$fungus_tree # Fiting SBM mySbmModel <- estimateBipartiteSBM(netMat = myNetworkMatrix, model = 'bernoulli', estimOptions = list(plot = F, verbosity = 0))
See this vignette to learn more of {sbm}
vignette("SBM_fungus_tree_network")
The function plotSbm
is a convenient function that can take as arguments: matrices or objects produced by estimateBipartiteSBM()
and estimateSimpleSBM()
of {sbm}. It then plot them in a nice matrix of tiles, that can be ordered by blocks or not, transposed etc...
plotSbm( mySbmModel, ordered = TRUE, transpose = TRUE, labels = c(row = 'Fungus', col = 'Trees'), plotOptions = list( showLegend = FALSE, showPredictions = TRUE ))
The function visSbm
is a convenient function that can take as arguments objects produced by estimateBipartiteSBM()
and estimateSimpleSBM()
of {sbm} (it doesn't take matrices). It make a {visNetwork} type object that represent the network condensed by blocks.
visSbm( x = mySbmModel, labels = c(row = 'Fungus', col = 'Trees'), directed = TRUE, settings = list( edge_threshold = 'default', arrows = TRUE, arrow_start = 'row' ))
Thanks for your reading, if any question remain, contact us: shiny.sbm.dev@gmail.com
Chiquet J, Donnet S, Barbillon P (2023). sbm: Stochastic Blockmodels. R package version 0.4.5, https://CRAN.R-project.org/package=sbm.
Vacher, Corinne, Dominique Piou, and Marie-Laure Desprez-Loustau. "Architecture of an antagonistic tree/fungus network: the asymmetric influence of past evolutionary history." PloS one 3.3 (2008): e1740.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.