Case Study: Yeast U4/U6.U5 tri-snRNP

September 17, 2018
Ali Haydaroglu

The tri-snRNP complex is a part of the spliceosome activation process, and is a great case study for local refinement due to its flexible, multi-part composition. The dataset of "clean" particles can be found as a part of EMPIAR-10073. Note that the .star file included has a few corrupted micrographs, and the following file can be used to get the valid subset of particles. The original investigation of this compound was carried out by Nguyen et al., and the resulting reconstructions from their process can be found on EMDB. In this case study, we will show how the new Local Refinement toolkit in cryoSPARC will produce results that improve upon the published results.

Refining the Overall Structure

Before we can use any of the local refinement tools, we need an accurate picture of the overall structure of the tri-snRNP. There are two approaches we can use for this initial step - treating the data as a homogenous or heterogenous sample.

Homogenous Processing

Without any prior knowledge of the heterogeneity of the data, homogenous reconstruction is a natural first step. We can easily run a single-class Ab-Initio Reconstruction on the imported particles, followed by a Homogenous Refinement using all of the default parameters. The Refinement should get down to a gold-standard FSC of about 3.7Å after FSC mask auto-tightening.

snRNP reaches 3.7Å after Homo. Ref.

If you inspect the final structure closely, you will see that certain regions have much better spatial resolution than others. Since we have a suspicion that we are dealing with a flexible specimen, we can use the Local Resolution job to see which regions of the structure are most affected by the heterogeneity. After running the Local Resolution job, download the map_locres volume, as well as the final map (map or map_sharp) from the Homogenous Refinement job. Open both volumes in Chimera. Using the Surface Color tool (Tools > Volume Tools > Surface Color), you can color the refined map by the values of the local resolution and manually set the color thresholds.

snRNP Local Resolution

From here, we can see that the body region of the compound gets to a relatively high resolution, while the head and foot regions of the compound, which are "floppier" stay above 5Å. This information can help us in selecting regions to locally refine.

Since different regions of the structure are at a different resolution, we can try out Non-Uniform Refinement to even further improve the resolution of the overall structure. With the default parameters, NU-Refinement can get the tri-snRNP structure down to 3.6Å.


Heterogenous Processing

Once you know that you are dealing with a heterogenous dataset, you can run the Ab-Initio Reconstruction with multiple classes to identify the different states. We ran the snRNP dataset with 4 classes, and individually refined each of the four. Two of the classes revealed the open and closed states of the complex.

cryoSPARC v2's new tree view is really neat for visualizing this workflow!

Tree View

Local Refinement

The Local Refinement tools in cryoSPARC allow you to independently refine the flexible regions of a compound. You can select a region of the volume with a mask, and refine the alignments of the particles using only the selected subregion. You can use the Particle Subtraction job to remove signal from an unwanted region of the volume from previously-aligned particles.

The following sections will describe each step of this process in detail, but here are the steps at a high level:

  1. Generate masks for the region of the structure you want to refine, and the region that will be subtracted
  2. Find a fulcrum point
  3. Use the Particle Subtraction job to subtract unwanted signal from particles
  4. Run a Local Refinement job to refine the region of interest
  5. Sharpen the results to improve the interpretability of the maps

Mask Selection and Generation

It's important to be careful when selecting the masks to be used in the local refinement. The closer the subvolume is to being rigid, i.e. it doesn't bend or deform, the more effective the local refinement will be. You can use the results of the Local Resolution job to help you identify these regions. You want to create two masks - one including only the region you are interested in, and another that includes every other region of the structure except the region of interest. To generate the necessary masks, you can use UCSF Chimera and follow the instructions below.

To start making the mask, open up your volume in Chimera. First, you want to set the viewing level at a value that minimizes the amount of "dust" visible outside of the structure, while also making sure all of the structure is also visible. This is typically a little higher than the optimal viewing level. For our structure, this was around 0.18. Now, we will binarize the mask using thresholds. Using Chimera's command line (Favorites > Command Line), type the following two commands: vop threshold #0 minimum 0.18 set 0 and vop threshold #1 maximum 0.17 set 1. Change #0 for the model ID in your session, and 0.18 with your optimal viewing level. These two commands will map every voxel with a density below 0.18 to 0, and every voxel above 0.17 to 1. Make sure you run the second command on the output of the first one. (Note: we've occasinally encountered a bug where the maximum gets set at some value lower than 1. This is OK, you should make sure you use the correct threshold in later steps when using Volume Tools in cryoSPARC. You can also use Chimera's vop multiply command to get the values to 1.)

Navigate to Tools > Volume Tools > Volume Eraser. You will now see a transparent sphere floating next to your structure. You can use the middle mouse button to move the sphere, and press Erase to delete chunks of the binarized volume until you are left with the desired region. Note that Chimera will subtract from the currently active volume only, and it will generate a new subtracted volume instead of overwriting the original.

Volume Eraser in Chimera

Once you've created the first mask, save it as a new .mrc file. To generate the negative version of it, we can simply run vop subtract #2 #3, where #2 is the binarized overall structure, and #3 is the mask you've created. The result of the subtraction will be the negative of the mask you created. At this point, you should have two contiguous volumes generated from the original map. The masks we generated for the head look like this:

Raw Masks

