High-Performance Computing at the NIH
GitHub YouTube @nih_hpc RSS Feed

EMAN is a suite of scientific image processing tools aimed primarily at the transmission electron microscopy community, though it is beginning to be used in other fields as well. For example it can do an admirable job aligning images for amateur astronomers. EMAN has a particular focus on performing a task known as single particle reconstruction. In this method, images of nanoscale molecules and molecular assemblies embedded in vitreous (glassy) ice are collected on a transmission electron microscope, then processed using EMAN to produce a complete 3-D recosntruction at resolutions now approaching atomic resolution. For low resolution structures (~2 nm), this may require ~8 hours of computer processing and a few thousand particles. For structures aimed at ~0.5 nm or better resolution, hundreds of thousands of particles and hundreds of thousands of CPU-hours (on large computational clusters) may be required. Indeed, EMAN is often used in supercomputing facilities as a test application for large-scale computing.

Author: Prof. Steve Ludtke

Reference: Ludtke, S.J., Baldwin, P.R., and Chiu, W. (1999). EMAN: semiautomated software for high-resolution single-particle reconstructions. J Struct Biol 128, 82-97.

How To Use

EMAN requires some environment variables to be set.

module load EMAN1

Interactive Use

After loading the EMAN1 module, type eman

to launch the GUI:

This will require X11 forwarding. See https://hpc.nih.gov/docs/connect.html for more information about using X11.


Batch Use

Create a batch script along the following lines:

module load EMAN1
refine 5 ang=3 mask=28 pad=96 hard=25 classkeep=.3 classiter=8 proc=8 sym=d7 ctfc=12 sep=2 xfiles=4.2,1000,40

Then submit the job, allocating the appropriate number of processors (in this case, we are assigning proc=8, or 8 processors):

$ sbatch --cpus-per-task=8 --threads-per-core=1 EMAN.sh

You should NOT use an mparm file for designating hostnames, number of processors per cpu, and messaging protocol for parallel jobs. EMAN will automatically interrogate the batch system to determine these values. See the EMAN docs for more information.


See the EMAN main page