NPC Labeling Efficiency

ROIManager › Analyze · version 2

The labelling efficiency of nuclear pores, from the corners each shows

What it does

Not every copy of a protein in an SMLM image is seen. Some are never labelled; some are labelled with a dye that never switches on, or never brightly enough. The fraction that is labelled and seen is the effective labelling efficiency (ELE). It limits what can be counted and what can be resolved, and it is the direct test of a labelling protocol.

Nuclear pores make it measurable (Thevathasan et al. 2019, doi:10.1038/s41592-019-0574-9). Each pore has eight corners of four copies of Nup96. A corner shows when one of its copies is seen, so how many corners show, across many pores, depends on the ELE, and this plugin finds the ELE that explains it.

Counting corners naively is biased, in both directions. A localization imprecise enough lands in the neighbouring corner's segment and opens a corner that is empty; the more often a fluorophore blinks, the more often. And a filter on precision, which stops that, loses the corners whose blinks were all dim. On simulations both are large: up to 10 points of efficiency at 5000 photons per blink, and far more at 500 (the study in studies/npc_le has the numbers).

So the plugin fits a model of a whole pore instead. It uses two numbers per pore from NPC Corners: the corners seen with the precise localizations, and the localizations the pore has. The model knows what spills and what is lost, and the localizations tell how often a fluorophore blinks – which is what it needs to work out the dim fluorophores the precise ones miss. It gives the ELE and the blinks per copy.

It uses only the pores that show at least fit from corners (5). Pores with fewer are the ones a segmentation is likely to miss, and junk rarely shows 5; leaving both out of the fit, and out of the model, means their loss does not bias the answer. SMAP's analysis, the corner histogram alone, is kept as the corners (SMAP) method.

The order is: find the pores with NPC, add NPC Corners to the evaluation pipeline and evaluate, then run this. Use grouped localizations, imaged until the fluorophores have bleached.

How it works

1. Two histograms. For every pore with at least fit from corners: how many corners it shows, and how many localizations it has.

2. What a blink becomes. From the precisions of every localization in the files, the plugin works out the chance that one blink gives a localization good enough for the corners, one good enough only for the localization count, or neither. This is measured on the whole field, not on the pores, so it does not depend on which pores were found.

3. The pore. 32 copies, 4 to a corner. Each is labelled with the ELE, and blinks a number of times that is, on average, the blinks per copy. A corner localization lands in a neighbouring segment with a chance worked out from its precision and its distance from the centre. From this the model gives, exactly, how likely each combination of corners seen and localizations is.

4. The fit. The ELE and the blinks per copy are the values that make the two histograms most likely, among the pores with at least fit from corners. The errors are from how sharply the likelihood falls off around them.

A simulated nuclear envelope at 40 % labelling and 3 blinks per copy, segmented, counted and fitted. The model (red) is fitted to both histograms at once, over the pores with 5 corners or more. The truly labelled corners of the simulation give the ELE in the title.

In detail

What a blink becomes. With running over the precisions of every localization of the files, the ring's radius (the median distance of the counted localizations from the centres), the band (40 to 70 nm), the cutoffs (corner precision) and (count precision), and the window , the chances are averages over the field:

the localization's distance from the centre. A corner localization at distance crosses into a given neighbour's segment when its angular error exceeds the margin , with the angle of the corner's two copies either side of its centre:

averaged over in the band and over the corner localizations, the 4 nm for the tilt of the pore and the rotation fit.

One copy is labelled with probability (the ELE) and blinks times, geometric with mean (a fluorophore imaged until it bleaches), so its generating function is

One corner. Each blink is a corner localization (), a counted one only (), or neither; a corner localization stays, or spills left or right, with . With counting the localizations, is the generating function of the corner's localizations with the channels in empty ( the share left), and inclusion and exclusion over give the weight of each of the 8 combinations of (stays, spills left, spills right).

The ring. A corner is seen when one of its localizations stays, or a neighbour spills one into it. Going round the ring, a corner's state is whether it is seen so far and whether it spills right; the next corner decides the first. That is a transfer matrix , counting the corners seen, and the trace of is the generating function of the pair (corners seen , localizations ). Evaluated at the roots of unity and transformed back by a 2D FFT, it gives exactly.

