## H1N1
mydata <- mydata %>%
mutate(H1N1_fmlchg = case_when(
Season == "16-17" ~ 0,
Season == "17-18" ~ 1,
Season == "18-19" ~ 0,
Season == "19-20" ~ 1,
Season == "20-21" ~ 1,
Season == "21-22" ~ 1,
Season == "22-23" ~ 0,
TRUE ~ NA_integer_ # Default case if none of the above match
))
## H3N2
mydata <- mydata %>%
mutate(H3N2_fmlchg = case_when(
Season == "16-17" ~ 1,
Season == "17-18" ~ 0,
Season == "18-19" ~ 1,
Season == "19-20" ~ 1,
Season == "20-21" ~ 1,
Season == "21-22" ~ 1,
Season == "22-23" ~ 1,
TRUE ~ NA_integer_ # Default case if none of the above match
))
## Vict
mydata <- mydata %>%
mutate(Vict_fmlchg = case_when(
Season == "16-17" ~ 0,
Season == "17-18" ~ 0,
Season == "18-19" ~ 1,
Season == "19-20" ~ 0,
Season == "20-21" ~ 1,
Season == "21-22" ~ 0,
Season == "22-23" ~ 1,
TRUE ~ NA_integer_ # Default case if none of the above match
))
## Yama
mydata <- mydata %>%
mutate(Yama_fmlchg = case_when(
Season == "16-17" ~ 0,
Season == "17-18" ~ 0,
Season == "18-19" ~ 0,
Season == "19-20" ~ 0,
Season == "20-21" ~ 0,
Season == "21-22" ~ 0,
Season == "22-23" ~ 0,
TRUE ~ NA_integer_ # Default case if none of the above match
))Vaccine Meeting 04/30
1. New Predictor
Whether or not the vaccine formula changed compared with last year (four separate covariates for four strains)
2. Explorary analysis
Implement linear mixed model with random intercept:
Only one predictor for each model.
Put all variables together into the model.
Homologous responses
Outcome (Y): Composite homologous post-vaccinated HAI (D21/28) = log2(H1N1) + log2(H3N2) + log2(Yama) + log2(Vict)
Predictors (X): Homologous pre-vaccinated HAI (D0, composite), Age, Sex, BMI, year, year of participants, prior vaccination history, formula changed (Yes/No)
Individually
Age
fit_ind_age <- lme(comp_post_homo ~ Age, random = ~1|ID, data = mydata)
summary(fit_ind_age)$tTable Value Std.Error DF t-value p-value
(Intercept) 31.1483433 0.294542427 1227 105.75164 0.000000e+00
Age -0.1327685 0.006637844 1227 -20.00175 2.947263e-77
Sex
fit_ind_sex <- lme(comp_post_homo ~ Gender, random = ~1|ID, data = mydata)
summary(fit_ind_sex)$tTable Value Std.Error DF t-value p-value
(Intercept) 26.0171231 0.2269828 1227 114.6215756 0.0000000
GenderM 0.1343283 0.3501583 1227 0.3836216 0.7013254
BMI
fit_ind_BMI <- lme(comp_post_homo ~ BMI, random = ~1|ID, data = mydata_rm.na)
summary(fit_ind_BMI)$tTable Value Std.Error DF t-value p-value
(Intercept) 28.58513706 0.62371581 1219 45.830387 1.947676e-267
BMI -0.09270066 0.02212668 1219 -4.189543 2.996619e-05
Pre-vaccination HAI
fit_ind_preHAI <- lme(comp_post_homo ~ comp_pre_homo, random = ~1|ID, data = mydata)
summary(fit_ind_preHAI)$tTable Value Std.Error DF t-value p-value
(Intercept) 15.9457734 0.41408855 1227 38.50812 2.397552e-213
comp_pre_homo 0.4934044 0.01944434 1227 25.37522 1.553196e-114
Years of participate
fit_ind_years.part <- lme(comp_post_homo ~ years_of_part, random = ~1|ID, data = mydata)
summary(fit_ind_years.part)$tTable Value Std.Error DF t-value p-value
(Intercept) 27.7376462 0.20049265 1227 138.3474 0.000000e+00
years_of_part -0.8989174 0.05756496 1227 -15.6157 2.810548e-50
Vaccine history
fit_ind_history <- lme(comp_post_homo ~ history, random = ~1|ID, data = mydata)
summary(fit_ind_history)$tTable Value Std.Error DF t-value p-value
(Intercept) 28.158002 0.2194209 1227 128.32873 0.000000e+00
history -3.137062 0.2129446 1227 -14.73182 2.364478e-45
H1N1 formula change
fit_ind_H1N1chg <- lme(comp_post_homo ~ H1N1_fmlchg, random = ~1|ID, data = mydata)
summary(fit_ind_H1N1chg)$tTable Value Std.Error DF t-value p-value
(Intercept) 26.2923683 0.2078873 1227 126.474116 0.00000000
H1N1_fmlchg -0.3374622 0.1756038 1227 -1.921725 0.05487177
H3N2 formula change
fit_ind_H3N2chg <- lme(comp_post_homo ~ H3N2_fmlchg, random = ~1|ID, data = mydata)
summary(fit_ind_H3N2chg)$tTable Value Std.Error DF t-value p-value
(Intercept) 29.392967 0.2552670 1227 115.14599 0.000000e+00
H3N2_fmlchg -3.871537 0.2268083 1227 -17.06965 8.808298e-59
Victoria formula change
fit_ind_Victchg <- lme(comp_post_homo ~ Vict_fmlchg, random = ~1|ID, data = mydata)
summary(fit_ind_Victchg)$tTable Value Std.Error DF t-value p-value
(Intercept) 26.581665 0.1827535 1227 145.450937 0.000000e+00
Vict_fmlchg -1.293879 0.1540816 1227 -8.397366 1.245756e-16
Multiple variables
fit_comp_homo <- lme(comp_post_homo ~ Age + Gender + BMI + comp_pre_homo + years_of_part + history + H1N1_fmlchg + H3N2_fmlchg + Vict_fmlchg, random = ~1|ID, data = mydata_rm.na)
summary(fit_comp_homo)$tTable Value Std.Error DF t-value p-value
(Intercept) 25.11512418 0.747143861 1211 33.6148438 1.563266e-175
Age -0.07612985 0.005766635 1211 -13.2017817 2.814554e-37
GenderM -0.24853585 0.221328583 1211 -1.1229270 2.616911e-01
BMI 0.05542235 0.015914997 1211 3.4823980 5.146557e-04
comp_pre_homo 0.37810821 0.020178820 1211 18.7378750 5.431599e-69
years_of_part -0.02779429 0.060997217 1211 -0.4556648 6.487127e-01
history -3.21545175 0.208491894 1211 -15.4224305 3.932607e-49
H1N1_fmlchg -1.19405298 0.184845030 1211 -6.4597516 1.515555e-10
H3N2_fmlchg -2.28248164 0.240875156 1211 -9.4757869 1.340547e-20
Vict_fmlchg -0.59613842 0.165223935 1211 -3.6080633 3.210674e-04
Individual effects for formular change
H1N1
fit_H1N1chg_homo <- lme(H1N1_post_homo ~ H1N1_fmlchg + H1N1_pre_homo, random = ~1|ID, data = mydata)
summary(fit_H1N1chg_homo)$tTable Value Std.Error DF t-value p-value
(Intercept) 4.1418596 0.11818101 1226 35.046744 5.362546e-187
H1N1_fmlchg -0.3342229 0.06415713 1226 -5.209443 2.220047e-07
H1N1_pre_homo 0.4971611 0.01908929 1226 26.043983 2.236341e-119
H3N2
fit_H3N2chg_homo <- lme(H3N2_post_homo ~ H3N2_fmlchg + H3N2_pre_homo, random = ~1|ID, data = mydata)
summary(fit_H3N2chg_homo)$tTable Value Std.Error DF t-value p-value
(Intercept) 4.0919463 0.13967872 1226 29.295416 1.913594e-143
H3N2_fmlchg -0.1756029 0.09125600 1226 -1.924289 5.454961e-02
H3N2_pre_homo 0.5297709 0.01756893 1226 30.153852 6.831319e-150
Vict
fit_Victchg_homo <- lme(Vict_post_homo ~ Vict_fmlchg + Vict_pre_homo, random = ~1|ID, data = mydata)
summary(fit_Victchg_homo)$tTable Value Std.Error DF t-value p-value
(Intercept) 3.9928381 0.10952991 1226 36.454316 1.051694e-197
Vict_fmlchg -0.3448097 0.05847964 1226 -5.896236 4.802501e-09
Vict_pre_homo 0.4840010 0.01951466 1226 24.801916 2.198458e-110
Heterologous responses
Outcome (Y): Composite heterologous post-vaccinated HAI (D21/28) = log2(H1N1_GMT of all heterologous strains) + log2(H3N2_GMT of all heterologous strains) + log2(Yama_GMT of all heterologous strains) + log2(Vict_GMT of all heterologous strains)
Predictors (X): Homologous pre-vaccinated HAI (D0, composite), Heterologous pre-vaccinated HAI (D0, composite), Age, Sex, BMI, year, year of participants, prior vaccination history, formula changed (composite; Yes/No)
Individually
Age
mydata_heter = mydata %>% drop_na(comp_post_heter, comp_pre_heter,BMI)
fit_ind_age <- lme(comp_post_heter ~ Age, random = ~1|ID, data = mydata_heter)
summary(fit_ind_age)$tTable Value Std.Error DF t-value p-value
(Intercept) 25.7133479 0.269097951 830 95.55386 0.000000e+00
Age -0.1382697 0.006057348 830 -22.82677 6.847891e-90
Sex
fit_ind_sex <- lme(comp_post_heter ~ Gender, random = ~1|ID, data = mydata_heter)
summary(fit_ind_sex)$tTable Value Std.Error DF t-value p-value
(Intercept) 20.2816527 0.2230303 830 90.936753 0.0000000
GenderM 0.4135407 0.3459799 830 1.195274 0.2323216
BMI
fit_ind_BMI <- lme(comp_post_heter ~ BMI, random = ~1|ID, data = mydata_heter)
summary(fit_ind_BMI)$tTable Value Std.Error DF t-value p-value
(Intercept) 24.2577189 0.60726299 830 39.945986 1.755133e-195
BMI -0.1414693 0.02167215 830 -6.527702 1.161809e-10
Pre-vaccination HAI
fit_ind_preHAI <- lme(comp_post_heter ~ comp_pre_homo, random = ~1|ID, data = mydata_heter)
summary(fit_ind_preHAI)$tTable Value Std.Error DF t-value p-value
(Intercept) 9.7673429 0.43742682 830 22.32909 7.321788e-87
comp_pre_homo 0.5084967 0.02029756 830 25.05211 1.352198e-103
Years of participate
fit_ind_years.part <- lme(comp_post_heter ~ years_of_part, random = ~1|ID, data = mydata_heter)
summary(fit_ind_years.part)$tTable Value Std.Error DF t-value p-value
(Intercept) 23.208585 0.1868188 830 124.23046 0.000000e+00
years_of_part -1.361571 0.0489953 830 -27.78983 1.126506e-120
Vaccine history
fit_ind_history <- lme(comp_post_heter ~ history, random = ~1|ID, data = mydata_heter)
summary(fit_ind_history)$tTable Value Std.Error DF t-value p-value
(Intercept) 22.350942 0.2252890 830 99.21010 0.000000e+00
history -2.877644 0.2307397 830 -12.47139 7.653739e-33
Composite homo pre-vaccination HAI
fit_ind_comp_pre_homo <- lme(comp_post_heter ~ comp_pre_homo, random = ~1|ID, data = mydata_heter)
summary(fit_ind_comp_pre_homo)$tTable Value Std.Error DF t-value p-value
(Intercept) 9.7673429 0.43742682 830 22.32909 7.321788e-87
comp_pre_homo 0.5084967 0.02029756 830 25.05211 1.352198e-103
H1N1 formula change
fit_ind_H1N1chg <- lme(comp_post_heter ~ H1N1_fmlchg, random = ~1|ID, data = mydata_heter)
summary(fit_ind_H1N1chg)$tTable Value Std.Error DF t-value p-value
(Intercept) 21.620017 0.1930256 830 112.00597 0.000000e+00
H1N1_fmlchg -2.019703 0.1685105 830 -11.98562 1.213728e-30
H3N2 formula change
fit_ind_H3N2chg <- lme(comp_post_heter ~ H3N2_fmlchg, random = ~1|ID, data = mydata_heter)
summary(fit_ind_H3N2chg)$tTable Value Std.Error DF t-value p-value
(Intercept) 22.60097 0.2494797 830 90.59242 0.000000e+00
H3N2_fmlchg -2.61195 0.2285381 830 -11.42895 3.393231e-28
Victoria formula change
fit_ind_Victchg <- lme(comp_post_heter ~ Vict_fmlchg, random = ~1|ID, data = mydata_heter)
summary(fit_ind_Victchg)$tTable Value Std.Error DF t-value p-value
(Intercept) 20.830698 0.1918451 830 108.580805 0.000000e+00
Vict_fmlchg -0.731336 0.1720935 830 -4.249644 2.383835e-05
Multiple variables
fit_comp_heter <- lme(comp_post_heter ~ Age + Gender + BMI + comp_pre_homo + comp_pre_heter + years_of_part + history + H1N1_fmlchg + H3N2_fmlchg + Vict_fmlchg, random = ~1|ID, data = mydata_heter)
summary(fit_comp_heter)$tTable Value Std.Error DF t-value p-value
(Intercept) 16.66027439 0.667755610 821 24.949658 1.060853e-102
Age -0.05901610 0.004713775 821 -12.519922 4.887145e-33
GenderM -0.08117910 0.176158055 821 -0.460831 6.450419e-01
BMI 0.03286951 0.012549828 821 2.619120 8.978310e-03
comp_pre_homo -0.15070708 0.027000183 821 -5.581706 3.236530e-08
comp_pre_heter 0.70772289 0.034960689 821 20.243391 3.155301e-74
years_of_part -0.41829894 0.051054151 821 -8.193240 9.718452e-16
history -1.81793200 0.182232158 821 -9.975912 3.356632e-22
H1N1_fmlchg -1.10283040 0.161669349 821 -6.821518 1.747747e-11
H3N2_fmlchg -0.81728000 0.204837797 821 -3.989889 7.201117e-05
Vict_fmlchg -0.49113531 0.134770924 821 -3.644223 2.850616e-04
Individual effects for formular change
H1N1
fit_H1N1chg_heter <- lme(H1N1_post_heter ~ H1N1_fmlchg + H1N1_pre_heter, random = ~1|ID, data = mydata_heter)
summary(fit_H1N1chg_homo)$tTable Value Std.Error DF t-value p-value
(Intercept) 4.1418596 0.11818101 1226 35.046744 5.362546e-187
H1N1_fmlchg -0.3342229 0.06415713 1226 -5.209443 2.220047e-07
H1N1_pre_homo 0.4971611 0.01908929 1226 26.043983 2.236341e-119
H3N2
fit_H3N2chg_heter <- lme(H3N2_post_heter ~ H3N2_fmlchg + H3N2_pre_heter, random = ~1|ID, data = mydata_heter)
summary(fit_H3N2chg_heter)$tTable Value Std.Error DF t-value p-value
(Intercept) 1.5090344 0.09929053 829 15.198170 3.355520e-46
H3N2_fmlchg 0.3582428 0.05921830 829 6.049529 2.197160e-09
H3N2_pre_heter 0.8243381 0.01624540 829 50.742854 1.748897e-256
Vict
fit_Victchg_heter <- lme(Vict_post_heter ~ Vict_fmlchg + Vict_pre_homo, random = ~1|ID, data = mydata_heter)
summary(fit_Victchg_heter)$tTable Value Std.Error DF t-value p-value
(Intercept) 4.0589042 0.12405918 829 32.717485 2.078727e-151
Vict_fmlchg 0.3338928 0.06230179 829 5.359281 1.083603e-07
Vict_pre_homo 0.3593616 0.02154984 829 16.675835 4.667443e-54
Next steps:
- Breadth measurement
Metrics of antigenic distance
Year-based AUC
Distance based on antigenic cartography AUC
- Mixed model prediction
Explore different groups (age and BMI)?
Split training and test? How to split, according to each individual or each record?
Need to discuss the structure of the paper.