Jump to: navigation, search



HSV-1 glycoprotein gB trimer (~200 kDa) bound to a bilayer solved using Jsubtomo. An X-ray structure of the protein and model bilayer were fitted to the map. From Maurer et al. (2013). Structure. 6;21(8):1396-405.

Jsubtomo is a program for sub-tomogram averaging based on Bsoft (http://bsoft.ws/). It uses template matching based on constrained cross correlation to locate and align sub-tomograms. Some examples of projects that have used Jsubtomo include:

  • Bowden et al. (2013). Orthobunyavirus ultrastructure and the curious tripodal glycoprotein spike. PLoS pathogens, 9(5), e1003374.
  • Huiskonen et al. (2010). Electron cryotomography of Tula hantavirus suggests a unique assembly paradigm for enveloped viruses. Journal of Virology, 84(10), 4889–4897.
  • Liljeroos et al. (2011). Electron cryotomography of measles virus reveals how matrix protein coats the ribonucleocapsid within intact virions. Proceedings of the National Academy of Sciences of the United States of America, 108(44), 18085–18090.
  • Maurer et al. (2013). The structure of herpesvirus fusion glycoprotein B-bilayer complex reveals the protein-membrane and lateral protein-protein interaction. Structure. 6;21(8):1396-405.

If you find Jsubtomo useful for your work, please cite:

  • Huiskonen et al. (2014). Averaging of Viral Envelope Glycoprotein Spikes from Electron Cryotomography Reconstructions using Jsubtomo. J. Vis. Exp. (92), e51714
  • Huiskonen et al. (2010). Electron cryotomography of Tula hantavirus suggests a unique assembly paradigm for enveloped viruses. Journal of Virology, 84(10), 4889–4897.

Please address any questions to juha (at) strubi.ox.ac.uk.


Target volume refers to the original (sub)tomogram, template volume to the map used as a search probe. Particles refer to occurrences of the template volume in the target, and have specific view and location parameters.

Treatment of symmetry

The symmetry of the target volume can be taken into account by creating a list of views using with jviews. We have used this approach to correlate a template structure against all the 12 vertexes in subtomograms of an icosahedral virus and to restrict the search into an icosahedral asymmetric unit. Symmetry of the template can be used to limit the angular search space.


Download the latest version from Downloads page. Unpack the program package to your Bsoft installation directory. The current version of Jsubtomo (1.3.0) has been tested using Bsoft 1.8.6 and will not work with older versions.

tar -xvf jsubtomo.tar

Compile and link the programs


Modes of use

Three different modes exist: search, refine and extract. Only one mode can be used at the time. In addition, there are several parameters, some of which are mode-specific, some general. Each mode is described below with examples of use. N.B. the program can also be used without running any mode, for example to select a subset of particles.


Inputs: Target volume (image.map / input.star), template volume (template.map)

Algorithm: Cross correlation search is performed for all rotations of the template. A mask can be given to define the missing information in the Fourier space (e.g. missing wedge). For each rotation of the template, all translations above threshold correlation are returned. Overlaps are discarded (selection number is set to zero) or can be filtered away completely with -remove and -renumber options.

Output: The best correlating particle is returned at each position (output.star).

Example: Search for the occurrences of a template with in a tomogram. Origin of the template is at 25,25,25.

jsubtomo -v 7 -mode search -origin 25,25,25 -angles 10,10,10 -bin 2 \
 -symmetry C6 -threshold 0.1 -Template template.map -output search.star tomogram.map > search.log &

Optionally, select particles using a more stringent threshold than the initial threshold, remove unselected and renumber

jsubtomo -v 7 -fom 0.23 -renumber -remove -output search_sel.star search.star


Inputs: Input orientations and locations (input.star), template volume (template.map)

Algorithm: Cross correlation search is performed for rotations of the template limited around the starting angle and position. At each iteration, the angular step size and range are halved.

Output: The best correlating orientation and shift is returned for each particle (output.star)

Example: Refine the selected peaks from search mode to 2 degree accuracy (8-degree starting step size with 3 iterations)

jsubtomo -v 7 -mode refine -iterate 3 -origin 25,25,25 -angles 8,8,8 \ 
-alphalimit 10 -thetaphilimit 10 -shiftlimit 5 -refinepeaks -Template template.map \
-output refine.star search_sel.star > refine.log &


Inputs: Input orientations and locations (input.star) (+ template volume [template.map])

Algorithm: Applies rotations and shifts to transform the target volume to the reference view of the template (optionally applies the inverse transformation to place the template onto the target volume)

Output: Transformed target volumes (or templates) (with -wedge option, also rotated masks are written)

Example: Extract particles for averaging

jsubtomo -mode extract -transform -partextension map -size 50,50,50 refine.star

Example: Average particles

jave -output average.map *part???.map

Example: Place the average on the target volume for visualization

jsubtomo -mode extract -transform -inverse -Template average.map -partextension map -origin 25,25,25 refine.star

Parallel processing

Python scripts have been written to allow parallel processing. These can be used similarly to the core programs but take multiple input files and spawn several processeses (parameter --processors). Notice the use of double hyphens "--" in the following example.

Example: Extract particles for averaging from multiple tomograms

jsubtomo.py --mode extract --transform --partextension map --size 50,50,50 --processors 4 tomo??_refine.star

Iterative processing

A python script, jusbtomo_iterate_gold.py is provided to carry out a gold-standard refinement and averaging in an iterative fashion. Two sets of data are kept fully independent. After each iteration, the two half averages are aligned and FSC is calculated between the two. The current resolution of the model is then used to construct a bandpass filter for the next round of refinement.

To run the script, first generate a SEL file splitting your tomograms (smaller volumes cut from the full tomograms, typically containing one spherical virus or other structure of the interest in the middle).

ls -1 *.star | awk ' NR % 2 == 1 {print $1 " 1";} NR % 2 == 0 {print $1 " 2"}' > file.sel

Example command line:

jsubtomo_iterate_gold.py --firstiter 1 --lastiter 10 --adaptivefilter --fsccrit 0.143 --resolution 50 \
--minhires 30 --sampling 6.2 --origin 50,50,50 --angles 8,8,8 --alphalimit 8 --symmetry C6 --thetaphilimit 8 \
--shiftlimit 8 --mindist 25 --size 100,100,100 --Template1 initialmodel_even.map --Template2 initialmodel_odd.map \
--mask realspace_mask.map --Mask missingwedge_mask.spi --proc 48 --prefix refinement file.sel


See Manuals and Tutorials for a more extensive list of Jsubtomo tutorials.

Personal tools