Relion using SBGrid

This guide covers submitting SLURM jobs via the Relion interface using SBGrid software.

Setup

Configure ~/.bashrc

Add the following to your ~/.bashrc:

# Source SBGrid
source /programs/sbgrid.shrc

# Relion SLURM settings
export RELION_QSUB_EXTRA_COUNT=3
export RELION_QSUB_EXTRA1="Walltime"
export RELION_QSUB_EXTRA1_DEFAULT="1-00:00:00"
export RELION_QSUB_EXTRA2="Memory per CPU"
export RELION_QSUB_EXTRA2_DEFAULT="4G"
export RELION_QSUB_EXTRA3="GRES"
export RELION_QSUB_EXTRA3_DEFAULT="gpu:1"

Warning

Source SBGrid in either .bashrc or the Relion job submission template, not both. Sourcing in both locations causes job failures.

After editing, reload:

source ~/.bashrc

SBGrid Preferences

Customize default packages in ~/.sbgrid.conf:

# Example preferences
RELION=3.1.0_cu10.2
CUDA=10.2
OPENMPI=3.1.4
PYTHON=3.8.2

SLURM Submission Template

Create a template for Relion job submissions:

#!/bin/bash
#SBATCH --partition=gpu
#SBATCH --nodes=XXXnodesXXX
#SBATCH --ntasks=XXXmaboredXXX
#SBATCH --cpus-per-task=XXXthreadsXXX
#SBATCH --mem-per-cpu=XXXextra2XXX
#SBATCH --time=XXXextra1XXX
#SBATCH --gres=XXXextra3XXX
#SBATCH --error=XXXerrfileXXX
#SBATCH --output=XXXoutfileXXX

# Optional: load specific CUDA/OpenMPI versions
# module load cuda/10.2
# module load openmpi/3.1.4

srun --export=ALL --mpi=pmi2 XXXcommandXXX

Verification

Check active SBGrid package versions:

sbgrid-info -l relion

Troubleshooting

ORTE Daemon Failures

Try using srun rather than mpirun/mpiexec in Relion’s job template.

Changes Not Taking Effect

Verify updates appear in newly generated log files. Old job submissions may use cached settings.

Version Conflicts

Ensure CUDA and OpenMPI versions are compatible with your Relion version.