Classification example: Difference between revisions

From Relion
Jump to navigation Jump to search
Line 21: Line 21:
<code>
<code>
  xmipp_selfile_create "win/*dat" >all.sel
  xmipp_selfile_create "win/*dat" >all.sel
  xmipp_normalize -i all.sel -method OldXmipp
  xmipp_normalize -i all.sel -background circle 60
</code>
</code>
Note that any other package may be used to do a similar thing, the most important thing is that '''the average background density should be approximately ZERO'''.
Note that any other package may be used to do a similar thing, the most important thing is that '''the average background density should be approximately ZERO'''.

Revision as of 15:17, 6 October 2011

Standard classification benchmark: ribosomes wi/wo EFG

Download data and reference

The test data used below were deposited by Joachim Frank and represent a standard benchmark for 3D classification algorithms. These 10,000 images may be downloaded from the EMDB at EBI, as well as the corresponding metadata that is stored in this PDF file. Save both files in your working directory.

EMDB entry 1056 will be used as initial reference. Save this file in the same working directory. Note this reference has the same pixel size (2.8A) and the same box size (130x130) as the data set above. Therefore, no re-scaling or windowing operations are necessary. Although this map is at a resolution of ~9 A, note that it will be low-pass filtered to 80 A in the RELION run below.

Unpack the data as follows:

tar -xf J-Frank_70s_real_data.tar
gunzip emd_1056.map.gz
mv emd_1056.map emd_1056.mrc

Note MRC maps should have extension .mrc, as explain on the Conventions & File_formats#Image_I/O page.

Normalise the images

The data come at an arbitrary density scale. As explained on the Preprocess images page, RELION prefers images without any CTF-correction, pre-centering or masking. The only thing that needs to be adjusted is the average background density that has to be approximately zero. Because the downloaded data sets has average densities of around 4, they need to be normalised. The following XMIPP (v2.4) commands set the average density of each image to 0 and the standard deviation to 1.

xmipp_selfile_create "win/*dat" >all.sel
xmipp_normalize -i all.sel  -background circle 60 

Note that any other package may be used to do a similar thing, the most important thing is that the average background density should be approximately ZERO.

Prepare the input STAR file

As explained on the Prepare input files page, RELION requires an input STAR-file to link inidividual images to their CTF information (only if no CTF-correction is to be performed, an input image stack may be used). The following will generate the STAR file for the data provided by Joachim Frank.

From the PDF select the following (14) lines and save them in a text file called defocus.dat

1 3 1347.0 1347.0 21580.
2 3 505.00 1852.0 24833.
3 3 989.00 2841.0 26450.
4 3 857.00 3698.0 28320.
5 3 475.00 4173.0 30993.
6 3 349.00 4522.0 33150.
7 3 478.00 5000.0 34588.
8 3 1242.0 6242.0 21580.
9 3 713.00 6955.0 24833.
10 3 1255.0 8210.0 26450.
11 3 1022.0 9232.0 28320.
12 3 304.00 9536.0 30993.
13 3 232.00 9768.0 33150.
14 3 232.00 10000. 34588.

Then save the following lines as a file called make_star.csh

#!/usr/bin/env csh
ls -l win/*dat | awk '{print $NF}' >imagelist
#
relion_star_loopheader rlnImageName rlnMicrographName rlnDefocusU rlnVoltage rlnSphericalAberration rlnAmplitudeContrast > all_images.star
#
set ngr = 14
set gr = 0
while ($gr < $ngr)
 @ gr++
 set nn=`head -n $gr defocus.dat  | tail -1 | awk '{print int($3)}'`
 set tot=`head -n $gr defocus.dat | tail -1 | awk '{print int($4)}'`
 set def=`head -n $gr defocus.dat | tail -1 | awk '{print $5}'`
 head -n ${tot} imagelist | tail -n ${nn} |awk -v"def=$def" -v"gr=$gr" '{print $1, gr, def, 200, 2, 0.15}' >> all_images.star
end

And execute it to generate the input STAR file with all image names and CTF information, using the command:

csh make_star.csh

Run RELION

Save the following lines in a file called example_gui3d.settings:

is_continue == false
Output rootname: == example/K4
Continue from here:  == 
Input images: == /lmb/home/scheres/work/relion/ribo_test_case/all_images.star
Reference map: == /lmb/home/scheres/work/relion/ribo_test_case/emd_1056.mrc
Padding factor: == 3
Ref. map is on absolute greyscale? == No
Initial low-pass filter (A): == 80
Particle diameter (A): == 340
Pixel size (A): == 2.8
Number of iterations: == 25
Regularisation parameter: == 4
Do solvent flattening? == Yes
Solvent mask: == 
Do normalisation correction? == Yes
Do intensity correction? == Yes
Do CTF-correction? == Yes
Only flip phases? == No
Have data been phase-flipped? == No
Ignore CTFs until first peak? == No
Has reference been CTF-corrected? == No
Symmetry group: == C
Symmetry number: == 1
Angular sampling interval (deg): == 7.5 degrees
Limit the tilt angle? == No
Limited tilt angle: == -91
Perform local angular searches? == No
Local angular search range: == 5
Number of classes: == 4
Oversampling order: == 1
Offset search range (pix): == 8
Offset search step (pix): == 1
Number of MPI procs: == 12
Number of threads: == 8
Submit to queue? == Yes
Queue name:  == openmpi_8
Queue submit command: == qsub
Standard submission script: == /lmb/home/scheres/app/relion/gui/qsub.csh
Additional arguments: ==  --random_seed 1

Start the RELION GUI by typing relion from the command line (inside the working directory). Load the example_gui3d.settings through the File Menu option. Then in the Running tab adapt the parameters for your particular cluster setup, and submit the job by clicking on the orange "Run!" button.

That's it! Just wait until your job is finished. Using 12 MPI nodes, each with 8 threads, this calculation took XXX wall-clock hours on the LMB cluster.

Anticipated results