2D class mapping onto 3D volumes

Hi all,

Im fairly new to EM but I thought I useful feature would be to map 2D classes onto a particular view of a 3D volume (either ab initio or refinement) so you can see the 2D view that corresponds with the class. I have a tough time with some classes to see or interpret what class the view is. This is important for heterogeneous samples where a view could be for monomer or could be for dimer. If I could see how the class maps to the reconstruction it may help with cleaning steps during 2d classification.


If you have a model you can create templates at all orientations and identify views as rotations from others

1 Like

The alignement algorithms are not the same, and AFAIK the information from 2D class is not carried over to 3D alignement. This is actually good to avoid bias. So although I think I understand what you are trying to do, that is not how I - and I think most people - work. For instance if you start filtering out 2D classes that don’t seem to fit what you expect to be the right 3D volume, you might start driving the 3D reconstruction to something completely artificial. Instead, I usually employ 2D classification just to remove what really looks like junk, and then use ab-initio in multi-classes, and/or heterogeneous refinement, 3D classifications and 3DVA to separate different conformations if they exist. This should also work for different oligomerisation states provided that you have good SNR and enough images.

1 Like

Thanks for the response.

In general, what is your 3d protocol for cleaning? I guess my concern is I have particles that are very different in size, such that I have optimized boxes for those given particles I am trying to refine.

Also, I have tried mutli-class ab initio (probably incorrectly) and it looks like rather than giving a junk class to filter those misses, it just splits the dataset into two sets of views.

The other question I would have is how do you distinguish between junk ab initio/refinements compared to something real?

Hi @mjmcleod64! Let me see if I can elaborate on what a typical (for me) 3D cleaning workflow looks like. Thanks for this post — I’ve made a note to add a page on this to our guide!

Before I dive in, I’m a little curious about your ab initio results. In your case with particles of different sizes, ab initio should still do a pretty good job creating two good volumes, one for each particle. Could you show what your ab initio results look like and explain a bit more about how you set up the jobs?

3D Particle Cleaning

In general, @carlos’s workflow is also the one I’d follow:

First, perform 2D Classification only once or twice, removing only classes which are clearly 100% junk. I do acknowledge that it takes some time to decide what is and isn’t junk, since our SNR is so bad to begin with!

Here’s an example of a class I’d consider 100% junk and discard:

An example of a bad 2D class

And here is a class that, although it definitely contains a lot of junky particles, I’d still keep:

A mediocre class with still plenty of noise

And finally, here’s a clearly good class where I expect almost all of the particles are good views

A good class

Next, I would perform ab initio reconstruction once, requesting a class for each good construct I have and a few extra classes for junk. In your case, I’d probably try requesting 6 or so classes.

Here are examples of my ab initio classes from the same particle set as those 2D classes. Since I only expected one good class, I only requested 3. I end up getting one clear “good” class and two classes which look “bad”. They have no real resemblance to what I was seeing in 2D, lots of disconnected blobs of density, and when I contour them down they don’t obey my expectations of what density should disappear at what contours. This is another thing that, unfortunately, largely relies on intuition. I’ve made a note to add some discussion of this to the guide!

Now that I have a good 3D class, I’ll use one copy of the good map with several copies of a junk map (doesn’t matter which) in a Heterogeneous Refinement to try to pull out more junk which snuck into my good particle stack. This also has the advantage of pulling out low-contrast, blurry, partial, aggregated, or otherwise “bad” images of my particles.

This heterogeneous refinement kept 500k particles in my Good class, but pulled out 100k bad particles in the three bad classes (combined). I keep performing cleanup steps like this until all of my classes look good, and then consider that my “clean particle stack” for all future refinements.

I hope that helps explain a bit about a 3D cleanup pipeline, and I’m happy to answer any new questions you have!

1 Like

Thanks for the thorough response. This makes sense. I started another discussion @ Generalized protocol for 3D classification of particles - more so specifically about 3d classification. There are a bit more details there about my project, and I can add some images of 2D classes, ab initio results, etc.

My one question from your response would be is it better to duplicate 1 junk volume or to have many different junk volumes?

Depends. Some datasets I’ve had better results with just one dump class, while others have done better with two or three.

I’ve not found duplicating the same reference as a dump has helped much, though.

1 Like