#----------------------------------
# new chmi.04_phen.argument_fold.R
#----------------------------------
## all ratio are calculated by formula: log10(mfi_2/mfi_C-1) = log10(mfi_2) - log10(mfi_C-1)
# fold_change for 'ab_data'-------------------------------------------------------------------------
chmi.04_phen.argument_fc_ab <- function(dat)
{
### list of variables to 'arrange()' and 'group_by'
fc_vars <- c(
chmi.l_traits.id()[['traits']][1],
chmi.l_traits.ab()[['complete_tr']][c(1, 13, 15)])
## c('original_id', 't_igg', 'antigen', t2_point')
### update 'dat' to do 'fold_change'
dat <- dat %>%
arrange_at(vars(all_of(fc_vars)), .by_group = TRUE) %>%
group_by_at(vars(fc_vars[c(1:3)])) %>%
group_nest() %>%
mutate(fc_data = map(data,
~ mutate(.x,
fc_mfic_c1 = as.numeric(
ifelse(t2_point[[1]] != 'C_1', 'NA', mfi_corr[1])),
fc_mfic = as.numeric(
ifelse(!is.na(fc_mfic_c1), mfi_corr / fc_mfic_c1, 'NA')),
fc_log10_mfi = as.numeric(
ifelse(!is.na(fc_mfic_c1), log10(fc_mfic), 'NA'))))) %>%
select(-data) %>%
unnest(cols = c(fc_data))
### return
return(dat)
}
# ratio for 'pbmc_data'-----------------------------------------------------------------------------
chmi.04_phen.argument_fc_pbmc <- function(dat)
{
### list of variables to 'arrange()' and 'group_by'
fc_vars <- c(
chmi.l_traits.id()[['traits']][1],
chmi.l_traits.pbmc()[['complete_tr']][c(1:2, 7)])
## c('original_id', 'cell_population', 'ct_marker', 't2_point')
### update 'dat' to do 'fold_change'
dat <- dat %>%
arrange_at(vars(all_of(fc_vars)), .by_group = TRUE) %>%
group_by_at(vars(fc_vars[c(1,3)])) %>%
group_nest() %>%
mutate(fc_data = map(data,
~ mutate(.x,
rt_value_c1 = as.numeric(
ifelse(t2_point[[1]] != 'C_1', 'NA', ct_value[1])),
rt_value = as.numeric(
ifelse(c(!is.na(ct_value) | !is.na(rt_value_c1)), round(rt_value_c1 / ct_value, 2), 'NA'))))) %>%
select(-data) %>%
unnest(cols = c(fc_data))
### return
return(dat)
}
chmi.arg.tidy_fc_aim1 <- function(dat)
{
# list variables
l_vars <- c(
chmi.l_traits.id()[['traits']][1],
chmi.l_traits.agg()[['traits']][c(1:6)])
## original_id, t_igg, n_study_ag, antigen_ag, status_ag, mfi, t2_point_ag
# update with ratios of 'C-1'
dat <- dat %>%
select(l_vars) %>%
filter(t2_point_ag %in% c('C-1', 'D7', 'D11_D13', 'D28')) %>%
pivot_wider(
names_from = t2_point_ag,
values_from = mfi) %>%
mutate(
mfi_D7 = as.numeric(D7 / `C-1`),
mfi_D13_D11 = as.numeric(D11_D13 / `C-1`),
mfi_D28 = as.numeric(D28 / `C-1`)) %>%
pivot_longer(
cols = starts_with('mfi_'),
names_to = 't_point',
values_to = 'ratio_mfi')
# update dat
dat <- dat %>%
mutate(
t2_point_ag = factor(
ifelse(str_detect(t_point, '7'), 'D7',
ifelse(str_detect(t_point, '13'), 'D11_D13',
ifelse(str_detect(t_point, '28'), 'D28', 'NA'))),
levels = c('D7', 'D11_D13', 'D28')),
dataset = factor(
ifelse(str_detect(original_id, 'L1'), 'L1',
ifelse(str_detect(original_id, 'T1'), 'T1',
ifelse(str_detect(original_id, 'T2'), 'T2', 'NA'))),
levels = c('L1', 'T1', 'T2')),
log10_rmfi = round(as.numeric(log10(ratio_mfi)), 3)) %>%
select(-c('C-1', 'D7', 'D11_D13', 'D28', 't_point')) %>%
as.tibble()
# relevel 't2_point'
dat <- within(dat, {
t2_point_ag <- relevel(t2_point_ag, ref = 'D7')
})
# return
return(dat)
}
# update 'chmi_dat' in 'aim_2'
chmi.arg.tidy_fc_aim2 <- function(dat)
{
# list variables
l_vars <- c(
chmi.l_traits.id()[['traits']][1],
chmi.l_traits.agg()[['traits']][c(1:6)],
'vaccine_ag')
## original_id, t_igg, antigen_ag, n_study_ag, mfi, t2_point_ag, vaccine_ag
# update with ratios of 'C-1'
dat <- dat %>%
select(one_of(l_vars), -status_ag) %>%
filter(t2_point_ag %in% c('C-1', 'D7', 'D11', 'D84')) %>%
pivot_wider(
names_from = t2_point_ag,
values_from = mfi) %>%
mutate(
mfi_D7 = as.numeric(D7 / `C-1`),
mfi_D11 = as.numeric(D11 / `C-1`),
mfi_D84 = as.numeric(D84 / `C-1`)) %>%
pivot_longer(
cols = starts_with('mfi_'),
names_to = 't_point',
values_to = 'ratio_mfi')
# update dat
dat <- dat %>%
mutate(
t2_point_ag = factor(
ifelse(str_detect(t_point, '7'), 'D7',
ifelse(str_detect(t_point, '11'), 'D11',
ifelse(str_detect(t_point, '84'), 'D84', 'NA'))),
levels = c('D7', 'D11', 'D84')),
dataset = factor(
ifelse(str_detect(original_id, 'T2'), 'T2', 'NA'),
levels = c('T2')),
log10_rmfi = round(as.numeric(log10(ratio_mfi)), 3)) %>%
select(-c('C-1', 'D7', 'D11', 'D84', 't_point')) %>%
as.tibble()
# relevel 't2_point'
dat <- within(dat, {
t2_point_ag <- relevel(t2_point_ag, ref = 'D7')
})
# return
return(dat)
}
# update 'chmi_dat' in 'aim_3'
chmi.arg.tidy_fc_aim3 <- function(dat)
{
# list variables
l_vars <- c(
chmi.l_traits.id()[['traits']][1],
chmi.l_traits.agg()[['traits']][c(1:10)])
## original_id, t_igg, antigen_ag, n_study_ag, mfi, t2_point_ag, status_ag
# update with ratios of 'C-1'
dat <- dat %>%
select(one_of(l_vars), -t_point_ag) %>%
filter(t2_point_ag %in% c('C-1', 'D7', 'D13', 'D19', 'D28')) %>%
pivot_wider(
names_from = t2_point_ag,
values_from = mfi) %>%
mutate(
mfi_D7 = as.numeric(D7 / `C-1`),
mfi_D13 = as.numeric(D13 / `C-1`),
mfi_D19 = as.numeric(D19 / `C-1`),
mfi_D28 = as.numeric(D28 / `C-1`)) %>%
pivot_longer(
cols = starts_with('mfi_'),
names_to = 't_point',
values_to = 'ratio_mfi')
# update dat
dat <- dat %>%
mutate(
t2_point_ag = factor(
ifelse(str_detect(t_point, '7'), 'D7',
ifelse(str_detect(t_point, '13'), 'D13',
ifelse(str_detect(t_point, '19'), 'D19',
ifelse(str_detect(t_point, '28'), 'D28','NA')))),
levels = c('D7', 'D13', 'D19', 'D28')),
dataset = factor(
ifelse(str_detect(original_id, 'L1'), 'L1', 'NA'),
levels = c('L1')),
log10_rmfi = round(as.numeric(log10(ratio_mfi)), 3)) %>%
select(-c('C-1', 'D7', 'D13', 'D19', 'D28', 't_point')) %>%
filter(t2_point_ag %in% c('C-1', 'D7', 'D13', 'D28')) %>%
droplevels() %>%
as.tibble()
# relevel 't2_point'
dat <- within(dat, {
t2_point_ag <- relevel(t2_point_ag, ref = 'D7')
})
# return
return(dat)
}
# update 'chmi_dat' in 'aim_4'
chmi.arg.tidy_fc_aim4 <- function(dat)
{
# list variables
l_vars <- c(
chmi.l_traits.id()[['traits']][1],
chmi.l_traits.ab()[['select_tr']],
chmi.l_traits.clinical()[['tr_aim_4']], 'mal_exposure', 't2_point')
# update with ratios of 'C-1'
dat <- dat %>%
select(any_of(l_vars), -c(t_point, log10_mfi)) %>%
pivot_wider(
names_from = t2_point,
values_from = mfi_corr) %>%
mutate(
mfi_D7 = as.numeric(D7 / `C-1`),
mfi_D13_D11 = as.numeric(D11_D13 / `C-1`)) %>%
pivot_longer(
cols = starts_with('mfi_'),
names_to = 't_point',
values_to = 'ratio_mfi')
# update dat
dat <- dat %>%
mutate(
t2_point = factor(
ifelse(str_detect(t_point, '7'), 'D7',
ifelse(str_detect(t_point, '13'), 'D11_D13', 'NA')),
levels = c('D7', 'D11_D13')),
log10_rmfi = round(as.numeric(log10(ratio_mfi)), 3)) %>%
select(-t_point) %>%
as.tibble()
## info to 'fold_change'
## mfi.C-1 & mfi.D7 122 NAs
## mfi.D11_D13 244 NAs
# return
return(dat)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.