When a fixed dose of viral vector particles is added to a dish of cells, particles land on cells essentially at random. If the average number of particles per cell is the multiplicity of infection (MOI), the number of particles landing on any one cell follows a Poisson distribution:
P(k particles on a cell) = MOI^k · e^(−MOI) / k!
A cell only becomes transduced once it has received at least a threshold number m of functional vector genomes. The predicted transduced fraction is:
P(transduced) = 1 − Σ (k = 0 to m−1) MOI^k · e^(−MOI) / k!
m = 1 (classic single-hit case): P(transduced) = 1 − e^(−MOI)
This simulator does not render individual cells in 3D — instead it runs the same random process directly on the numbers: each "cell sampled" draws an independent Poisson-distributed copy count (via Knuth's algorithm, the same rejection method used for real Monte-Carlo transduction models) and the top panel plots the resulting histogram against the closed-form PMF above. Every time you draw a new dose, the bottom panel plots the measured transduced fraction as one data point on a live titration curve — exactly how a wet-lab MOI titration experiment (flow cytometry of % marker-positive cells across several MOI values) is analyzed against the theoretical Poisson prediction.
- MOI slider — sets the average vector dose per cell (λ of the Poisson distribution).
- Copies needed — the minimum vector genomes (m) a cell must receive before it counts as transduced.
- Cells sampled — how many independent cells are drawn per dose; more cells make the measured histogram and titration point converge more tightly onto the analytic curve (law of large numbers).
- Draw New Vector Dose — resamples fresh Poisson-distributed copy counts and adds a new point to the titration curve at the current MOI.
- Clear Titration History — removes the accumulated dose points from the bottom panel.
Real-world relevance: this is the exact calculation vector-production and gene-therapy labs use to choose a dose — e.g. "MOI 3" for a lentiviral or AAV prep — and the titration curve is how they experimentally confirm a vector's functional titer against the Poisson model before scaling a protocol.