Correlate the titers on plate39 with those on the other plates of human

Correlating the titers on plate39 (dated 2026-09-03) of human with those on the following 1 plate(s), which share at least one serum with it:

Get the per-replicate titers for the sera on this plate

Read the per-replicate titers for every serum measured on this plate; each of those files holds that serum's titers from all of the plates it was measured on, which is what the correlations below need. Each replicate has already passed the QC applied when its plate was processed, and records its plate and whether its virus was dropped by the per-serum QC on replicate-to-replicate variation:

Read 3224 per-replicate titers for 11 sera measured on plate39

Get the titers for each strain on each plate

A plate can have several barcodes for a strain, so the titer for a strain against a serum on a plate is the median over that plate's barcodes. We use the same handling of the bound on a median titer as when medians are taken across all replicates of a serum:

Got 3224 serum-strain titers across the plates, 1 barcodes at most per titer

Correlate the titers on this plate with those on each other plate

For each of the other plates, get the titers for every serum measured on both it and this plate, and the Pearson correlation of the log titers for each of those sera. These per-serum correlations are the ones written to the CSV file at the bottom of this report; those annotating the plots are computed from the plotted points instead, so that they follow the dropdowns. The CSV file also gives the reduced major axis slope of the log titers on this plate against those on the other plate, sign(r) * sd(log y) / sd(log x), which is near one for plates that agree and is the reciprocal when the plates are swapped:

Comparing plate39 with 1 other plate(s), covering 1596 plate-serum-strain titer comparison(s)

Plot the plate-to-plate correlations

Each point is one strain against one serum, at its titer on this plate (y axis) versus on the other plate (x axis), with the dashed y = x line for reference. Each panel is annotated with the number of titers, the number of sera, and the Pearson correlation of the log titers.

Points are colored by whether they are retained in the final titers or were dropped by the per-serum QC on replicate-to-replicate variation. That QC drops a strain for a serum on all of its plates at once, so the color is the same in every panel, and a dropped point is not necessarily one that this panel's two plates disagreed about. Whether they disagreed is the distance from the y = x line, which the tooltip gives as the fold difference between the two plates.

Two dropdowns below the plot restrict what is shown: show strain-serum pairs by QC to only the retained or only the dropped points, and show serum to a single serum. The annotated numbers are computed from whatever is currently shown, so the correlation over just the retained titers, or for one serum, comes from setting a dropdown. Mousing over a point highlights that strain-serum combination in every panel.

The per-serum correlations are also in the CSV file at the bottom of this report:

Write the correlations to a CSV

Write the Pearson correlations for each other plate and serum to a CSV file. Note that each pair of plates appears in both plates' files, with the two plates swapped:

Writing the correlations to results/plate_to_plate_corrs/plate_to_plate_corr_human_plate39.csv

plate date other_plate other_date serum n_strains pearson_r slope n_strains_retained pearson_r_retained slope_retained
plate39 2026-09-03 plate12 2026-08-20 flu-seqneut-2026-SCH-023 148 0.930121 0.863672 148 0.930121 0.863672
plate39 2026-09-03 plate12 2026-08-20 flu-seqneut-2026-SCH-024 145 0.857945 0.786808 145 0.857945 0.786808
plate39 2026-09-03 plate12 2026-08-20 flu-seqneut-2026-SCH-025 137 0.554273 0.809163 137 0.554273 0.809163
plate39 2026-09-03 plate12 2026-08-20 flu-seqneut-2026-SCH-026 148 0.984204 0.956580 148 0.984204 0.956580
plate39 2026-09-03 plate12 2026-08-20 flu-seqneut-2026-SCH-027 147 0.880322 1.106368 147 0.880322 1.106368
plate39 2026-09-03 plate12 2026-08-20 flu-seqneut-2026-SCH-028 144 0.863232 1.158138 144 0.863232 1.158138
plate39 2026-09-03 plate12 2026-08-20 flu-seqneut-2026-SCH-029 148 0.646237 1.363523 148 0.646237 1.363523
plate39 2026-09-03 plate12 2026-08-20 flu-seqneut-2026-SCH-030 139 0.543922 0.778200 139 0.543922 0.778200
plate39 2026-09-03 plate12 2026-08-20 flu-seqneut-2026-SCH-031 148 0.567438 1.228111 148 0.567438 1.228111
plate39 2026-09-03 plate12 2026-08-20 flu-seqneut-2026-SCH-032 145 0.703139 0.921594 145 0.703139 0.921594
plate39 2026-09-03 plate12 2026-08-20 flu-seqneut-2026-SCH-033 147 0.979796 1.038596 147 0.979796 1.038596