Aquatic Flow Cytometry Inter-Laboratory Calibration
收藏Zenodo2026-03-12 更新2026-05-26 收录
下载链接:
https://zenodo.org/doi/10.5281/zenodo.18991174
下载链接
链接失效反馈官方服务:
资源简介:
Description
This repository contains data and R code supporting a study of measurement variability across flow cytometers used in marine phytoplankton research. The study ran two parallel experiments. In the Beads experiment, polystyrene microspheres of known diameter were measured on ten flow cytometers. In the Cultures experiment, axenic laboratory cultures of Prochlorococcus and Synechococcus strains, plus field-isolated picoeukaryotes, were measured on the same instruments.
The calibration pipeline converts raw forward scatter (FSC) and side scatter (SSC) signals into physical units using Mie scattering theory. Each instrument receives its own set of calibration parameters — a scaling factor and a power-law exponent for both FSC and SSC — optimized by differential evolution against a weighted combination of bead and culture measurements. The result is a per-instrument lookup that maps any scatter signal into an estimated cell diameter and volume. These calibrated FCS data are stored in FCS_calibrated.parquet.
R Scripts
scatter_calibration.R
This script performs the Mie scattering calibration. It is the first script to run.
It loads aggregate scatter measurements from aggregate_all.csv, assigns instrument-specific numerical apertures and refractive indices, and fits instrument-specific calibration parameters using differential evolution (DEoptim). The objective function minimizes weighted log-scale squared error between measured scatter intensity and Mie theory predictions computed by mietheory.R. Weights favour particles in the 0.7–3 µm range and penalize large particles where Mie theory is less reliable. Calibration parameters are written to mie_calibration.csv and a supplementary figure (FigS1.png) is produced showing the calibration curves overlaid on culture data.
main_figures.R
This script produces all main figures. It depends on FCS_calibrated.parquet and the CSV files generated by scatter_calibration.R.
The script reads each calibrated FCS event, computes per-event predicted diameter and volume from the Mie calibration lookup, then aggregates events by population and sample to produce geometric means and standard deviations of scatter signals and size estimates. It bins size distributions into log2-spaced diameter bins to compute particle size distributions (PSDs). Abundance estimates are derived from event counts, sample volume, and dilution factors. The script also performs variance decomposition using a bootstrap approach to partition total abundance variance between instruments and residual (user) sources, and tests for Expert vs. Naïve user differences using ANOVA with Tukey post-hoc comparisons.
mietheory.R
A utility script sourced by scatter_calibration.R. It implements the FiniteAngleCalc function, which computes Mie scattering intensity integrated over the finite solid angle subtended by a detector lens of given numerical aperture. Required inputs are the particle refractive index, medium refractive index, laser wavelength, numerical aperture, and a vector of diameters. The function returns average parallel and perpendicular scattered intensities across the detector solid angle.
Requirements
R version
R ≥ 4.5.0
R packages
Package
Version tested
Purpose
tidyverse
≥ 2.0.0
Data manipulation and plotting (includes ggplot2, dplyr, tidyr, purrr, readr)
DEoptim
≥ 2.2-8
Differential evolution optimization for Mie calibration
arrow
≥ 22.0.0
Reading the Parquet FCS file
plotly
≥ 4.11.0
Interactive figures
ggpubr
≥ 0.6.2
Figure arrangement and annotation
ggpmisc
≥ 0.6.2
Regression equation annotations on ggplots
ggrepel
≥ 0.9.6
Non-overlapping text labels
emmeans
≥ 2.0.0
Estimated marginal means for post-hoc tests
purrr
≥ 1.2.0
Functional programming (included in tidyverse)
Input Data
FCS_calibrated.parquet [491.3 MB]
The primary data file. Each row is one flow cytometry event (a single particle detected by the instrument). Columns include:
Column
Description
Experiment
Experiment type: 'Beads' or 'Cultures'
Instrument
Instrument identifier (e.g., 'Influx 1', 'Attune 2', 'Cytoflex')
Description
Sample label (e.g., 'MED4', '1 µm beads')
SampleID
Unique sample identifier
Volume
Volume of sample analyzed (µL)
Dilution
Dilution factor applied before measurement
file
Original FCS filename
pop
Population gate: 'beads', 'Prochlorococcus', 'Synechococcus', or 'Picoeukaryotes'
norm_fsc
Forward scatter normalized to 1 µm bead reference
norm_ssc
Side scatter normalized to 1 µm bead reference
norm_red
Red fluorescence (chlorophyll) normalized to beads
norm_orange
Orange fluorescence (phycoerythrin) normalized to beads
predicted_diameter
Cell diameter estimated from Mie calibration (µm)
predicted_volume
Cell volume estimated from Mie calibration (µm³)
diameter
Known nominal diameter of bead standard or culture samples (µm)
aggregate_all.csv
Per-file summary statistics of scatter signals and predicted size, aggregated from the event-level FCS data. Each row is one population in one FCS file for one measurement channel. Columns include Experiment, Instrument, Description, SampleID, Volume, Dilution, pop, file, diameter, n (event count), abundance (cells µL⁻¹), channel, geom (geometric mean), mean (arithmetic mean), and sd (geometric standard deviation). This file is both an input to scatter_calibration.R and an output of main_figures.R.
abundance_all.csv
Per-sample abundance estimates from manual gating by multiple users. Each row is one FCS file gated by one user. Columns include Experiment, Instrument, Description, SampleID, Volume, Dilution, file, pop, n_naive (event count by naïve user), user (user identifier), n_expert (event count by expert user), abundance_expert, abundance_naive (cells µL⁻¹ for each gating approach), and diameter (nominal bead diameter where applicable).
mie_calibration.csv
Instrument-specific Mie theory calibration curves and fitted parameters. Each row is one diameter value on the theoretical prediction curve. Columns include Diameter (µm), AvgIpara and AvgIperp (Mie-predicted scatter intensities), Instrument, particle_type, channel (fsc or ssc), np (refractive index), the four fitted parameters (c_fsc, b_fsc, c_ssc, b_ssc), the numerical apertures (na_fsc, na_ssc), and norm_Scatter (predicted scatter normalized to 1 µm). This file is written by scatter_calibration.R and read by main_figures.R.
mietheory.R
Utility R script implementing Mie scattering calculations. Not a data file, but listed here because it must reside in the same working directory as scatter_calibration.R.
提供机构:
Zenodo创建时间:
2026-03-12



