MetaInsight

An R Shiny app for network meta-analysis

Simon Smart

14th November 2025

Network meta-analysis can help determine the ‘best’ treatment option

Network of six treatments where there are different numbers of trials that compared each pair

Line graph showing the output of an analysis where each treatment is ranked by outcome

Complex meta-analyses require extensive statistical and programming knowledge

  • BUGSnet, bnma, coda, gemtc, meta, metafor, netmeta
  • Some dependent on JAGS which may be hard to install
  • Require data in different formats and use different terminology

Shiny removes barriers for accessing cutting-edge methods

  • MetaInsight was launched in 2019 to make NMA more accessible
  • Originally developed by statisticians, but increasingly in collaboration with developers

Line graph showing cumulative citations of Owen 2019 since 2020, now a total of 259

Screenshot of the existing app

The ‘black box’ nature of apps can limit uptake

  • {shinyscholar} was forked from {wallace} to make development of reproducible apps easier
  • Convert core functionality into functions and package
  • App becomes an interface to the functions, dealing with interactivity

Hex logo of shinyscholar showing a black and white mortar cap

Screenshot of the updated app

Reproducibility relies on a strict structure

  • Each module has an id made up of the component and module summary_network
  • Each calls a synonymous function summary_network()
  • Input values are stored in common$meta$summary_network$<input id>
  • Values are knitted into an .Rmd chunk and combined to create a .qmd

Reproducibility relies on a strict structure

```{asis, echo = {{summary_network_knit}, eval = {{summary_network_knit}}, include = {{summary_network_knit}}}}
### Display the networks for the original data and data with excluded studies.
{r,  results = 'asis'}
```
```{r, echo = {{summary_network_knit}, include = {{summary_network_knit}}}}
summary_network(frequentist_all, 
                bugsnet_all, 
                {{summary_network_style}}, 
                {{summary_network_label_all}}, 
                "Network plot of all studies")
```


### Display the networks for the original data and data with excluded studies.

```{r, results = 'asis'}
summary_network(frequentist_all, 
                bugsnet_all, 
                "netplot", 
                1, 
                "Network plot of all studies")
```

Reproducibility also enables improved reporting

  • Use as the basis for writing a publication
  • Rendered in the app to produce an html report

Screenshot of the an html report produced by the app

Incorporating risk of bias scores improves sensitivity analyses

  • MetaInsight enables sensitivity analyses by excluding studies
  • During reviews, risk of bias information can be collected e.g.
    • Randomisation, blinding, missing data
  • Scores can guide sensitivity analyses

Integration with CINeMA helps to evaluate confidence in findings

Cinema logo

  • Uses risk of bias scores for studies to evaluate evidence for treatments

Network plot as in the first slide but with the nodes between each treatment pair coloured according to the risk of bias

Acknowledgments

  • Naomi Bradbury, Ryan Field, Tom Morris, Clareece Nevill, Janion Nevill, Alex Sutton, Nicola Cooper
  • Wellcome (via Chan Zuckerburg Initiative)
  • NIHR
  • Email, Github, Bluesky
  • More apps

CRSU logo Wellcome logo NIHR logo