De novo 3D model generation

relion uses a Stochastic Gradient Descent (SGD) algorithm, as was first introduced in the CryoSPARC program [PRFB17], to generate a de novo 3D initial model from the 2D particles. Provided you have a reasonable distribution of viewing directions, and your data were good enough to yield detailed class averages in 2D classification, this algorithm is likely to yield a suitable, low-resolution model that can subsequently be used for 3D classification or 3D auto-refine.

Running the job

Select the Select/class2d_template/particles.star file on the I/O tab of the 3D initial model jobtype. Everything is aready in order on the CTF. Fill in the optimisation tab as follows (leave the defaults for the angular and offset sampling):

Number of classes:

1

(Sometimes, using more than one class may help in providing a ‘sink’ for sub-optimal particles that may still exist in the data set. The additional argument --sgd_skip_anneal may then also be useful. In this case, we will just use a single class in order to speed up things).

Mask diameter (A):

200

(The same as before).

Flatten and enforce non-negative solvent:

Yes

Symmetry:

C1

(If you don’t know what the symmetry is, it is probably best to start with a C1 reconstruction. Also, some higher-symmetry objects may be easier to solve by SGD in C1 than in their correct space group. This data set is great data, and would also work in the correct point group D2. However, to illustrate how to proceed from C1 to D2, we will run the SGD in C1.)

Typically, in first instance one would not change anything on the SGD tab, as the default are suitable for many cases. However, in order to speed things up for this tutorial, we will only perform half the default number of iterations. Therefore change:

Number of initial iterations:

25

Number of in-between iterations:

100

Number of final iterations:

25

On the Compute tab, optimise things for your system. You may well be able to pre-read the few thousand particles into RAM again. GPU acceleration will also yield speedups, though multiple maximisation steps during each iteration will slow things down compared to standard 2D or 3D refinements or classifications. We used an alias of symC1 for this job. Using 4 GPU cards, 5 MPI processes and 6 threads per MPI process, this run took approximately 15 minutes on our system. If you didn’t get that coffee before, perhaps now is a good time too…

Analysing the results

Look at the output volume (InitialModel/job015/run_it150_class001.mrc) with a 3D viewer like UCSF chimera. If you recognise additional point group symmetry at this point, then you will need to align the symmetry axes with the main X,Y,Z axes of the coordinate system, according to relion’s conventions. Use the following command line instruction to do this:

relion_align_symmetry --i InitialModel/job015/run_it150_class001.mrc \
  --o InitialModel/job015/run_it150_class001_alignD2.mrc --sym D2

And after confirming in UCSF chimera or relion_display that the symmetry axes in the map are now indeed aligned with the X, Y and Z-axes, we can now impose D2 symmetry using:

relion_image_handler --i InitialModel/job015/run_it150_class001_alignD2.mrc \
  --o InitialModel/job015/run_it150_class001_symD2.mrc --sym D2

The output map of the latter command should be similar to the input map. You could check this by:

relion_display --i InitialModel/job015/run_it150_class001_alignD2.mrc &
relion_display --i InitialModel/job015/run_it150_class001_symD2.mrc &