tests/testthat/test-real-life.R

##### SMD -----------------
test_that("1. EBIACT-CAM - analysis (SMD)", {
  skip_on_cran()
  # daf <- read.table("clipboard", header = TRUE, sep = "", dec = ",")
  # meta::metacont(
  #   mean.e =.as_numeric(daf$mean_cases), mean.c =.as_numeric(daf$mean_controls),
  #   sd.e =.as_numeric(daf$sd_cases), sd.c =.as_numeric(daf$sd_controls),
  #   n.e =.as_numeric(daf$n_cases), n.c = .as_numeric(daf$n_controls), sm = "SMD"
  # )
  #
  # load_all()
  dat = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/dat-ebi-asd-SMD.xlsx")
  )
  resv1.0.11 = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/res-ebi-asd-SMD.xlsx")
  )

  # xdat = dat[dat$factor == "Cheuk (2011)_ACUP_Social-communication", ]
  # xdat$multiple_es[c(1, 2, 3, 5)] <- NA
  # View(subset(dat, factor == "Ostinelli (2025)_TMS ([repetitive] transcranial magnetic stimulation)_Combined ADHD symptoms (inattentive + hyperactive/impulsive)_Self-rated_At study endpoint (closest to 12 weeks)"))
  umb = umbrella(dat,
                 mult.level = TRUE, method.var = "REML",
                 r = 0.8, pre_post_cor = 0.5)

  resv1.1.0 = summary(umb)

  expect_true(
    max(abs(resv1.0.11$value - resv1.1.0$value)) < 0.20)

  res = data.frame(F1=resv1.0.11$Factor,
                   F2=resv1.1.0$Factor,
                   F1F2 = resv1.0.11$Factor == resv1.1.0$Factor,
                   v1 = .as_numeric(resv1.0.11$value),
                   v2 = .as_numeric(resv1.1.0$value),
                   v12 = resv1.0.11$value_CI,
                   v22 = resv1.1.0$value_CI,
                   v1v2 = abs(.as_numeric(resv1.1.0$value) -
                                .as_numeric(resv1.0.11$value)))
  res_pb = res[abs(res$v1v2) > 0.2, ]

  expect_true(mean(abs(.as_numeric(resv1.1.0$value) -
                         .as_numeric(resv1.0.11$value))) < 0.008)
  expect_true(mean(abs(.as_numeric(resv1.1.0$p_value) -
                         .as_numeric(resv1.0.11$p_value))) < 0.009)

  # View(res)
  # View(res_pb)

})
test_that("2. EBIACT-CAM - analysis (OR)", {
  skip_on_cran() # daf <- read.table("clipboard", header = TRUE, sep = "", dec = ",")
  # meta::metacont(
  #   mean.e =.as_numeric(daf$mean_cases), mean.c =.as_numeric(daf$mean_controls),
  #   sd.e =.as_numeric(daf$sd_cases), sd.c =.as_numeric(daf$sd_controls),
  #   n.e =.as_numeric(daf$n_cases), n.c = .as_numeric(daf$n_controls), sm = "SMD"
  # )
  #
  # load_all()
  dat = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/dat-ebi-asd-OR.xlsx")
  )
  resv1.0.11 = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/res-ebi-asd-OR.xlsx")
  )

  # xdat = dat[dat$factor == "Cheuk (2011)_ACUP_Social-communication", ]
  # xdat$multiple_es[c(1, 2, 3, 5)] <- NA
  # View(subset(dat, factor == "Ostinelli (2025)_TMS ([repetitive] transcranial magnetic stimulation)_Combined ADHD symptoms (inattentive + hyperactive/impulsive)_Self-rated_At study endpoint (closest to 12 weeks)"))
  umb = umbrella(dat,
                 max_asymmetry = 50,
                 mult.level = TRUE, method.var = "PM",
                 r = 0.8, pre_post_cor = 0.5)

  resv1.1.0 = summary(umb)

  res = data.frame(F1=resv1.0.11$Factor,
                   F2=resv1.1.0$Factor,
                   F1F2 = resv1.0.11$Factor == resv1.1.0$Factor,
                   v1 = .as_numeric(resv1.0.11$value),
                   v2 = .as_numeric(resv1.1.0$value),
                   v12 = resv1.0.11$value_CI,
                   v22 = resv1.1.0$value_CI,
                   v1v2 = abs(.as_numeric(resv1.1.0$value) -
                                .as_numeric(resv1.0.11$value)))
  res_pb = res[abs(res$v1v2) > 0.05, ]
  # View(res)
  # View(res_pb)
  expect_true(mean(abs(.as_numeric(resv1.1.0$value) -
                         .as_numeric(resv1.0.11$value))) < 0.01)
  expect_true(mean(abs(.as_numeric(resv1.1.0$p_value) -
                         .as_numeric(resv1.0.11$p_value))) < 0.01)


})
test_that("3. EBIACT-CAM - GRADE (SMD)", {
  skip_on_cran()
  dat = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/dat-ebi-asd-SMD.xlsx")
  )
  dat$Factor = dat$factor
  res_GRADE = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/res-ebi-asd-GRADE.xlsx")
  )
  res_GRADE = subset(res_GRADE, !measure %in% c("OR", "RR"))

  dat_en = merge(dat, res_GRADE[, c("Factor", "indirectness")],
                 by = "Factor")

  dat_en$rob1_report = tolower(gsub(" risk", "", dat_en$RoB_Reporting))
  dat_en$rob1_report[dat_en$rob1_report == "unclear (not indicated)"] <- "unclear"

  # view.errors.umbrella(dat_en, "message")
  # View(view.errors.umbrella(dat_en))

  # dat_en2 = subset(dat_en, factor == "Siafis (child) (2022)_PUFA_Disruptive behaviors")
  # umb= umbrella(dat_en2,
  umb= umbrella(dat_en,
                mult.level = TRUE, method.var = "REML",
                r = 0.8, pre_post_cor = 0.5)

  res_grade = add.evidence(umb, criteria = "GRADE",
                           eq_range_or = c(0.8, 1.25),
                           eq_range_g = c(-0.10, 0.10))
  resv1.1.0 = summary(res_grade)

  resv1.1.0 = resv1.1.0[order(resv1.1.0$Factor), ]
  res_GRADE = res_GRADE[order(res_GRADE$Factor), ]
  res_GRADE$GRADE[res_GRADE$GRADE == "Very low"] <- "Very weak"
  res_GRADE$GRADE[res_GRADE$GRADE == "Low"] <- "Weak"

  resG = res_GRADE
  comp = data.frame( as.character(resv1.1.0$Factor) == as.character(resG$Factor),
                     as.character(resv1.1.0$Factor),
                     newV = as.character(resv1.1.0$Class),
                     as.character(resG$Factor),
                     Ancien = as.character(resG$GRADE),
                     comparaison = resv1.1.0$Class == resG$GRADE,
                     RoB = resG$down_rob,
                     Het = resG$down_het,
                     Indi = resG$down_ind,
                     Imp = resG$down_imp,
                     Pub = resG$down_pubbias,
                     Pub = resG$down_pubbias,
                     stud = resG$n_studies,
                     hetA = resG$down_hetA,
                     hetB = resG$down_hetB,
                     CI_v1 = resv1.1.0$eG_CI,
                     PI_v1 = resv1.1.0$PI_eG,
                     CI_v2 = resG$eG_CI,
                     PI_v2 = resG$PI_eG
  )

  # View(comp[which(!comp$comparaison), ])
  expect_true(nrow(comp[which(!comp$comparaison), ]) / nrow(comp) < 0.10)

})
test_that("4. EBIACT-CAM - GRADE (OR)", {
  skip_on_cran()
  dat = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/dat-ebi-asd-OR.xlsx")
  )
  dat$Factor = dat$factor
  res_GRADE = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/res-ebi-asd-GRADE.xlsx")
  )
  res_GRADE = subset(res_GRADE, measure %in% c("OR", "RR"))

  dat_en = merge(dat, res_GRADE[, c("Factor", "indirectness")],
                 by = "Factor")

  dat_en$rob1_report = tolower(gsub(" risk", "", dat_en$RoB_Reporting))
  dat_en$rob1_report[dat_en$rob1_report == "unclear (not indicated)"] <- "unclear"

  # view.errors.umbrella(dat_en, "message")
  # View(view.errors.umbrella(dat_en))

  # dat_en2 = subset(dat_en, factor == "Siafis (child) (2022)_NAC_Restricted/repetitive behaviors")
  # umb= umbrella(dat_en2,
  umb= umbrella(dat_en,
                max_asymmetry = 45,
                mult.level = TRUE, method.var = "PM",
                r = 0.8, pre_post_cor = 0.5)

  res_grade = add.evidence(umb, criteria = "GRADE",
                           eq_range_or = c(0.8, 1.25),
                           eq_range_g = c(-0.10, 0.10))
  resv1.1.0 = summary(res_grade)

  resv1.1.0 = resv1.1.0[order(resv1.1.0$Factor), ]
  res_GRADE = res_GRADE[order(res_GRADE$Factor), ]
  res_GRADE$GRADE[res_GRADE$GRADE == "Very low"] <- "Very weak"
  res_GRADE$GRADE[res_GRADE$GRADE == "Low"] <- "Weak"

  resG = res_GRADE
  comp = data.frame( as.character(resv1.1.0$Factor) == as.character(resG$Factor),
                     as.character(resv1.1.0$Factor),
                     newV = as.character(resv1.1.0$Class),
                     as.character(resG$Factor),
                     Ancien = as.character(resG$GRADE),
                     comparaison = resv1.1.0$Class == resG$GRADE,
                     RoB = resG$down_rob,
                     Het = resG$down_het,
                     Indi = resG$down_ind,
                     Imp = resG$down_imp,
                     Pub = resG$down_pubbias,
                     Pub = resG$down_pubbias,
                     stud = resG$n_studies,
                     hetA = resG$down_hetA,
                     hetB = resG$down_hetB,
                     CI_v1 = resv1.1.0$eG_CI,
                     PI_v1 = resv1.1.0$PI_eG,
                     CI_v2 = resG$eG_CI,
                     PI_v2 = resG$PI_eG,
                     resG$rob
  )


  # View(comp[which(!comp$comparaison), ])
  expect_true(nrow(comp[which(!comp$comparaison), ]) / nrow(comp) < 0.10)
})

