was initially developed 1998/99 by Willy Wriggers in collaboration with
the research groups of Ron
and Andy McCammon.
The work was
later carried on at The Scripps Research Institute (199-2003), at the
University of Texas-Houston (2003-2011), by independent
contributors at various organisations (2011-2014), and since 2014 at Old Dominion University. Significant authors were
Willy Wriggers, Pablo
Chacon, Mirabela Rusu, Jochen
Heyd, Valerio Mariani, Julio Kovacs, Paul Boyle, Zbigniew Starosolski,
and Stefan Birmanns.
information on our research can be
found at the URL biomachina.org.
program history below describes changes that were implemented after
in Version 3.1
vs. Version 3.0:
- The ddforge tool with associated library files
lib-ddf.c and lib_ddf.h was revised to support the stopping criterion mentioned in the paper (Kovacs, Galkin, and Wriggers, 2018).
- The usage of the residue data file in ddforge was made optional. This simplifies the application if a user wants to refine a structure with maximum flexibility.
in Version 3.0
vs. Version 2.8:
- The ddforge tool with assiciated library files
lib-ddf.c and lib_ddf.h was introduced for flexible fitting and
refinement of atomic structures against intermediate resolution density
maps. This filled a need for a tool in Situs that directly supports
this functionality without requiring external molecular dynamics
software. In the 3.0 release, ddforge
used a local LU decomposition that is about 2-3 times slower than
LAPACK. Faster alternatives and/or a LAPACK integration will be offered
in the future. The release accompanied a paper (Kovacs, Galkin, and Wriggers, 2018).
the Makefile and the code to make fftw3 and ddforge easier to compile.
in Version 2.8
vs. Version 2.7:
the Makefile and the code throughout to make the programs easier to
compile on newer versions of Linux, Macintosh, and
- The popular colores tool was ported to FFTW 3.3.4, making it about 2x faster
- The classic vector quantization tools were renamed quanpdb and quanvol. They were converted to dynamic memory allocation for computation of larger
coarse-grained point clouds.
- In addition, to accompany our new paper on
map and model assessment (Wriggers and He, 2015), we also released a modified version of Situs that describes how the data in Figure 3 was computed.
in Version 2.7
vs. Version 2.6:
- A new
alpha helix detection and filament tracing tool, voltrac, was added.
- A new denoising tool for
3D maps and 2D image stacks, volfltr,
- A number of library files were added or
revised for the update. E.g. lib_svt.cpp/.h and lib_sba.cpp/.h contain
C++ classes in support of voltrac and volfltr.
- The MRC reading routine
in lib_vio.c was modified to enable 16-bit data fields (MODE 1) used
e.g. in tomography.
- Added OPENMP code for
platform independent estimate of number of processors in colores.
- Removal of the outdated
qdock and qrange tools and the associated lib_jac.c/.h library files
(qdock and qrange superseded by matchpt). Revision of situs.h,
moving macros to local programs.
- Cleaned up some minor
issues detected by gcc and g++ compiler warnings.
in Version 2.6
vs. Version 2.5:
- Direct use of MRC/CCP4 map file formats is now
possible. map2map and lib_vio.c
were revised accordingly. Also, matchpt was revised
to use the lib_vio reading routine.
- A new map
averaging tool, volaver,
was added to support the 2.6 tutorials.
- A new map multiplication
was added to support masking using binary maps created with voledit.
- The voledit
was revised to render and export 2D projections in addition to cross
sections and to support binary thresholding for masking.
- The matchpt point
cloud matching tool was updated to automatically generate missing
codebook vectors to mimic the
behavior of qrange. We now
recommend to use matchpt instead of the
older and more limited qrange and qdock tools.
histogram tool volhist
was revised to include an option for matching densities (3
options), by centering of the trimodal difference histogram.
- The correlation tool
formerly named colacor was extensively revised and renamed collage. New
functionality includes simultaneous multi-fragment docking. New functionality also
required to restrict one-step correlation option (-pwcorr 3) to
- A number of library
functions were added or revised for the update. lib_vwk.h / lib_vwk.c:
added new functions print_diff_histogram and floatshift for volhist; lib_mpt.cpp updated
fixed out of bounds bug
in project_mass_convolve_kernel_corr (lib_pwk) that affected one-step
correlation option of collage.
- The Makefile was revised
to include options for OPENMP thread support in matchpt (comment out if not
in Version 2.5
vs. Version 2.4:
- Added a new tool, matchpt for vector
based matching of arbitrarily sized point clouds. It is
expected that matchpt will
supersede the more limited qrange and qdock tools.
- map2map was extensively
revised and now
supports interpolation of skewed MRC2000/CCP4 maps as well as axis
permutations. The program checks if maps are cubic, orthogonal (angles
90 but unequal spacing), or skewed (angles !=90). The supported map
formats are now X-PLOR, SPIDER, ASCII, and MRC2000/CCP4, and there are
manual options to edit the header fields arbitrarily. Bug fix
run on 64-bit architectures. Situs map format is now supported by em2em and
display correctly in the recommended
map2map was coordinated with the developers of VMD, Chimera or
Sculptor, and em2em to give consistent side by
- The Makefile was
and distribution ported to PC (cygwin and Mingw) as well as MacOS X in
- colores: new -sculptor option to
interactive exploration of fits with Sculptor; output of debugging maps
(filtered maps just before correlation calculation); optimization of
zero padding results in smaller maps and (in most cases) faster FFT
calculations (10-30% speed and memory improvements); default
correlation method depends on resolution; default FFT zero padding
depends on correlation.
- colacor: default correlation
depends on resolution.
- 2 deprecated tools,
volvoxl, have been removed in this version (volvoxl functionality is
now part of voledit).
- voledit revised to support voxel
display, enabling 2D slice display of very large maps.
- voldiff: new interpolation / bug
enforces map dimensions of first read map.
- A number of library functions were revised,
ensure that origins that are not in register with the PDB coordinate
system can be freely used throughout. Registration with the origin
(useful for generating crystallographic style indexing) is now
only when an interpolation function is called. Also, to
better reflect the purpose, the earlier "grid[x,y,z]" variables were
renamed to "orig[x,y,z]" throughout the package.
in Version 2.4
vs. Version 2.3:
- Added a new tool, qplasty, for
fitting of structures using coarse models.
options for a
vector connectivity learning feature in qvol.
interpolation of maps to 2 x Nyquist rate in colores
significant (an order of magnitude or more) speedups for fine voxel
- Implementation of
overlap check for lattice projection of poorly docked atomic
optimization of colores and colacor
- Improvements to
peak detection and peak sparsification in colores.
- Bug fix:
introduced in 2.1 for colacor
(fixed in 2.4.1). Minor optimization of zero padding and use of library
functions in colacor (in 2.4.2).
in Version 2.3
vs. Version 2.2:
- Addition of Situs
Flavors, i.e. user
code based on earlier versions of Situs.
non-recursive floodfill in voledit
to enable segmentation of large maps.
distribution in proportional Euler generation of lib_eul.c.
confusing grid registration warnings in lib_vwk.c
- Made type of index
routine create_laplacian consistent with gidz_cube function declaration
in Version 2.2
vs. Version 2.1:
- Added a new tool, colacor, for simple
correlation calculations and simple refinement of manually docked
- Added a new tool, eul2pdb, for
inspection of Euler
angles generated by colores.
- Added a new tool, pdb2sax, for the
simulated hexagonal bead models for validation of SAXS modeling
- Added a new tool, vol2pdb, as a
complement to pdb2vol,
for the generation of PDB files from 3D maps.
- Four main programs replaced
combined map editing and visualization tool that offers more
volpad, volcrop, floodfill ---> voledit).
- Two main programs replaced
versions (subtract, hlxbuild ---> voldiff, pdbsymm); voldiff now resamples
input file is necessary, pdbsymm
also C and D symmetries in
addition to helical.
main programs renamed and slightly updated (conformat, interpolate,
histovox, pdblur ---> map2map, volvoxl, volhist, pdb2vol)
to fix bugs and to make consistent with new naming convention.
- Added more
functionality to the colores
program: (1) support of multi-processor architecture through
(2) an improved peak search filter; (3) patches for mask generation; (4) support of map fitting
through vol2pdb; (5)
general tuning of functions and improvements in speed; (6) new Euler
angle generation routine (proportional), old routines tested and tuned;
(7) New correlation calculation choices for Powell optimization,
automatic selection of the fastest routine.
- Makefile is now cygwin
- FFTW included in source
- Dynamic memory allocation
in progress, the q... programs are not dynamic yet).
- Since VMD is now supporting
editing of PSF files, qvol was modified to allow
connectivities from PSF files for distance constraint (skeleton) setup
(useful for flexible fitting).
- A general rewrite and
expansion of library files, for documentation
consult the source files directly (file and function headers).
in Version 2.1
vs. Version 2.0:
endianism adjustment (byte
swapping) in conformat
transparent sharing of binaries across architectures.
- Added more
functionality to the colores
program: (1) support of resolution anisotropy by means of "-ani"
(2) use of a 4-sigma kernel instead of 3-sigma kernel for generating
filter; (3) automatic masking of hard boundaries when applying
filter; (4) update of inside-molecule-poslist (erosion); (5) better
- In the library
file "lib_vwk.c", improved peak search and added interpolate function.
Rewrite of interpolate
to take advantage of the library.
- Added polygon
in Version 2.0
vs. Version 1.4:
(FFT-accelerated rigid-body search) and a number of supporting libraries: lib_eul.c
generation), lib_rnd.c (random number
generator), lib_pow.c (Powell optimization), lib_pwk.c (PDB
manipulation), lib_vec.c (array management), lib_tim.c (timing), and
(stdread.c, pdbio.c, volio.c, jacobi3.c ---> lib_std.c,
lib_jac.c) to conform to the new naming convention.
main programs (convert,
padup, pindown ---> conformat,
to avoid naming
redundant routines (qhlx
and invert) were removed from the distribution.
comment to volcube
Tcl output to indicate isocontour level.
patch to better recognize
non-PDB standard atom types (pdblur, qrange, qpdb).
option to export slice
option to save both connectivity
and PSF files in same run (qpdb,
trailing spaces from input strings (lib_std.c)
, (ii) patched output file check throughout to avoid segmentation
on certain Linux architectures, (iii) added random number generator (lib_rnd.c) to enhance
replaced 'strcasecmp' with
'strcmp' throughout to enhance portability, (v) fixed underflow
in lib_jac.c and
code to increase stability on Compaq machines, (vi) limited
of atom number to 5 digits (lib_pio.c),
defined surface norm behavior if flat density regions are present
in Version 1.4
vs. Version 1.3:
symmetry equivalent of qvol),
(now superseded 3D equivalent of volslice).
addition of vector distance
constraints, LBG and TRN
output vector connectivities;
compute effective Voronoi cell radius;
export Voronoi cells (qpdb).
hard sphere convolution
option to pdblur
to convert SAXS
models into density maps.
SAXS routines (qvol_saxs, qdock_saxs, qrange_saxs).
occupied volume (qvol,
fraction of occupied
volume in voxel histogram (qvol,
sphericity shape descriptor
warning for three vectors
codebook vectors and warning
if there are unrecognized atom types (pdblur,
and handling of
negative voxel coordinates in convert.
lattice spacing and
simplify reading of arbitrary binaries in convert.
and fitted vectors
to docked structure (qdock).
nearest start voxel (floodfill).
MAXPDB violation and
empty line errors (pdbio.c),
complete surface at grid boundary and reset view (volcube), (iii)
remove empty leading
spaces from input strings (stdread.c),
EOF flag in X-PLOR maps (convert),
(v) tolerate constant density maps (qvol,
(vi) avoid division by 0 in
LBG clustering algorithm (qvol,
(vii) negative rmsd in Kabsch algorithm (qrange, qdock).
in Version 1.3
vs. Version 1.2:
new tool for lowering
the resolution of atomic structures: pdblur.
refinement of structures against low-resolution data based on
codebook vectors using X-PLOR
possible by rewriting jacobi3.c, qpdb,
water molecules made
possible (qpdb, qrange,
in qdock, qrange,
in Version 1.2
vs. Version 1.1:
tools for combined
vector quantization and docking: qrange
(non-orthogonal) unit cells
are now automatically converted to cubic lattices using trilinear
by the convert
The routine now also reads and writes ASCII X-PLOR file formats.
vectors now possible
positional docking accuracy is now estimated (qdock,
diverse UNIX architectures
made possible by rewriting IRIX-specific "Quicksort" routines (qvol, qvol_saxs, qpdb).
CCP4 maps in convert,
overlap-based sorting in qdock_saxs, (iii) trilinear
in qdock .
in Version 1.1
vs. Version 1.0:
SAXS tools: qvol_saxs
and qdock_saxs (now superseded).
of flexible / poorly
defined regions in atomic-resolution structures can now be accomplished
by ignoring all atoms with B-factor values above a user defined cutoff
utility now allows to rank the results by the correlation coefficient
alpha or full atom), and gives the user the opportunity to change the
of the EM map coordinate system.
more accurate Linde-Buzo-Gray
clustering algorithm (qvol,
avoids "empty receptive field"
errors, and gives information about
size of the Voronoi cells (receptive fields) of the vectors.
headers are now read
automatically by the convert
utility. The routine now also reads and writes CCP4 file formats.
residue names are now
may be kept unchanged
when using the floodfill
(volcube) are eliminated;
rendering is turned off.
utility now preserves the origin of the EM map coordinate system.
argument for histovox
is now optional; user may now rescale the densities;
normalization of high
resolution density (qdock) yields
search, avoids out of bounds errors.
to the front page .