R/chmi.04_phen.argument_fold.R

Defines functions chmi.arg.tidy_fc_aim4 chmi.arg.tidy_fc_aim3 chmi.arg.tidy_fc_aim2 chmi.arg.tidy_fc_aim1 chmi.04_phen.argument_fc_pbmc chmi.04_phen.argument_fc_ab

#----------------------------------
# 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)
}
mvazquezs/chmitools documentation built on May 1, 2020, 2:06 a.m.