pipeline design

Overview of pipeline from raw data to models.

objective

Goal is to produce a table in the format:

outcome study arm observations observation info study-level descriptors
outcome unique identifier for study unique identifier for arm mean, sd, counts, etc. timepoint, scale, etc. condition, study design (parallel/crossover), antyhing we need to filter by, subgroups, etc.

These data will contain everything that is included and excluded from the model, so that we may report on the systematic review overall, as well as the model results.

Column names need to be interpretable by everyone in the group, so that others can explore the data.

Information required for the review

In some cases, there is a column or columns that uniquely identify/provide the required data. In other, more challenging cases, we need to extract information from a substring of the observation header (column header).

tar_read(e_variables)
Variable Description Covidence
model

study

Unique identifier for study; comments contains title, study identifier is first author and year

Study Identifier + Comments

intervention

Name of intervention drug: e.g., Desvenlafaxin

Intervention Name

filter

timepoint

Short-term follow up, baseline, long-term follow up, post-intervention; atm the other time points are filtered out and just postintervention is going through to the anlaysis

obs header

scale

We searched the column headers for names of scales (such as vas)

obs header

type

Type of intervention: e.g., antidepressant, placebo, CBT

Intervention Type

design

crossover or parallel; for now we filter parallel not crossover

Group

subgroup

condition

Condition of pain in the study, such as lower back pain. NB condition can be tagged in multiple ways, see condition classifier gs. In particular prioritise general_grouping as the condition variable. temporomandibular disorder

Chronic pain condition(s)

class

Class of antidepressant: e.g. SNRI; this variable only applies to antidepressant

Intervention Class

main_aim

Primary aim of the original study: e.g., pain, mood, etc.

Main aim (Pain, mood, quality of life etc)

Variable column indicates what the cleaned output data column headers are, the Covidence column indicates what the column is labelled as in the raw export.

raw data

# all current raw files read into the pipeline 
tar_manifest(names = starts_with("r_"), fields = c(name, command)) %>%
  gt() %>% hpp_tab(vertical_divider = "name")
Loading required package: dontpanic
name command
r_h_outcome_withdrawal suppressWarnings(suppressMessages(read_csv("data/outcomes-2021-07-12/Withdrawal.csv")))
r_h_outcome_physical suppressWarnings(suppressMessages(read_csv("data/outcomes-2021-07-12/Physical function.csv")))
r_h_outcome_adverse suppressWarnings(suppressMessages(read_csv("data/outcomes-2021-07-12/Adverse Events.csv")))
r_h_outcome_mood suppressWarnings(suppressMessages(read_csv("data/outcomes-2021-07-12/Mood.csv"), \n ))
r_h_outcome_pain_int suppressWarnings(suppressMessages(read_csv("data/outcomes-2021-07-12/Pain intensity.csv")))
r_h_outcome_pain_sub suppressWarnings(suppressMessages(read_csv("data/outcomes-2021-07-12/Substantial pain relief.csv")))
r_h_outcome_qol suppressWarnings(suppressMessages(read_csv("data/outcomes-2021-07-12/Quality of life.csv")))
r_h_outcome_sleep suppressWarnings(suppressMessages(read_csv("data/outcomes-2021-07-12/Sleep.csv")))
r_scales read_rds("data/scales-2021-07-14_00:04:08.rds")
r_covidence suppressWarnings(suppressMessages(read_csv("data/review_91309_extracted_data_csv_20210712234312.csv")))
r_variables read_csv("data/variables-2021-07-12_16:37:56.csv")
r_condition read_csv("data/conditions-2021-07-12_16:37:56.csv")
r_h_outcome_pain_mod suppressWarnings(suppressMessages(read_csv("data/outcomes-2021-07-12/Moderate pain relief.csv")))
r_h_outcome_obs list(mood = r_h_outcome_mood, pain_int = r_h_outcome_pain_int, \n adverse = r_h_outcome_adverse, physical = r_h_outcome_physical, \n qol = r_h_outcome_qol, sleep = r_h_outcome_sleep, pain_mod = w_h_outcome_pain_mod, \n withdrawal = r_h_outcome_withdrawal, pain_sub = r_h_outcome_pain_sub)

model input data

Observations are drawn from the raw files provided by Hollie, and study-level information from the raw Covidence export, as well as column headers in the observations.

To do this we will join by matching the study and arm columns in two tables.

tar_read(p_metapar)
# A tibble: 1 × 7
  study      arm       type     design condition    class   main_aim  
  <chr>      <chr>     <chr>    <chr>  <chr>        <chr>   <chr>     
1 unique st… unique a… Interve… Group  Chronic pai… Interv… Main aim …

With outcome-level observational data:

tar_read(p_obs)
# A tibble: 1 × 5
  outcome    study      arm      obs             obs_info             
  <chr>      <chr>      <chr>    <chr>           <chr>                
1 mood, pai… unique st… unique … columns with m… "information extract…

model parameters

We’ll construct a dataframe to run models over that contains all combinations of unique subgroups we wish to run network meta-analyses over.

Ideally this will be implemented in a shiny app.