ResMap on Biowulf

ResMap (Resolution Map) is a Python (NumPy/SciPy) application with a Tkinter GUI and a command-line interface. It is a software package for computing the local resolution of 3D density maps studied in structural biology, primarily electron cryo-microscopy (cryo- EM).

References:

Documentation
Important Notes

This application requires an X-Windows connection. Users are encouraged to use NX as their X11 servers.

Interactive job
Interactive jobs should be used for debugging, graphics, or applications that cannot be run as batch jobs.

Allocate an interactive session and run the program. Sample session:

[user@biowulf]$ sinteractive --gres=gpu:p100:1
salloc.exe: Pending job allocation 46116226
salloc.exe: job 46116226 queued and waiting for resources
salloc.exe: job 46116226 has been allocated resources
salloc.exe: Granted job allocation 46116226
salloc.exe: Waiting for resource configuration
salloc.exe: Nodes cn3144 are ready for job

[user@cn3144 ~]$ module load ResMap

[user@cn3144 ~]$ ResMap

[user@cn3144 ~]$ exit
salloc.exe: Relinquishing job allocation 46116226
[user@biowulf ~]$

After typing 'ResMap' at the prompt, input is menu-driven.

ResMap window

The correct path for the CUDA library file is /opt/resmap/ResMap_krnl-cuda-V9.0.102-sm35_gpu.so. You will need to update the GUI.

Batch job
Most jobs should be run as batch jobs.

Create a batch input file (e.g. ResMap.sh). ResMap can be run without the need for an X11 server by starting a dummy X11 server with Xvfb and setting the $DISPLAY variable to a bogus number.

#!/bin/bash
module load ResMap
Xvfb -shmem -screen 0 1280x1024x24 &
export DISPLAY=":0"
cp $RESMAP_EXAMPLES/*.map .
ResMap --doBenchMarking --noguiSplit \
  emd_8731_half_map_1.map emd_8731_half_map_2.map

Submit this job using the Slurm sbatch command.

sbatch --mem=10 ResMap.sh
GPU Acceleration

ResMap can be accelerated at least 10-fold by using GPUs rather than CPUs. This requires three options, --use_gpu, --set_gpu and --lib_krnl_gpu. Here is a batch script for doing so:

#!/bin/bash
module load ResMap
Xvfb -shmem -screen 0 1280x1024x24 &
export DISPLAY=":0"
cp $RESMAP_EXAMPLES/*.map .
ResMap --doBenchMarking --noguiSplit \
  emd_8731_half_map_1.map emd_8731_half_map_2.map \
  --use_gpu=yes --set_gpu=0 \
  --lib_krnl_gpu=/opt/resmap/ResMap_krnl-cuda-V9.0.102-sm35_gpu.so

Submit this job using this Slurm command, allocating a single GPU for the job:

sbatch --mem=10 --gres=gpu:p100:1 ResMap.sh