What's the best way to process 2D acquisitions? #118
-
I'm trying to use decode for 2D SMLM acquisitions (no astigmatic lens, regular PSF). I acquired the corresponding PSF, fitted it with splines in SMAP, and trained DECODE on it - so it will actually try to fit the blinking events in 3D, even if it will be non ideal with a regular PSF (problem of non-determination between +Z and -Z due to symmetry, and uncertainty is worst around Z=0). I plan to only use the XY info anyway (although I'm curious to see how it will perform for Z). Is that the best way? Or are there specific options to train DECODE and subsequently fit only for X and Y coordinates that would be faster/more precise? |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 24 replies
-
Hey, |
Beta Was this translation helpful? Give feedback.
-
What I have done following your suggestion is to change the training yaml file as such: The TensorBoard monitoring looked kinda strange at the beginning, with zero localizations on the inferred image, yet good values for the lateral RMSE on the graphs. Now it's getting better with some inferred localizations. It seems to be inferring only very bright and isolated emitters so far (50 epochs), compared to a reference 3D training I'll see what happens with more training, hopefully it will pick up fainter blinking events. @ASpeiser @Haydnspass (tagging you so that you hopefully get a notification) |
Beta Was this translation helpful? Give feedback.
-
So even with Evaluation match_dims: 2, it's still detecting with quite a low efficiency compared to 3D, After more than 800 epochs it looks like this (left is 3D typical, righht is 2D): |
Beta Was this translation helpful? Give feedback.
-
Just wanted to add: using the patched dev version is required for training, but also for fitting with the resulting model. I tried to train in the patched version and use the model in a vanilla 0.10 install, but it started fitting aberrant Z position rather than assigning Z=0 to all events (like the patched version does) |
Beta Was this translation helpful? Give feedback.
-
To fit 2D data, do I still need to work with the dev branch, or are all these issues fixed in the main branch? |
Beta Was this translation helpful? Give feedback.
-
Hello! I have read the discussion and tried to set param.HyperParameter.disabled_attributes = 3, but it didn't work well on the model(version decode_v0_10_1rc1), as pointed by cleterrier before that a lot of events were missed. So is there a solution to this version and I can fix it by myself? Thanks a lot! |
Beta Was this translation helpful? Give feedback.
Hey,
sorry for the wait, we can't figure out how to get notifications for new topics posted here ...
About your question, there is a parameter setting for that scenario: param.HyperParameter.disabled_attributes = 3
should disable learning of Z. More precisely it will simply set the target to 0, so the network will learn to just output zeros everywhere.
I'm not sure that this has been tested much. It's not impossible that this does funky things with the loss (because you can get really high likelihoods). So maybe you give it ago and report back? If it behaves weirdly we can just set the sigma to a constant value.