Unusual empirical dose weights at high dose

Hi, we have a sample collected at unusually high total dose - it was nominally 109 e-/Å^2, already high (it is a very small particle), but ended up 153 e-/Å2 due to a pixel size error of ~20%.

Nevertheless it goes to 2.9Å and we would like to try reference based motion correction in CS v4.4. Hyperparameter optimization seems to proceed smoothly, with a clear optimum. When it comes to the empirical dose weighting step though, things look a little odd:

It seems like for the very late frames, there are actually higher weights at high resolution than at low resolution - this seems counterintuitive to put it mildly. Has anyone else seen this, or have a possible interpretation?

Secondarily - is the empirical dose estimation completely independent of the dose entered during Patch Motion? Or is this dose used as some kind of prior to help restrain estimation of the dose weights?

Cheers
Oli

EDIT:

Here is the hyperparameter optimization output, in case it is useful:

Particles are quite sparse, but trajectories don’t seem unreasonable given small size (60kDa) and sparse distribution:
image

EDIT2:

The resolution perhaps unsurprisingly did not improve after this run and in fact got a little worse - decreasing from 2.94 to 3.03 Å. Grid type was Quantifoil UltraAuFoil 0.6/1

1 Like

Hi Oli,

I noticed this as well with a large (260 kDa) protein with very few (25) frames.

I didn’t think too much of it because it took my resolution from 2.23 Å to 2.00 Å. I did notice, though, that in the example job page, they are showing the same phenomenon, albeit, somewhat attenuated:

I was wondering if motion has settled by then, but I imagine that ionization damage would far outweigh that. (Assuming motion even settles, I think that’s still a somewhat controversial hypothesis).

2 Likes

Interesting… what was your total dose in this case?

56 e-/Å2. I have another data collection that was 60e-/Å2 that was the same particle, but on gold grids instead of copper, and looking at that job, it’s even more noticeable:

I haven’t finished the reconstruction there, though, so I’m not sure how much it improved resolution.

1 Like

Glad it’s not just my sample but yes, puzzling…

The returning high res weight at high dose has been an issue for me since the beta. IMO there should be some kind of expected maximum weight or something to make sure those high dose / high frequency weights go to zero.

@ccgauvin94 when you say copper vs. gold, do you mean carbon foils with copper and gold mesh only, or do you mean gold foil?

1 Like

I can see exactly the same behavior at 70 e/A2. I could not get any better reconstruction after applying polishing (2.11 A before → 2.11 A after). This would indicate that the polishing implemented here does not necessarily improve the final data.
image(1)

First dataset was Quantifoil Cu/Carbon, second was Protochips Au-Flat, which I believe is gold mesh, gold foil.

Do you use an objective aperture? Are there gold reflections in your micrographs?

I had the objective aperture in, so I suspect it’s not that.

I see, thanks. I think it’s most likely a processing artifact, but it’s possible there’s a physical effect thus the questions.

1 Like

We were using gold grids, but had objective aperture in and there were no obvious gold reflections in the mics

Mine were Graphene oxide grids and no OA. I could see the diffraction spots from GO. Could the strange behavior of dose weights coming from this?

We weren’t using GO so I don’t think that’s it

For troubleshooting purposes, it would be useful in RBMC to be able to individually switch off the dose weighting (instead using the dose weighting from Patch Motion) and the per-particle motion correction (instead just using original trajectories from Patch Motion).

This would also be helpful for figuring out where an improvement derives from, if there is one, and for sparse particles it is possible that the dose weighting alone might be better than dose+motion.

Very interesting topic. We’re aware of this phenomenon – where the correlation appears to “recover” in late frames – but this thread shows more extreme examples of it than I, at least, had seen previously. As others have suggested, we do think the late frame high frequency correlation is overfitting (by that point the high frequency detail has been destroyed, so how could it be anything else). In the cases I’ve seen, it has never been bad enough to actually harm the reconstruction resolution, relative to using the Grant & Grigorieff curve, but I couldn’t say whether or not that’s the case in some of the examples here.

For what it’s worth (and I wish to be clear that this is just my anecdotal experience at this point), I think that most of the benefit of empirical dose weighting comes from identifying and accounting for situations where the first frame has some frozen-in motion blur or for some other reason is not the most reliable source of information about the high frequency signal (which the Grant and Grigorieff curve would take it to be). I’ve seen some datasets where patch motion pretty much nails the particle motion, and where the first frame is actually the best, and in those cases, reference based motion correction doesn’t result in any improvement.

is the empirical dose estimation completely independent of the dose entered during Patch Motion? Or is this dose used as some kind of prior to help restrain estimation of the dose weights?

It is completely independent. No dose weighting is applied as the trajectories are being computed.

For troubleshooting purposes, it would be useful in RBMC to be able to individually switch off the dose weighting

You actually can already do this, though it’s a bit inconvenient. You’ll notice that there’s a job called “apply trajectories”. It takes particles that already have per-particle trajectories (e.g. from local motion or reference motion) and reconstructs them. It can optionally take empirical dose weights but if they’re not supplied, it will use the normal dose weighting curve.

Thank you to everyone who has shared their experiences in this thread; as I said, we were aware of this phenomenon, but had never seen such extreme examples. The information shared here may help inform us as we consider future improvements to reference based motion correction.

4 Likes

Thanks Harris! Regarding this:

For troubleshooting purposes, it would be useful in RBMC to be able to individually switch off the dose weighting

You actually can already do this, though it’s a bit inconvenient. You’ll notice that there’s a job called “apply trajectories”. It takes particles that already have per-particle trajectories (e.g. from local motion or reference motion) and reconstructs them. It can optionally take empirical dose weights but if they’re not supplied, it will use the normal dose weighting curve.

I guess this means just remove the dose weights slot from the lower level inputs?

This also seems like a better way of optimizing the nominal dose (if using Grant/Grigorieff dose weights), rather than re-running Patch Motion & Extraction multiple times.

Apply trajectories does not have any option for applying F-crop when writing out particles - for high mag or super-res, it would be useful if this was there as well as in the main RBMC job.

Is there any way of applying the empirical dose weights without the per-particle trajectories from RBMC/local? If no hyperparameters are provided, will Apply Traj. use the inferred trajectories from Patch Motion?

Is there a way to get some “happy medium” between the empirical dose weights and just using the Grant & Grigorieff curve? I’m wondering about cases when the fitting for the early frames (ex. the observation that the first frame or two aren’t optimal) would provide improvement but the overfitting in the last frames ends up masking this benefit this, so having something like a hyperparameter to force the value of the empirical weights drop off over time could be useful.

Edit: sorry didn’t notice that this was already addressed in another thread - Set frame range for RBMC [Feature request]

Hi Harris,

Apply trajectories is quite a long running job - ~20s per movie.

In the output there is a slot “incomplete movies”, but it does not seem to be populated (my GPU just crashed while it was halfway through, so I tried to mark it as complete and use the outputs to no avail).

Would it be possible to add an option to do this - in the event of a crash, to continue apply trajectories on the incomplete movies, then combine the output particle stacks for further processing?

It would also be useful if there was some kind of progress bar, or at least a periodic indicator in the log of how many movies have been processed vs how many are remaining.

It seems for me that RBMC jobs done after local motion correction seem to have more of the late frame high weight problem than jobs run using inputs that had never been through local motion. Does this line up with other’s experiences?