inst/doc/basic_workflow.R

## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----library, warning=FALSE, message=FALSE------------------------------------
library(vigicaen)
library(rlang)
library(dplyr)

## ----named_lists--------------------------------------------------------------
# drug selection
d_sel <-
  list(
    nivolumab   = "nivolumab",
    ipilimumab  = "ipilimumab",
    nivo_or_ipi = c("nivolumab", "ipilimumab")
  )

# adverse drug reaction selection

a_sel <- 
  list(
    colitis     = "Colitis",
    pneumonitis = "Pneumonitis"
  )

## ----table_loading, warning=FALSE, message=FALSE------------------------------
demo <- demo_
drug <- drug_

mp <- mp_

## ----drug_sel-----------------------------------------------------------------
d_sel <- # drug selection
  list2(
    nivolumab = "nivolumab"
  )

d_sel

## ----verbose_with_get_drecno--------------------------------------------------
get_drecno(
  d_sel = d_sel,
  mp = mp_,
  verbose = TRUE
  )

## ----d_drecno-----------------------------------------------------------------
d_drecno <-
  get_drecno(
    d_sel = d_sel,
    mp = mp_,
    verbose = FALSE
    )

## ----add_drug-----------------------------------------------------------------
demo <- 
  add_drug(
    .data = demo,
    d_code = d_drecno,
    drug_data = drug)
demo

## ----results='hide'-----------------------------------------------------------
demo <- 
  demo |> 
  add_drug(
    d_code = d_drecno,
    drug_data = drug
  )

## ----check_dm-----------------------------------------------------------------
check_dm(demo, "nivolumab")

## ----atc_drecno---------------------------------------------------------------
atc_sel <-
  list2(l03 = "L03")

atc_drecno <- 
  get_atc_code(
    atc_sel = atc_sel,
    mp = mp,
    thg_data = thg_
    )

## ----str_atc_drecno-----------------------------------------------------------
str(atc_drecno)

## ----add_atc------------------------------------------------------------------
demo |> 
  add_drug(
    d_code = atc_drecno,
    drug_data = drug
  )

## ----add_drug_repbasis--------------------------------------------------------
demo |> 
  add_drug(
    d_code = d_drecno,
    drug_data = drug,
    repbasis = "sci"
  ) |> 
  check_dm("nivolumab")

# suspected only

demo |> 
  add_drug(
    d_code = d_drecno,
    drug_data = drug,
    repbasis = "s"
  ) |> 
  check_dm("nivolumab")

## ----many_drugs---------------------------------------------------------------
d_sel <- 
  list2(
    nivolumab = "nivolumab",
    pembrolizumab = "pembrolizumab"
  )

d_drecno <-
  d_sel |> 
  get_drecno(mp = mp)

demo <- 
  demo |> 
  add_drug(
    d_drecno,
    drug_data = drug
  )

demo |> 
  check_dm(c("nivolumab", "pembrolizumab"))

## ----d_groups-----------------------------------------------------------------
d_sel <- 
  list2(
    analgesics = c("paracetamol", "tramadol"),
    ici = c("nivolumab", "pembrolizumab")
  )

d_drecno <-
  d_sel |> 
  get_drecno(mp = mp,
             allow_combination = FALSE)

demo <- 
  demo |> 
  add_drug(
    d_drecno,
    drug_data = drug
  )

demo |> 
  check_dm(names(d_sel))

## ----load_adr_table-----------------------------------------------------------
adr <- adr_
meddra <- meddra_

## ----a_sel_pt-----------------------------------------------------------------
a_sel_pt <-
  list2(
    a_colitis = c(
      "Colitis",
      "Autoimmune colitis",
      "Colitis microscopic",
      "Diarrhoea",
      "Diarrhoea haemorrhagic",
      "Duodenitis",
      "Enteritis",
      "Enterocolitis",
      "Enterocolitis haemorrhagic",
      "Ulcerative gastritis"
    )
  )

## ----get_llt_soc--------------------------------------------------------------
a_llt <- 
  get_llt_soc(
    term_sel = a_sel_pt,
    term_level = "pt",
    meddra = meddra_
    )

a_llt

## ----add_adr------------------------------------------------------------------
demo <- 
  add_adr(
    .data = demo,
    a_code = a_llt,
    adr_data = adr)

## ----check_dm_adr-------------------------------------------------------------
demo |> 
  check_dm("a_colitis")

## ----age----------------------------------------------------------------------
demo <-
  demo |>
  mutate(
    age = cut(as.integer(AgeGroup),
              breaks = c(0,4,5,6,7,8),
              include.lowest = TRUE, right = TRUE,
              labels = c("<18", "18-45","45-64", "65-74", "75+"))
  )

## ----sex----------------------------------------------------------------------
demo <-
  demo |> 
  mutate(
    sex = ifelse(Gender == "1", 1,
                 ifelse(Gender == "2", 2, NA_real_)
                 )
    )

## ----sex_casewhen-------------------------------------------------------------
demo <- 
  demo |> 
  mutate(
    sex = case_when(Gender == "1" ~ 1,
                    Gender == "2" ~ 2,
                    TRUE ~ NA_real_)
    )

## ----serious_death------------------------------------------------------------
# ---- Serious ---- ####

out <- out_

demo <- 
  demo |> 
  mutate(
    serious = 
      ifelse(
        UMCReportId %in% out$UMCReportId,
        UMCReportId %in% 
          (out |> 
          filter(Serious == "Y") |> 
          pull(UMCReportId)
          ),
        NA)
    )

# ---- Death + outcome availability ---- ####

demo <- 
  demo |> 
  mutate(death = 
           ifelse(UMCReportId %in% out$UMCReportId,
                  UMCReportId %in% 
                    (out |> 
                    filter(Seriousness == "1") |> 
                    pull(UMCReportId)
                    ),
                  NA)
         )


## ----compute_dispro-----------------------------------------------------------
demo |> 
  compute_dispro(
    y = "a_colitis",
    x = "nivolumab"
    )

## ----mod----------------------------------------------------------------------
mod <- glm(a_colitis ~ nivolumab, 
           data = demo, family = "binomial")

summary(mod)

## -----------------------------------------------------------------------------
summary(mod)$coefficients

exp(summary(mod)$coefficients[2, 1])

## ----mod_covar----------------------------------------------------------------
mod2 <- glm(a_colitis ~ nivolumab + sex + age,
            data = demo,
            family = "binomial")

summary(mod2)

## ----compute_or_mod-----------------------------------------------------------
mod_or <- 
  compute_or_mod(
    summary(mod2)$coefficients,
    estimate = Estimate,
    std_er = Std..Error
    )

mod_or

Try the vigicaen package in your browser

Any scripts or data that you put into this service are public.

vigicaen documentation built on April 3, 2025, 8:55 p.m.