test_that("EBI-ADHD-ERRORS", {
  skip_on_cran()
  dat = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/ebi-adhd-errors.xlsx")
  )
  res = umbrella(dat)

  expect_true(nrow(summary(res)) == 4)
})


test_that("3. EBI-ADHD  - analysis (SMD)", {
  skip_on_cran()
#
  # daf <- read.table("clipboard", header = TRUE, sep = "", dec = ",")
  # meta::metacont(
  #   mean.e =.as_numeric(daf$mean_cases), mean.c =.as_numeric(daf$mean_controls),
  #   sd.e =.as_numeric(daf$sd_cases), sd.c =.as_numeric(daf$sd_controls),
  #   n.e =.as_numeric(daf$n_cases), n.c = .as_numeric(daf$n_controls), sm = "SMD"
  # )

  # meta::metagen(TE = daf$value, lower = daf$ci_lo, upper = daf$ci_up)
  # meta::metacont(
  #   mean.e =daf$mean_exp, mean.c =daf$mean_controls,
  #   sd.e =daf$sd_exp, sd.c =daf$sd_controls,
  #   n.e =daf$n_cases, n.c = daf$n_controls, sm = "SMD"
  # )


  # load_all()
  dat = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/dat-ebi-adhd-SMD.xlsx")
  )
  resv1.0.11 = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/res-ebi-adhd-SMD.xlsx")
  )

  # datS = dat[dat$factor == "Storebo (2019)_Social skill training_Combined ADHD symptoms (inattentive + hyperactive/impulsive)_Teacher-rated_At follow-up (closest to 26 weeks)", ]
  # View(subset(dat, factor == "Ostinelli (2025)_TMS ([repetitive] transcranial magnetic stimulation)_Combined ADHD symptoms (inattentive + hyperactive/impulsive)_Self-rated_At study endpoint (closest to 12 weeks)"))
  umb = umbrella(dat,
           mult.level = TRUE, method.var = "REML",
           r = 0.8, pre_post_cor = 0.5)

  resv1.1.0 = summary(umb)


  res = data.frame(F1=resv1.0.11$Factor,
              F2=resv1.1.0$Factor,
              F1F2 = resv1.0.11$Factor == resv1.1.0$Factor,
              v1 = .as_numeric(resv1.0.11$value),
              v2 = .as_numeric(resv1.1.0$value),
              v12 = resv1.0.11$value_CI,
              v22 = resv1.1.0$value_CI,
              v1v2 = abs(.as_numeric(resv1.1.0$value) -
                    .as_numeric(resv1.0.11$value)))
  res_pb = res[abs(res$v1v2) > 0.1, ]
  # View(res)
  # View(res_pb)

  expect_true(mean(abs(.as_numeric(resv1.1.0$value) -
                         .as_numeric(resv1.0.11$value))) < 0.005)
  expect_true(mean(abs(.as_numeric(resv1.1.0$p_value) -
                         .as_numeric(resv1.0.11$p_value))) < 0.005)

  })

