Droplets: one cell, one reaction chamber
10x Chromium uses a microfluidic chip to turn cells, gel beads and oil into many thousands of water-in-oil droplets where the channels meet. Each droplet is its own reaction chamber: the cell lyses inside it, and its mRNA is captured by primers from a single gel bead. How many cells you load decides how many droplets stay empty and how many end up with two cells.
Cells, beads and oil meet at a junction
The chip carries three streams: the cell suspension (mixed with reverse-transcription reagents), gel beads, and partitioning oil. At the junction the oil pinches the flow into droplets called GEMs. Inside, the bead dissolves and releases its primers, the cell lyses, and reverse transcription happens in this tiny volume.
The key is that the two ingredients arrive differently. Gel beads are deformable and close-packed, so they enter almost one at a time and most droplets receive exactly one bead. Cells arrive at random: whether a droplet holds zero, one or two cells is down to chance.
Poisson loading: empty droplets versus doublets
Because cells enter droplets at random, the number per droplet follows a Poisson distribution. With an average of λ cells per droplet (the more you load, the larger λ), the fraction of droplets holding k cells is λke−λ/k!. Drag λ in the widget and you see:
- As λ grows, fewer droplets stay empty, but droplets with two or more cells grow faster.
- For small λ, the multi-cell share among occupied droplets is about λ/2, so the doublet rate rises roughly linearly with cells recovered. The classic 3′ v3/v3.1 user guide gives about 0.8% per 1,000 recovered cells (about 7–8% at 10,000); check the guide for your kit.
By the same formula, even at λ = 1, where single-cell droplets peak, only about 37% of droplets hold exactly one cell, and about 42% of occupied droplets hold more than one. Real runs are therefore loaded dilute on purpose, leaving most droplets empty.
Only part of the loaded cells are recovered as cells in the data (commonly around half to two-thirds, depending on the kit), so estimate the doublet rate from cells recovered, not cells loaded.
Finding the doublets in the data
When two cells of different types (a heterotypic doublet) share a droplet, the result looks like a hybrid, for instance a barcode expressing both T-cell and monocyte genes. scDblFinder, DoubletFinder and similar methods share one idea: add up the expression of random pairs of cells to simulate many artificial doublets, then score every real cell by how much it resembles them.
Two things to remember. First, doublets only form within one capture (one channel), so run detection per sample. Second, a homotypic doublet, two cells of the same type, is nearly invisible in expression; only indirect hints such as a high UMI count remain. On the bench, sample multiplexing (cell hashing, or demultiplexing by donor genotype) adds a direct way to catch doublets formed between samples.
Common pitfalls
- Using a UMI ceiling instead of doublet detection. Large cells such as monocytes have many UMIs anyway, and many doublets stay below the ceiling.
- Running doublet detection on all samples pooled. Cells from different channels can never form a doublet; pooling distorts the simulation and the expected rate.
- Removing transitional cells as doublets. Differentiating cells can express genes of two lineages; before removing them, check whether they form a continuous path.