Research tools · Beta

Vaccine transcriptomic signatures

When a vaccine is given, the genes that immune cells switch on in the blood change over the following hours and days. Many vaccine studies have measured this and published the raw data in NCBI's Gene Expression Omnibus (GEO). This project downloads those public datasets, puts them all on one method, and asks two questions: do different vaccines produce different responses, and how much do responses differ between people.

Beta research resource. These are research analyses of other groups' public data, not clinical guidance. A blood gene-expression response is not a side effect and not a measure of protection: it shows that the immune system responded, and how. Results may change as datasets are added and code is reviewed.

What the reanalysis found

1. The adjuvant matters more than the "platform" label. In BIOVACSAFE (GSE124533; six vaccines and a saline placebo, randomised, one cohort, 146 subjects, 1,460 samples), FLUAD and AGRIPPAL contain the same influenza antigen, but FLUAD adds the MF59 adjuvant. Head to head, FLUAD produced a larger day-1 interferon response (Hedges g = 1.42, FDR = 0.001) and a larger day-1 inflammation response (g = 1.02). Against placebo, the day-7 plasmablast (antibody-cell) signal was g = 1.98 with FLUAD versus 0.55 without the adjuvant.
2. Live vaccines respond on a different timetable. Live yellow fever vaccine (STAMARIL) showed nothing at day 1, then a large interferon response peaking around day 7 (g = 6.18 against placebo, the largest effect in the analysis). Non-replicating vaccines peak at day 1 and are back near baseline by day 3. A study that samples only one day will rank these two kinds of vaccine arbitrarily.
3. Some licensed vaccines leave no detectable blood signature. Alum-adjuvanted hepatitis B (ENGERIX-B, first and third dose) and live varicella given to adults who were already immune (VARILRIX) could not be told apart from saline on any response program at any time point. A protective vaccine does not have to produce a large blood signature.
4. Most cross-study differences are noise. Two groups given the same vaccine in different studies look "significantly" different in 23% of tests, with differences up to g ≈ 1.2 (two influenza seasons, two BNT162b2 cohorts, two yellow fever cohorts). So a difference between vaccines measured in different studies means little unless it is larger than that. Only within-study comparisons are reported as findings here.
5. COVID-19 mRNA: a strong early interferon response, larger after dose 2. In the same people (GSE169159), the day 1–3 interferon response roughly doubled from dose 1 to dose 2 (0.69 → 1.39 log2 units; higher after dose 2 in 88% of 25 people; p = 3×10−5). After dose 2, 97% of recipients showed it. Its size still varied between people (the middle half ran from 1.0 to 1.8), and age, sex and baseline inflammation explained little of that variation.
6. No gene-expression signal predicted fever in infants. In infants given 4CMenB with fever recorded per child (GSE131929; 52 with fever, 71 without), none of 16 tests was significant after correction for multiple testing. With groups this size only large effects could be detected, so this means "no detectable association", not "no association".

Key figures

Effect sizes of six vaccines against saline placebo for four immune response programs in the BIOVACSAFE study
BIOVACSAFE: each vaccine against saline placebo in the same randomised cohort (Hedges g). Adjuvanted influenza (FLUAD) and live yellow fever stand out; alum hepatitis B and varicella do not differ from placebo.
Time course of interferon, inflammation, plasmablast and cell-cycle responses for each BIOVACSAFE vaccine arm from day minus 1 to day 28
Response over time. Non-replicating vaccines peak at day 1; live yellow fever peaks around day 7.
Distribution of effect sizes when the same vaccine is compared across different studies, showing the cross-study noise floor
The noise floor: comparing the same vaccine across different studies gives effect sizes up to |g| ≈ 1.2 by chance and study design alone.
Heatmap of mean response by vaccine and immune program across the nine GEO studies analysed
Mean response by vaccine and program across the first nine studies (COVID-19 mRNA and adenovector, yellow fever, influenza). Compare columns from different studies cautiously (see the noise floor above).
Per-person spread of the early interferon and day-7 plasmablast responses by vaccine
Between-person spread. Each point is one person's change from their own pre-vaccination sample.
Response programs after live influenza challenge in previously vaccinated and unvaccinated volunteers
Controlled influenza challenge (GSE253685): vaccinated and unvaccinated volunteers mounted similar responses to the challenge virus (16 tests, none significant). GEO does not say who actually became infected, so this cannot separate "vaccination doesn't change the response" from "vaccination prevented infection in some".

Pre-registered test

To check whether finding 2 (replicating vs non-replicating timing) and finding 4 (the noise floor) hold up, two hypotheses were frozen with their analysis code, hashed, and registered on OSF before any held-out data was scored. They were then run once on datasets not used to generate them.

HypothesisPre-specified requirementWhat the held-out data gaveVerdict
H1: interferon peaks early (day 1–2) after non-replicating vaccines and late (day 5+) after replicating exposuresat least 8 arms passing inclusion6 arms; non-replicating early 3/4, replicating late 2/2; Fisher p = 0.4Inconclusive
H2: the cross-study noise floor is at least |g| 0.8 with at least 15% of tests significantat least 20 pairwise tests12 tests; 95th-percentile |g| = 1.01; 0% at FDR < 0.05Inconclusive

Both point in the predicted direction, but too few held-out datasets met the inclusion rules to test them as registered, so neither is counted as confirmed. Results are reported as registered, including the exclusions.

Dataset browser

Every dataset in the project's catalog. Analysed means the pipeline has a recipe for it and it was downloaded and scored; the others are catalogued for future work. Status is as recorded in the source catalog (for example, holdout = reserved for the pre-registered test).

AccessionVaccine / exposurePlatformSpecies · tissueAssaynStatus
Loading…

Method in brief

  1. Audit. Every accession in the catalog was checked against live GEO, PubMed, BioStudies and ClinicalTrials.gov records; mismatches are flagged rather than silently used.
  2. Harmonise. RNA-seq counts become log2 CPM; microarrays use the submitters' normalised values; all gene identifiers are mapped to current HGNC symbols.
  3. Score. Each sample is scored on the Li et al. 2014 blood transcription modules, grouped into four programs: type I interferon, inflammation, plasmablast (antibody-producing cells) and cell cycle.
  4. Per person. Each response is a change from that person's own pre-dose sample, so differences between people at baseline cancel out.
  5. Compare. Vaccines are compared within one study where possible, and every cross-study difference is judged against the measured noise floor.

What this cannot tell you

Data and code

Dataset table: datasets.json. Pre-registration: OSF 86t3u. The pipeline (vaxsig) reads only public GEO data and rebuilds every number here; all raw data stays with GEO. How this site handles pre-registration and corrections: research governance.

Beta. Analyses generated 2026-10-08 to 2026-10-09; pre-registered test run 2026-10-09; page updated 2026-10-14. Found an error? Report a correction.