test_that("4. EBI-ADHD - analysis (OR)", {
  skip_on_cran()
  # daf <- read.table("clipboard", header = TRUE, sep = "", dec = ",")
  # meta::metacont(
  #   mean.e =.as_numeric(daf$mean_cases), mean.c =.as_numeric(daf$mean_controls),
  #   sd.e =.as_numeric(daf$sd_cases), sd.c =.as_numeric(daf$sd_controls),
  #   n.e =.as_numeric(daf$n_cases), n.c = .as_numeric(daf$n_controls), sm = "SMD"
  # )
  #
  # load_all()
  dat = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/dat-ebi-adhd-OR.xlsx")
  )
  resv1.0.11 = readxl::read_excel(
    paste0("D:/drive_gmail/Recherche/metaumbrella/",
           "data-raw/test-raw/res-ebi-adhd-OR.xlsx")
  )

  # xdat = dat[dat$factor == "Cheuk (2011)_ACUP_Social-communication", ]
  # xdat$multiple_es[c(1, 2, 3, 5)] <- NA
  # View(subset(dat, factor == "Ostinelli (2025)_TMS ([repetitive] transcranial magnetic stimulation)_Combined ADHD symptoms (inattentive + hyperactive/impulsive)_Self-rated_At study endpoint (closest to 12 weeks)"))
  umb = umbrella(dat,
                 max_asymmetry = 20,
                 mult.level = TRUE, method.var = "PM",
                 r = 0.8, pre_post_cor = 0.5)

  resv1.1.0 = summary(umb)

  res = data.frame(F1=resv1.0.11$Factor,
                   F2=resv1.1.0$Factor,
                   F1F2 = resv1.0.11$Factor == resv1.1.0$Factor,
                   v1 = .as_numeric(resv1.0.11$value),
                   v2 = .as_numeric(resv1.1.0$value),
                   v12 = resv1.0.11$value_CI,
                   v22 = resv1.1.0$value_CI,
                   v1v2 = abs(.as_numeric(resv1.1.0$value) -
                                .as_numeric(resv1.0.11$value)))
  res_pb = res[abs(res$v1v2) > 0.05, ]

  # View(res)
  # View(res_pb)

  expect_true(mean(abs(.as_numeric(resv1.1.0$value) -
                         .as_numeric(resv1.0.11$value))) < 0.01)
  expect_true(mean(abs(.as_numeric(resv1.1.0$p_value) -
                         .as_numeric(resv1.0.11$p_value))) < 0.01)

})

test_that("means alone wth / wthout n_cases", {
  skip_on_cran()
  dfwoN<- subset(df.SMD, select=-c(n_cases, n_controls,
                                   value,
                                   ci_lo, ci_up, se))
  expect_error(umbrella(dfwoN, verbose=FALSE, seed = 4321))
})

Try the metaumbrella package in your browser

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

metaumbrella documentation built on April 12, 2025, 1:32 a.m.