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, typemodule avail RELION
To select a module, typemodule 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, typemodule 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:
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,
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:
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.
Create a qsub script with the specific commands required:#!/bin/bash # This file is runRELION.sh #PBS -N RELION #PBS -e RELION.err #PBS -o RELION.out module load RELION cd $PBS_O_WORKDIR mpiexec --bynode -n 4 relion_refine_mpi --o Class2D/run1 \ --i ./particles.star --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 runRELION.sh
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