oeway / thunder-storm

Automatically exported from code.google.com/p/thunder-storm
Other
0 stars 0 forks source link

Suggestion: Filter localizations based on local density #8

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
First of all, sorry to use the bug tracker for just a feature suggestion if it 
wasn't meant for this purpose.

I'd like to suggest a new kind of filtering based on localization density. This 
means that for every localization event,  the number of neighbors at a given 
radius (in 2D or 3D) is calculated, and if it is below a threshold number of 
neighbors, the localization is discarded. The parameters are the radius for 
neighbors searching, and the minimum numbers of neighbors necessary to keep the 
localization event.

It allows to very efficiently remove "noise" (i.e. isolated) localizations when 
reconstructing a well-structured labeling (such as microtubules in STORM 
imaging). Typically a radius of 100 nm and a minimum number of neighbors of 10 
dramatically enhances dense reconstructions (i.e. in the order of 1-5 10^6 
localizations per 30 x 30 µm image).

Do you think it could be added to ThunderSTORM? Thanks!

Original issue reported on code.google.com by lechrist...@gmail.com on 8 Apr 2014 at 10:28

GoogleCodeExporter commented 9 years ago
Posting suggestions here in Issue tracker is fine and we are glad you did so.

We think this feature is useful thus we accept the suggestion, however, it will 
take some time since we are now finalizing version 1.2.

Original comment by zitmen@gmail.com on 8 Apr 2014 at 10:53

GoogleCodeExporter commented 9 years ago
Hi Christophe,

you might be interested in new feature we've added in the latest build of 
ThunderSTORM (dev-2014-07-16-b1). Even though it was developed for a different 
purpose, it can serve well for local density filtering.

Here is how it works:
1) load data into the Results table
2) run Plugins > ThunderSTORM > Colocalization > CBC
3) now we need to do a little workaround step; lets say you want radius 100nm - 
then set radius step to 50nm and step count to 2 (this is simply because the 
minimum number of steps for CBC is 2 - you could also set 100nm radius and 2 
steps, which gives you the same result but it will be little slower); finally 
uncheck all the checkboxes except the last one and hit OK; (see attached 
screenshot)
4) two new columns have been added into your table; it should be fairly easy to 
apply the filter of minimum number of neighbors, say you want more than 10; 
write `neighbors_in_dist_100 > 10` in the Filter and hit enter (or click Apply)

Hope it helped. We will add the UI for local density filtering later, so there 
will be much less steps involved in future.

Best,
Martin

Original comment by zitmen@gmail.com on 16 Jul 2014 at 9:33

Attachments:

GoogleCodeExporter commented 9 years ago
I forgot to mention that this feature is 2D only, thus the radius is of a 
circle, not a sphere.

Original comment by zitmen@gmail.com on 16 Jul 2014 at 10:00

GoogleCodeExporter commented 9 years ago
local density based filtering has been added to the results table in revision 
47707eb79b20
daily build will be available later today

----------------------------------
The new feature works for both 2D and 3D. The module is able to work only with 
a single radius. If you need filtering based on more radii, e.g., 3 molecules 
in 20nm && 5 in 50nm, then you have to use the CBC module as described above.

Original comment by zitmen@gmail.com on 27 Oct 2014 at 1:15