Now, to make sure that you haven't excluded any important regions in your masks, and to avoid Fourier-space artifacts due to the sharp edges, we will dilate and add soft edges to the masks. You can use the Import 3D Volumes tool to import the newly-made masks into cryoSPARC - make sure you set the map type to mask in the parameters before you run the job.

You can now take the results from the import jobs, create two new Volume Tools jobs and connect them into the mask input slot of each. You can use the following parameters. This job will also fill the holes inside your structure, and give you a solid map. Make sure to specify the output type as mask.

Vol Tools Params

Changing the Dilation Radius and Cosine Padding Width may affect the results of the Local Refinement job since this mask is used to select the region of interest. We used a dilation radius of 5 and no padding for this dataset. Our masks looked like this:

Processed masks

The initial mask provided is used to select the region of the molecule that will be refined. However, the masking during each iteration refinement is done using a dynamic mask that is generated by the algorithm based on the constructed volume.

Fulcrum Selection

cryoSPARC's local refinement allows you to specify the "fulcrum" around which the subvolume of interest may rotate. Using the location of the fulcrum, cryoSPARC will re-calculate the local angular search grid to make it more accurate. This is equivalent to re-centering particles to the position of the fulcrum in each particle image, and often makes a substantial difference to the final result of local refinement.

You can leave the fulcrum parameters blank in the Local Refinement if you are unsure where it should be.

To find the coordinates of the fulcrum, you can use the Volume Tracer tool in Chimera. We will place our fulcrum at the bottom of the head region, around the marker you see pictured in the image below. Go to Tools > Volume Data > Volume Tracer to open up the Volume Tracer dialog. From mouse, select Place markers on high density. Navigate to the part of the structure you want to place the fulcrum on, and use the middle mouse to drop a spherical marker.


To get its coordinates, type getcrd sel into the command line (assuming you still have the marker selected). Note that these coordinates are in Angstroms, while the local refinement job expects a value in voxels. Simply divide the values by the pixel size, which is 1.4 for this dataset, to get the correct fulcrum. The fulcrum we found was (196, 197, 211).

Particle Subtraction

The Particle Subtraction job takes in the overall structure that you got from the NU-Refine or Homogenous Refine jobs, and subtracts a projection of a masked region of it from the original particles to create a stack of subtracted particles. These particles can be used in local refinement to get better alignments - now that the unwanted signal from a chunk of the volume is subtracted, the alignments will be based only on the region of focus.

For the snRNP, we first tried out focusing on the head region, since it seemed to be the most dynamic. So, we used the mask that included everything but the head as the input for particle subtraction. Make sure you also input the particles outputted by a previous refinement job, since the alignment3D fields are required for Particle Subtraction.

To set the Inner and Outer Radius of Reference Window parameters, you must refer to the refinement job used to generate the reference structure you are using. Since the windowing affects the scale of the particles, it is important that these values are identical to the values used in the job that generated the reference volume. The outputs of this job won't be windowed, but in order for the subtraction scale to be correct you need the windowing radii.

The Particle Subtraction job uses the two halfmaps generated in the refinement job, so it will hold up the Gold-Standard FSC assumptions. The two half-maps are also filtered before subtraction, preventing any high-resolution noise from being injected into the structure.

Local Refinement

Now, with this newly-subtracted stack of particles, we can locally refine the head region of the snRNP to get a better map.

The first parameters we set are the fulcrum parameters. Since connection between the head region and the rest of the body is not at the origin, we will have to account for this in the search for rotations. As found earlier, (196, 197, 211) will work here. There is no need to attempt to optimize the fulcrum location.

Search Ranges

The next few parameters help decide the search range and precision for the alignment step. Trying various results here can have significant impact on the results. Based on the range of motion seen in the particle from the heterogenous refinement earlier, we can start with an initial estimate of 3 pixels of shift and 25 degrees of rotation. We also used as 0.2 degrees for the final alignment resolution - the search will not attempt to align the particles beyond this value.

There are a few indicators that can diagnose a problem with your search ranges - one of them being the histograms displaying the pose & shift changes. In our case, the smooth distribution of poses suggests that we've correctly chosen the range of rotations.

Pose Change Histogram

On the other hand, there seems to be a peak at the edge of the shift extent. One possible explanation for this is a narrow search extent for shifts, though it may also be caused by an inaccurate fulcrum choice. The two parameters are coupled.

Shift Change Histogram

Other parameters

  • NU-Refinement: enabling non-uniform refinement for this dataset improved our results, in some cases substantially.
  • Override number of iterations: if you want to force a certain number of iterations, enable this parameter.


It is possible that the outputs of the local refinement will be undersharpened, so a sharpening job may improve the interpretability of the results. Using the new Sharpening Tools job with all of the default parameters and a B-Factor of -150, we can obtain a map that improves the visibility of the high-resolution features.


Applying the above process to the head region (right) brought us down to a resolution of 3.88Å, which was a 0.3Å improvement on the original publication. The foot region (left) performed even better, reaching a resolution of 3.44Å compared to the published resolution of 3.7Å.

Foot ResultHead Result

Comparing the sharpened output volumes from the head to the published volumes, cryoSPARC's improvement of the final maps is clear.

Comparing published map to cryoSPARCComparing published map to cryoSPARC

This website uses cookies to ensure you get the best experience. To learn more, please refer to our Privacy Policy