Vaccine Meeting 04/30

1. New Predictor

Whether or not the vaccine formula changed compared with last year (four separate covariates for four strains)

diagram
## 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
  ))

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:

  1. Breadth measurement

Metrics of antigenic distance

  • Year-based AUC

  • Distance based on antigenic cartography AUC

  1. 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.