RELION¶
RELION (for REgularised LIkelihood OptimisatioN, pronounced rely-on) is a software package for structure determination using electron cryo-microscopy (cryo-EM). It employs an empirical Bayesian approach to perform image processing and 3D reconstruction.
RELION is developed by the group of Sjors Scheres at the MRC Laboratory of Molecular Biology.
For more information, see the official RELION documentation.
Package availability¶
| Compute node type | Available |
|---|---|
| CPU | ✓ |
| NVIDIA A100 GPU | ✓ |
| NVIDIA Grace Hopper GPU | ✓ |
Run RELION¶
Load the RELION module¶
Load the RELION module before starting the application:
Launch the RELION GUI¶
To start the RELION GUI in either a new project directory or an existing RELION project directory, run:
For tomographic processing, use:
Batch submission¶
RELION can submit jobs to the cluster's batch system using sbatch. The following settings are recommended.
Compute tab settings¶
Keep the following default values:
| Setting | Value |
|---|---|
| Use parallel disk I/O? | Yes |
| Pre-read all particles into RAM? | No |
| Copy particles to scratch directory | /scratch |
| Combine iterations through disk? | No |
CPU jobs¶
For CPU-only jobs:
| Setting | Value |
|---|---|
| Use GPU acceleration? | No |
GPU jobs¶
For GPU-accelerated jobs:
| Setting | Value |
|---|---|
| Use GPU acceleration? | Yes |
| Which GPUs to use | Leave blank |
| ModelAngelo | $CUDA_VISIBLE_DEVICES |
Running tab settings¶
Configure the following settings:
| Setting | Value |
|---|---|
| Number of MPI procs | 1–16 |
| Number of threads | 1–36 |
| Submit to queue? | Yes |
| Queue submit command | sbatch |
| Time limit | dd-hh:mm:ss |
Additional sbatch arguments |
Leave blank or specify additional arguments |
| Number of nodes | 1 |
| Total memory per node | 0–818 GB |
| Number of GPUs per node | 0–4 |
| Minimum dedicated cores per node | 1 |
| Additional arguments | Leave blank |
Additional sbatch arguments
Additional sbatch arguments override the corresponding settings above. If there is a conflict, the values specified in the additional arguments take precedence.
Queue names¶
For CPU jobs, use one of the following queues:
For GPU jobs, use one of the following queues:
Standard submission scripts¶
For CPU jobs:
For GPU jobs:
CPU jobs¶
The following settings illustrate a typical CPU job configuration:
GPU jobs¶
The following settings illustrate a typical GPU job configuration:
The main differences from a CPU job are:
- Queue name:
a100-daily - Standard submission script:
/opt/psi/overlays/Alps/EM/relion/5.0.1/scripts/GPU.sh - Use GPU acceleration:
Yes
By default, the GPU.sh submission script requests one GPU per job. To request additional GPUs, specify the desired number in Number of GPUs per node.
Resource allocation
Request resources according to the requirements of your job. Requesting more resources than necessary may increase queue wait times and reduce cluster efficiency.
Benchmark (Tomography)¶
Motion Correction¶
It is recommended to have the number of MPI proc has multiple of 2 or the job might fail. There is a near linear increase in performance by increasing the number of MPI procs while maintaining the same number of threads.
| Job | Version | GPUs | MPI procs | CPUs (Threads) | Memory (Gb) | Total time (HH:MM:SS) |
|---|---|---|---|---|---|---|
| Motion Correction | 5.0.1 | - | 1 | 16 | 59 | 00:52:15 |
| Motion Correction | 5.0.1 | - | 2 | 16 | 118 | 00:24:51 |
| Motion Correction | 5.0.1 | - | 4 | 16 | 236 | 00:15:40 |
| Motion Correction | 5.0.1 | - | 8 | 16 | 472 | 00:08:47 |
CTF estimation¶
Increasing the number of MPI processes seems to significantly speed up the job.
| Job | Version | GPUs | MPI procs | CPUs (Threads) | Memory (Gb) | Total time (HH:MM:SS) |
|---|---|---|---|---|---|---|
| CTF estimation | 5.0.1 | - | 1 | 1 | 59 | 00:33:47 |
| CTF estimation | 5.0.1 | - | 2 | 1 | 59 | 00:16:01 |
| CTF estimation | 5.0.1 | - | 16 | 1 | 59 | 00:02:09 |
Align tilt-series¶
For GPU jobs, set $CUDA_VISIBLE_DEVICES
| Job | Version | GPUs | MPI procs | CPUs (Threads) | Memory (Gb) | Total time (HH:MM:SS) |
|---|---|---|---|---|---|---|
| Align tilt-series (IMOD) | 5.0.1 | - | 1 | 1 | 59 | > 01:00:00 |
| Align tilt-series (IMOD) | 5.0.1 | - | 16 | 1 | 59 | 00:11:37 |
| Align tilt-series (AreTomo2) | 5.0.1 | 1 (A100) | 1 | 1 | 118 | > 01:00:00 |
| Align tilt-series (AreTomo2) | 5.0.1 | 1 (GH) | 1 | 1 | 204 | 00:05:59 |
Reconstruct tomograms¶
| Job | Version | GPUs | MPI procs | CPUs (Threads) | Memory (Gb) | Total time (HH:MM:SS) |
|---|---|---|---|---|---|---|
| Reconstruct tomograms | 5.0.1 | - | 1 | 16 | 59 | 00:13:38 |
| Reconstruct tomograms | 5.0.1 | - | 2 | 16 | 118 | 00:07:04 |
| Reconstruct tomograms | 5.0.1 | - | 4 | 16 | 236 | 00:03:25 |
| Reconstruct tomograms | 5.0.1 | - | 8 | 16 | 472 | 00:02:05 |
Denoise tomograms¶
/opt/psi/overlays/Alps/EM/cryocare/0.3.0/miniforge/envs/cryocare_0.3.0/bin $CUDA_VISIBLE_DEVICES Only available for A100 GPUs
Extract subtomos¶
| Job | Version | GPUs | MPI procs | CPUs (Threads) | Memory (Gb) | Total time (HH:MM:SS) |
|---|---|---|---|---|---|---|
| Extract subtomos | 5.0.1 | - | 1 | 16 | 59 | 00:09:24 |
| Extract subtomos | 5.0.1 | - | 2 | 16 | 118 | 00:02:26 |
| Extract subtomos | 5.0.1 | - | 4 | 16 | 236 | 00:02:12 |
| Extract subtomos | 5.0.1 | - | 8 | 16 | 472 | 00:01:14 |
3D initial reference¶
| Job | Version | GPUs | MPI procs | CPUs (Threads) | Memory (Gb) | Total time (HH:MM:SS) |
|---|---|---|---|---|---|---|
| 3D initial reference | 5.0.1 | 1 (A100) | 1 | 16 | 118 | |
| 3D initial reference | 5.0.1 | 1 (GH) | 1 | 36 | 118 |