Difference between revisions of "Hints for improving a refinement"

From Dynamo
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
  
  
Ok, you did your average and you are not yet satisfied. Looks like you should be able to get better results?
+
There are several strategies that can be tried upon completion of an average to try to push the resolution.
  
== Classification==
+
If you did attain convergence (i.e., no movement of particles, and no changes in the FSC between successive iterations) for a given angular sampling and a given frequency, you can proceed both ways: refine the angles or go for a higher cutoff frequency.
Do you have a single class? If you are aligning two or more classes together, the alignment would get stuck at some point (funnily enough, in this circumstances the FSC can easily lie about the attained resolution, even when using a golden standard procedure!).  A first approach to diagnose this is to check the cross correlation of the alignment (in column 10 of the [[table]]). A simple inspection of the histogram  can be very revealing, especially if you detect different behaviours when considering particles stemming from different tomograms (column 20) or models (column 21).
+
If you are already scanning on a very high angular sampling (around one degree), you should estimate your actual resolution and check that your filters ({{t|lowpass}} parameter in the project) are not too coarse in relation to the actual resolution of your average.
  
The next of  level approach would be  running a [[PCA]]  on the last [[refined table]]. You probably want to start this approach using as classification mask the ''alignment'' mask that was used by the alignment project.
 
  
Remember that a quick way to check the results of a classification project is by looking at the histograms of the eigencomponents.
+
==Consider possible heterogeneity==
 +
 
 +
A factor that can be stopping you from attaining higher resolutions is heterogeneity. If you are aligning two or more classes together, the alignment would get stuck at some point. If you are lucky, the average will be a sort of weighted average of different classes, assuming the  particles on each class align to the "wrong" average on a coherent way (funnily enough, in this circumstances the FSC can easily lie about the attained resolution, even when using a golden standard procedure, yielding a totally artificial overestimation of the resolution).  On the other hand, your current average can be very far away from the true class averages, and  the particles will add on an incoherent way.
 +
 
 +
=== Static Classification===
 +
Luckily, after some rounds of alignment, we have already some information that can be used to try to understand what is happening in your data.  A first approach to diagnose this is to check the cross correlation of the alignment (in column 10 of the [[table]]). A simple inspection of the histogram  can be very revealing, especially if you detect different behaviours when considering particles stemming from different tomograms (column 20) or models (column 21).
 +
 +
The next level of detail approach would be to run a [[PCA]]  on the last [[refined table]]. If you are using PCA to diagnose a convergence problem, you probably want to start this approach using as classification mask the ''alignment'' mask that was used by your last alignment project. 
 +
 
 +
Remember that a quick way to check the results of a PCA project is by looking at the histograms of the eigencomponents.
  
 
  <tt> ddb myProject:eigentable -ws eigentable</tt>
 
  <tt> ddb myProject:eigentable -ws eigentable</tt>
Line 17: Line 25:
 
  <tt> o = dpkpca.eigentable.showScatterEigencomponents(eigentable,8);</tt>
 
  <tt> o = dpkpca.eigentable.showScatterEigencomponents(eigentable,8);</tt>
  
==Geometrical validation==
+
===Classification and Alignment===
 +
If inspection of cross correlation and eigencomponents didn't reveal any clear hints of characterizable heterogeneity, you might be stuck in the scenario where the alignment procedure failed to align the different classes coherently. In this case, you might want to try a multireference procedure, which implements alignment and classification simultaneously.
 +
 
 +
In this case, when setting your multiresolution project, you might want to go back on your alignment parameters and let them a bigger range than the one used on your current [[refined table]].
 +
 
 +
 
 +
==Geometric validation==
 
If you have a priori geometrical information, use it. This will be very different for different geometries. Some hints:  
 
If you have a priori geometrical information, use it. This will be very different for different geometries. Some hints:  
 
You can check if the refinement moved your particles away from the membranes or filaments where they were supposed to lay. You can check if the normals are pointing in roughly the correct direction on membranes, or that you don't have sudden changes of polarities in a filament.   
 
You can check if the refinement moved your particles away from the membranes or filaments where they were supposed to lay. You can check if the normals are pointing in roughly the correct direction on membranes, or that you don't have sudden changes of polarities in a filament.   
Line 28: Line 42:
 
  <tt>dtplot file.tbl -pf corrected_oriented_positions;</tt>
 
  <tt>dtplot file.tbl -pf corrected_oriented_positions;</tt>
  
 +
