The activation-induced marker (AIM) assay is a flow-cytometry based assay that measures the upregulation of activation markers on T cells following stimulation with specific antigens. T cells that are AIM-positive are considered “reactive” to the tested antigen.
The AIM assay is a component of the CMI-Flu prediction challenge. An overview of all the data, including links to more detailed descriptions of the other data, may be found at CMI-x .
PBMC were thawed and stimulated for 24h with (last 4h of stimulation with Golgi Stop/Plug):
Following stimulation, cells were stained with a 23-color surface and intracellular panel, and analyzed on a Cytek Aurora spectral analyzer. Antigen-reactive CD4 T cells were defined as Live/CD14-CD19-/CD3+/CD4+CD8-/OX40+CD137+.
The AIM data consists of 1 table : 2025LJI_AIM.tsv
(which contains pre-vaccination data of the “prediction/challenge”
cohort). Use the other data types to build your models and predict the
unseen post-vaccination values. See the Task description below for more
details.
| Antigen-reactive T cell Assay (AIM) | |
| Data dictionary | |
| Column | Description |
|---|---|
| participant_id | Donor ID, one for each subject in each study, in the format studyID.subjectID (links to participants.tsv) |
| timepoint | Days relative to influenza vaccination (-14 or 0), or 'Pre-vacc' for the mean of the two pre-vaccination timepoints. |
| stimulation | Peptide pool used to stimulate the PBMC: Global HA (GLO), Conserved HA/NA (CON), Seasonal HA/NA (SEA), PR8_backbone (PR8), or Polyclonal (POL, positive control). |
| name | Measured cell population: Antigen-reactive CD4 T cells. |
| value | Frequency of the measured population as a percentage of parent_population, after subtraction of the matched DMSO control. Values below 0.01 are floored at 0.01. |
| unit | Unit of measurement (percent). |
| parent_population | Denominator population for value: CD4 T cells. |
| population_definition | Gating strategy. |
| material | Antigen-reactive CD4 T cells. |
| comments | Batch in which the sample was acquired (Round 1 - Round 8). |
| study_accession | Study identifier. Links to the investigations.tsv file. |
| subject | subject ID. |
Data preview :
library(tidyverse)
aim = read_tsv('../datasets/260512/train/2025LJI_aim.tsv')
head(aim)
## # A tibble: 6 × 12
## participant_id timepoint stimulation name value unit parent_population
## <chr> <chr> <chr> <chr> <dbl> <chr> <chr>
## 1 2025LJI.SUB1829 -14 Polyclonal Antigen-… 18.6 perc… CD4 T cells
## 2 2025LJI.SUB1829 -14 Conserved Antigen-… 0.16 perc… CD4 T cells
## 3 2025LJI.SUB1829 -14 Seasonal Antigen-… 0.01 perc… CD4 T cells
## 4 2025LJI.SUB1829 -14 Global Antigen-… 0.12 perc… CD4 T cells
## 5 2025LJI.SUB1829 -14 PR8_backbone Antigen-… 0.13 perc… CD4 T cells
## 6 2025LJI.SUB2491 -14 Polyclonal Antigen-… 24.5 perc… CD4 T cells
## # ℹ 5 more variables: population_definition <chr>, material <chr>,
## # comments <chr>, study_accession <chr>, subject <chr>
library(ggplot2)
# --- Load ---
d <- read.delim("../datasets/260512/train/2025LJI_aim.tsv",
stringsAsFactors = FALSE)
d$timepoint <- factor(d$timepoint, levels = c("-14", "0" , "Pre-vacc"))
d$stimulation = recode(d$stimulation,
"Conserved" = "Conserved HA/NA",
"Seasonal" = "Seasonal HA/NA"
)
d$stimulation <- factor(d$stimulation,
levels = c("Polyclonal", "Conserved HA/NA", "Seasonal HA/NA",
"Global", "PR8_backbone"))
# Antigen-reactive stims only (drop the Polyclonal positive control, which is
# ~100x larger and would flatten everything else)
ag <- droplevels(subset(d, stimulation != "Polyclonal"))
# --- Plot 2: paired subject trajectories across timepoints ---
# One line per subject so you can see within-subject change, faceted by stim
p2 <- ggplot(ag, aes(timepoint, value, group = subject)) +
geom_line(alpha = 0.3) +
geom_point(alpha = 0.4, size = 0.9) +
stat_summary(aes(group = 1), fun = median, geom = "line",
color = "red", linewidth = 1.1) +
scale_y_log10() +
facet_wrap(~ stimulation) +
labs(title = "Within-subject change across timepoints",
subtitle = "Grey = individual subjects; red = median; Pre-vacc = mean of D0 and D-14.",
x = "Timepoint", y = "% of CD4 T cells (log10)") +
theme_bw(base_size = 12)
p2
Task 1.4 asks contestants to predict the frequency of
antigen-reactive CD4+ T cells (conserved HA/NA pool) at day 7
post-vaccination, for the 40 donors found in the 2025LJI challenge
dataset (stimulation = CON).