The likelihood over the pores with (fit from) is

maximised by Nelder-Mead from three starts; the errors are the square roots of the inverse of its curvature, by finite differences. Conditioning on is what makes a segmentation that loses sparse pores harmless: those pores are out of the sample and out of the model alike.

What it was tested on. Simulated Nup96 pores tilted by up to 10°, imaged to full bleaching, with 500 or 5000 photons per blink, 1 to 10 blinks per copy and ELEs of 0.35 to 0.7, segmented with the same checks among blobs, filled clumps and filaments, 1000 pores at a time. Fitted from 5 corners, the ELE came out within about 3 points at 5000 photons and within about 3 at 500 with three blinks. Most of what is left is junk that reaches 5 corners, largest at high ELE and many blinks, where the histogram is least sensitive: −11 points at 500 photons, 10 blinks and ELE 0.7, −6 fitted from 6 corners. Without the junk the fit is within 1.5 points at 5000 photons.

What it assumes. Every pore has 32 copies, and all its localizations are its own; the same ELE and blinking in every pore; a geometric number of blinks; a blink's brightness independent of its fluorophore; and one grouped localization per blink. A grouping that leaves a blink in several rows – smappy's links within a fixed 50 nm, which a dim frame at 500 photons misses – reads as more blinks. On a layer that is not grouped at all the plugin still runs, and its text says so.

Which counts. The counts are those of an NPC Corners evaluation, made by the evaluation window or a chain. With one, it is used whatever it is called; in a chain, the one the chain itself made. results from lists every NPC Corners evaluation on the ROIs, after auto, which says which one it would take. With several – NPC Corners renamed and run with other settings, to compare – and auto chosen, the plugin asks before it runs, with a button per evaluation and its settings beside it, and the answer goes into results from, so it is asked once. The cutoffs of the model are those that evaluation counted with, as stored with its results, not what the evaluation window holds now. If some sites were counted with other settings than the rest under the same name, the plugin refuses and asks for them to be evaluated again.

Simulated data. When the sites come from a simulated table, the plugin also reports the efficiency it was simulated with, and fits the labelled corners of the same pores (drawn again from the recipe, as Ground Truth does; a site's pore is the copy most of its localizations belong to).

SMAP's method fits the histogram of SMAP's corner count (n_corners_smap) alone, with the binomial model, the chance a corner shows,

by the likelihood renormalised to fit from .. fit to, or by SMAP's least squares on against the square root of the histogram, with a bootstrap error. It measures the corners as counted, strays and losses included.

Parameters

settingdefaultwhat it does
method
method
corners and localizationsThe joint model of corners and localizations, or SMAP's corner histogram alone.

The joint model by default. SMAP's method needs no precision and gives numbers to compare with SMAP.

Choices: corners and localizations; corners (SMAP)
fit from
fit_min
5Only pores with at least this many corners.
  1. 6 removes more junk and costs where few pores show 6 corners (one blink

per fluorophore, low ELE); 4 keeps the sparse pores a segmentation is most likely to miss or miscentre.

results from
evaluation
autoThe evaluation whose results are analysed; auto: the only one there is, or the chain's own – asked when there are several.
corners (more)
corners
8Corners of a pore.

8 for the nuclear pore.

at least 2
proteins per corner (more)
per_corner
4Copies of the labelled protein in one corner.

4 for Nup96 and the other proteins with 32 copies per pore; 2 for one with 16.

at least 1
fit to (more)
fit_max
8Most corners in the fit range (SMAP's method).

SMAP's method only; usually 8.

SMAP fit (more)
fit
maximum likelihoodHow SMAP's method fits its histogram.

SMAP's method only. The likelihood is right for small counts; SMAP's least squares is kept to compare.

Choices: maximum likelihood; SMAP's least squares
bootstrap (more)
bootstrap
100Resamplings of the sites for SMAP's error; 0: none.

SMAP's method only. 100 gives the error to two digits.

Output

With SMAP's method, the corner histogram and the binomial at the fitted efficiency.

Differences from SMAP

Ported from SMAP's ROIManager/Analyze/NPCLabelingEfficiency and shared/fitNPClabeling (Ries 2020), which are kept as the corners (SMAP) method.

References