where <tt>myTable</tt> is probably a subtable of your all-particle table... If you have a global table embracing many tomograms, with many geometric entities (filaments)  inside each one, you probably want to analize them separately, creating subtables attending to column 20 (tomogram) or column 21 (model)
  
where <tt>myTable</tt> is probably a subtable of your all-particle table... If you have a global table embracing many tomograms, with many geometric entities (filaments)  inside each one, you probably want to analize them separately, creating subtables attending to column 20 (tomogram) or column 21 (model)
+
==Refining against tight masks==
 +
In the final stages of a refinement, it can be advisable to give up the default geometrical masks typically used on the first refinement stages and to [[Construction of masks|define instead a tight mask]] that is close to the density of interest, approximated by the last average available.

Latest revision as of 14:53, 19 May 2016


There are several strategies that can be tried upon completion of an average to try to push the resolution.

If you did attain convergence (i.e., no movement of particles, and no changes in the FSC between successive iterations) for a given angular sampling and a given frequency, you can proceed both ways: refine the angles or go for a higher cutoff frequency. If you are already scanning on a very high angular sampling (around one degree), you should estimate your actual resolution and check that your filters (lowpass parameter in the project) are not too coarse in relation to the actual resolution of your average.


Consider possible heterogeneity

A factor that can be stopping you from attaining higher resolutions is heterogeneity. If you are aligning two or more classes together, the alignment would get stuck at some point. If you are lucky, the average will be a sort of weighted average of different classes, assuming the particles on each class align to the "wrong" average on a coherent way (funnily enough, in this circumstances the FSC can easily lie about the attained resolution, even when using a golden standard procedure, yielding a totally artificial overestimation of the resolution). On the other hand, your current average can be very far away from the true class averages, and the particles will add on an incoherent way.

Static Classification

Luckily, after some rounds of alignment, we have already some information that can be used to try to understand what is happening in your data. A first approach to diagnose this is to check the cross correlation of the alignment (in column 10 of the table). A simple inspection of the histogram can be very revealing, especially if you detect different behaviours when considering particles stemming from different tomograms (column 20) or models (column 21).

The next level of detail approach would be to run a PCA on the last refined table. If you are using PCA to diagnose a convergence problem, you probably want to start this approach using as classification mask the alignment mask that was used by your last alignment project.

Remember that a quick way to check the results of a PCA project is by looking at the histograms of the eigencomponents.

 ddb myProject:eigentable -ws eigentable
 o = dpkpca.eigentable.showHistograms(eigentable);

or by plotting the correlation between the eigencomponents and the tilt (in column 8)

 o = dpkpca.eigentable.showScatterEigencomponents(eigentable,8);

Classification and Alignment

If inspection of cross correlation and eigencomponents didn't reveal any clear hints of characterizable heterogeneity, you might be stuck in the scenario where the alignment procedure failed to align the different classes coherently. In this case, you might want to try a multireference procedure, which implements alignment and classification simultaneously.

In this case, when setting your multiresolution project, you might want to go back on your alignment parameters and let them a bigger range than the one used on your current refined table.


Geometric validation

If you have a priori geometrical information, use it. This will be very different for different geometries. Some hints: You can check if the refinement moved your particles away from the membranes or filaments where they were supposed to lay. You can check if the normals are pointing in roughly the correct direction on membranes, or that you don't have sudden changes of polarities in a filament. If you are oversampling the surfaces of viruses, you should check that your final tables after cleaning overlapping particles look decent (regularly distributed).

For visualization purposes you probably want to use dtplot with the profile corrected_oriented_positions, i.e.:

dtplot(myTable,'pf','corrected_oriented_positions');

or

dtplot file.tbl -pf corrected_oriented_positions;

where myTable is probably a subtable of your all-particle table... If you have a global table embracing many tomograms, with many geometric entities (filaments) inside each one, you probably want to analize them separately, creating subtables attending to column 20 (tomogram) or column 21 (model)

Refining against tight masks

In the final stages of a refinement, it can be advisable to give up the default geometrical masks typically used on the first refinement stages and to define instead a tight mask that is close to the density of interest, approximated by the last average available.