Biowulf at the NIH
RSS Feed


RELION (for REgularised LIkelihood OptimisatioN, pronounce rely-on) is a stand-alone computer program that employs an empirical Bayesian approach to refinement of (multiple) 3D reconstructions or 2D class averages in electron cryo-microscopy (cryo-EM).

How to Use

There are multiple versions of RELION available. An easy way of selecting the version is to use modules. To see the modules available, type

module avail RELION

To select a module, type

module load RELION/[ver]

where [ver] is the version of choice.

RELION can be used in both command-line mode and in GUI mode. For the GUI, you will need an X-Windows connection.


To use the GUI, on the Biowulf login node, type

module load RELION

Change directory to where your input files are and type:

relion &

This will create a window with lots of options. Set the options as appropriate. In order to launch jobs onto the cluster, you will need to set options in the 'Running' tab to specific values:

Running Tab

Most importantly, the number of MPI procs must equal the number of processors made available by the qsub command. For example, if the qsub command is qsub -l nodes=2:c16, then the number of procs is 32.

If doing a step other than Preprocessing, then set 'Number of MPI procs' to the number of nodes allocated, and 'Number of threads' to the number of processors available on each of the nodes. For example,

Running Tab 2

The 'Queue name' is irrelevant, since the qsub template will not use queues. If a specific queue is needed, then the 'Queue submit command' should be modified to include the queue. For example, qsub -l nodes=4 -q ccr will submit the RELION job to the ccr queue.

UPDATE: The above notes are for version 1.2. Version 1.3 (the current default) has a different layout for the GUI. However, the input is essentially the same. Here is an example of what the 'Running' tab window might look like prior to submitting the job:

Running Tab in version 1.3

Submitting RELION in batch jobs

While jobs can be run interactively through the GUI, RELION jobs can also be run in batch. The way to do this is by clicking the 'Print command' button, rather than the 'Run!' button. This will print the RELION command in the terminal window. For example:

$  *** The command is:
`which relion_particle_polish` --i  --o shiny  --angpix 1 --movie_frames_running_avg 5 --dont_read_old_files  --sigma_nb 100 --perframe_highres 6 --autob_lowres 20 --sym C1 --bg_radius 100 --white_dust -1 --black_dust -1 

RELION jobs are configured through the GUI, then the commands are printed to the terminal window. Copy and paste the commands into either qsub scripts or a swarmfile.

Qsub Script

Create a qsub script with the specific commands required:

# This file is

#PBS -e RELION.err
#PBS -o RELION.out

module load RELION
mpiexec --bynode -n 4 relion_refine_mpi --o Class2D/run1 \
  --i ./ --particle_diameter 360 \
  --angpix 7.08 --iter 25 --tau2_fudge 2 --flatten_solvent \
  --zero_mask --ctf --K 50 --oversampling 1 --psi_step 10 \
  --offset_range 5 --offset_step 2 --norm --scale   --j 16
echo "Done!"

In this case, we are running a 2D refinement run on 4 c16 nodes:

qsub -l nodes=4:c16


Swarm is beneficial if the RELION jobs can run entirely on a single node, and if there are multiple commands. Package the RELION commands into a single swarmfile, e.g.:

Then submit the swarm with appropriate amount of cores and memory, for example 3 gb per process:

swarm -f swarmfile -g 3 --module RELION