Learn R Programming

peermodels

The peermodels package allows easy access to models hosted on the Peer Models Network (PMN). The Peer Models Network is an initiative to make statistical models that inform healthcare decisions available online, along with educational videos and other resources to help understand how they work. Learn more about PMN by visiting www.peermodelsnetwork.com and the PMN Model Repository page at models.peermodelsnetwork.com.

This package allows users to directly access models on the cloud and interact with them without worrying about setting up the required software environment and accessing high-performance computing power.

Installing the package

install.packages('remotes')
remotes::install_github('resplab/peermodels')

Workflow

The peermodels package allows you to connect to a model hosted on PMN cloud, fetch its input parameters, change them as needed, and submit queries to the model. You can find a list of currently available models at the PMN Model Repository page. To access a model, you would need to request an API Key. Please contact us to request an API key.

The connect_to_model function, checks access to the model. get_default_input() returns the default input of the model, which allows the user to become familiarized with the structure of the input. The parameters can then be changed as required and passed to the model_run() function, which runs the model on the PMN cloud and returns the response. If the model is producing graphical output, the draw_plots() function can be used to fetch the produced graphics from the PMN cloud.

The code snippet below provides an example of a how to call a prediction model, in this case The Acute COPD Exacerbation Tool (ACCEPT):

> library(peermodels)
> input <- get_default_input("accept", api_key = "[YOUR_API_KEY]")
Selected model is accept
Calling server at https://prism.peermodelsnetwork.com/route/accept/run
> 
> input
     ID male age smoker oxygen statin LAMA LABA ICS FEV1 BMI SGRQ LastYrExacCount LastYrSevExacCount randomized_azithromycin randomized_statin
1 10001    1  70      1      1      1    1    1   1   33  25   50               2                  1                       0                 0
  randomized_LAMA randomized_LABA randomized_ICS random_sampling_N random_distribution_iteration calculate_CIs
1               0               0              0              1000                         20000          TRUE

The input shows that the default COPD patient is a 70 years old male who is a current smoker, has received oxygen therapy in the past year, is currently on LAMAs, LABAs, ICS, has a lung function of 33% and an SGRQ score of 50. The patient has has 2 exacerbations in the past year, one of which has been severe. Now imagine we want to run the model for a female patient, who is 55 years old, has an FEV1 of 67%, and is only receiving LAMA and LABA, but is otherwise similar to the previous patient.

> input$male <- 0
> input$age  <- 55
> input$FEV1 <- 67
> input$oxygen <- 0
> input$statin <- 0
> input$ICS <- 0
> 
> 
> results <- model_run(input, "accept", api_key = "[YOUR_API_KEY")
Selected model is accept
Calling server at https://prism.peermodelsnetwork.com/route/accept/run

Now we can explore the predictions of the model:

> results$predicted_exac_probability
[1] 0.7656
> results$predicted_exac_rate
[1] 1.774
> results$predicted_severe_exac_probability
[1] 0.215
> results$predicted_severe_exac_rate
[1] 0.3638

More info and examples on how to access different models on R as well as other platforms can be found on the PMN API User Guide page.

Copy Link

Version

Install

install.packages('peermodels')

Monthly Downloads

232

Version

0.10.3

License

GPL-3

Maintainer

Amin Adibi

Last Published

February 25th, 2022

Functions in peermodels (0.10.3)

model_run

Executes PRISM model
default_server

Returns the default server path for PRISM server
draw_plots

draws plots generated by the model in R Session
handshake

checks to see if a model is available on the cloud server
reset_session

resets session info and clears stored environmental variables such as API keys and server address.
prism_call

Generic call to PRISM server
get_async_results

Retrieves async results
get_default_input

Returns default PRISM model input
get_plots

Retrieves plots generated by the model in R Session
get_session

returns session info