Skip to content

Commit

Permalink
Merge pull request #79 from pharmaverse/76_fix_adsl
Browse files Browse the repository at this point in the history
closes #76 fix adsl bugs
  • Loading branch information
rossfarrugia authored Oct 29, 2024
2 parents a2d5a2e + be51c82 commit d4a9cc6
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 35 deletions.
45 changes: 21 additions & 24 deletions adam/adsl.R
Original file line number Diff line number Diff line change
Expand Up @@ -9,39 +9,36 @@ library(tidyr)
library(lubridate)
library(stringr)

# Read in input SDTM data
# Read in input SDTM data
data("dm")
data("ex")

## ----r metacore, warning=FALSE, results='hold'--------------------------------
# Read in metacore object
# Read in metacore object
load(metacore_example("pilot_ADaM.rda"))
metacore <- metacore %>%
metacore <- metacore %>%
select_dataset("ADSL")

## ----r------------------------------------------------------------------------
metacore$ds_vars

## ----r, error=TRUE------------------------------------------------------------
build_from_derived(metacore, list(), predecessor_only = FALSE)

## ----r demographcis-----------------------------------------------------------
adsl_preds <- build_from_derived(metacore,
ds_list = list("dm" = dm),
## ----r demographics-----------------------------------------------------------
adsl_preds <- build_from_derived(metacore,
ds_list = list("dm" = dm),
predecessor_only = FALSE, keep = TRUE)
head(adsl_preds, n=10)

## ----r------------------------------------------------------------------------
get_control_term(metacore, variable = AGEGR1)

## ----r ct---------------------------------------------------------------------
adsl_ct <- adsl_preds %>%
create_cat_var(metacore, ref_var = AGE,
grp_var = AGEGR1, num_grp_var = AGEGR1N) %>%
create_var_from_codelist(metacore = metacore,
input_var = RACE,
out_var = RACEN) %>%
#Removing screen failures from ARM and TRT01P to match the define and FDA guidence
adsl_ct <- adsl_preds %>%
create_cat_var(metacore, ref_var = AGE,
grp_var = AGEGR1, num_grp_var = AGEGR1N) %>%
create_var_from_codelist(metacore = metacore,
input_var = RACE,
out_var = RACEN) %>%
# Removing screen failures from ARM and TRT01P to match the define and FDA guidance
mutate(ARM = if_else(ARM == "Screen Failure", NA_character_, ARM),
TRT01P = if_else(TRT01P == "Screen Failure", NA_character_, TRT01P)
)
Expand Down Expand Up @@ -81,15 +78,15 @@ adsl_raw <- adsl_ct %>%
mode = "last",
by_vars = exprs(STUDYID, USUBJID)
) %>%
derive_vars_dtm_to_dt(source_vars = exprs(TRTSDTM, TRTEDTM)) %>% #Convert Datetime variables to date
derive_var_trtdurd() %>%
derive_vars_dtm_to_dt(source_vars = exprs(TRTSDTM, TRTEDTM)) %>% # Convert Datetime variables to date
derive_var_trtdurd() %>%
derive_var_merged_exist_flag(
dataset_add = ex,
by_vars = exprs(STUDYID, USUBJID),
new_var = SAFFL,
condition = (EXDOSE > 0 | (EXDOSE == 0 & str_detect(EXTRT, "PLACEBO")))
) %>%
drop_unspec_vars(metacore) #This will drop any columns that aren't specified in the metacore object
) %>%
drop_unspec_vars(metacore) # This will drop any columns that aren't specified in the metacore object

head(adsl_raw, n=10)

Expand Down Expand Up @@ -130,13 +127,13 @@ adsl_raw <- adsl_raw %>%

## ----r checks, warning=FALSE, message=FALSE-----------------------------------

adsl_raw %>%
adsl_raw %>%
check_variables(metacore) %>% # Check all variables specified are present and no more
check_ct_data(metacore, na_acceptable = TRUE) %>% # Checks all variables with CT only contain values within the CT
order_cols(metacore) %>% # Orders the columns according to the spec
sort_by_key(metacore) %>% # Sorts the rows by the sort keys
sort_by_key(metacore) %>% # Sorts the rows by the sort keys
xportr_type(metacore, domain = "ADSL") %>% # Coerce variable type to match spec
xportr_length(metacore) %>% # Assigns SAS length from a variable level metadata
xportr_label(metacore) %>% # Assigns variable label from metacore specifications
xportr_length(metacore) %>% # Assigns SAS length from a variable level metadata
xportr_label(metacore) %>% # Assigns variable label from metacore specifications
xportr_df_label(metacore) # Assigns dataset label from metacore specifications

14 changes: 5 additions & 9 deletions adam/adsl.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,11 @@ metacore$ds_vars

## Start Building Derivations

The first derivation step we are going to do is to pull through all the columns that come directly from the SDTM datasets. You might know which datasets you are going to pull from directly already, but if you don't you can call `metatools::build_from_derived()` with just an empty list and the error will tell you which datasets you need to supply.

```{r, error=TRUE}
build_from_derived(metacore, list(), predecessor_only = FALSE)
```
The first derivation step we are going to do is to pull through all the columns that come directly from the SDTM datasets.

In this case all the columns come from `DM` so that is the only dataset we will pass into `metatools::build_from_derived()`. The resulting dataset has all the columns combined and any columns that needed renaming between SDTM and ADaM are renamed.

```{r demographcis}
```{r demographics}
adsl_preds <- build_from_derived(metacore,
ds_list = list("dm" = dm),
predecessor_only = FALSE, keep = TRUE)
Expand All @@ -90,7 +86,7 @@ adsl_ct <- adsl_preds %>%
create_var_from_codelist(metacore = metacore,
input_var = RACE,
out_var = RACEN) %>%
#Removing screen failures from ARM and TRT01P to match the define and FDA guidence
# Removing screen failures from ARM and TRT01P to match the define and FDA guidance
mutate(ARM = if_else(ARM == "Screen Failure", NA_character_, ARM),
TRT01P = if_else(TRT01P == "Screen Failure", NA_character_, TRT01P)
)
Expand Down Expand Up @@ -133,15 +129,15 @@ adsl_raw <- adsl_ct %>%
mode = "last",
by_vars = exprs(STUDYID, USUBJID)
) %>%
derive_vars_dtm_to_dt(source_vars = exprs(TRTSDTM, TRTEDTM)) %>% #Convert Datetime variables to date
derive_vars_dtm_to_dt(source_vars = exprs(TRTSDTM, TRTEDTM)) %>% # Convert Datetime variables to date
derive_var_trtdurd() %>%
derive_var_merged_exist_flag(
dataset_add = ex,
by_vars = exprs(STUDYID, USUBJID),
new_var = SAFFL,
condition = (EXDOSE > 0 | (EXDOSE == 0 & str_detect(EXTRT, "PLACEBO")))
) %>%
drop_unspec_vars(metacore) #This will drop any columns that aren't specified in the metacore object
drop_unspec_vars(metacore) # This will drop any columns that aren't specified in the metacore object
head(adsl_raw, n=10)
```
Expand Down
4 changes: 2 additions & 2 deletions adam/index.qmd
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
---
title: "ADAM"
---
title: "ADaM"
---

0 comments on commit d4a9cc6

Please sign in to comment.