Situs was initially developed 1998/99 by Willy Wriggers in collaboration with the research groups of Ron Milligan 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. Updated information on our research can be found at the URL biomachina.org. The program history below describes changes that were implemented after version 1.0.
    Changes in Version 2.8 vs. Version 2.7:

  • Revised the Makefile and the code throughout to make the programs easier to compile on newer versions of Linux, Macintosh, and Windows/Cygwin. 
  • 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.
    Changes 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, was added.
  • 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.
    Changes 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 tool, volmult, was added to support masking using binary maps created with voledit.
  • The voledit tool 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.
  • The histogram tool volhist was revised to include an option for matching densities (3 input 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 single-body case.
  • 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 for matchpt; 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 supported).
    Changes in Version 2.5 vs. Version 2.4:

  • Added a new tool, matchpt for vector quantization based matching of arbitrarily sized point clouds. It is expected that matchpt will eventually 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 to run on 64-bit architectures. Situs map format is now supported by em2em and verified to display correctly in the recommended graphics programs. This version of map2map was coordinated with the developers of VMD, Chimera or Sculptor, and em2em to give consistent side by side results.
  • The Makefile was completely revised and distribution ported to PC (cygwin and Mingw) as well as MacOS X in addition to Linux.
  • colores: new -sculptor option to support 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 method depends on resolution.
  • 2 deprecated tools, volcube and volvoxl, have been removed in this version (volvoxl functionality is now part of voledit).
  • voledit revised to support voxel step display, enabling 2D slice display of very large maps.
  • voldiff: new interpolation / bug fix enforces map dimensions of first read map.
  • A number of library functions were revised, mainly to 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 performed 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.
    Changes in Version 2.4 vs. Version 2.3:

  • Added a new tool, qplasty, for user-friendly flexible fitting of structures using coarse models.
  • Improved options for a codebook vector connectivity learning feature in qvol.
  • Automatic interpolation of maps to 2 x Nyquist rate in colores yielding significant (an order of magnitude or more) speedups for fine voxel spacings.
  • Implementation of overlap check for lattice projection of poorly docked atomic structures in Powell optimization of colores and colacor (in lib_pwk.c).
  • Improvements to correlation peak detection and peak sparsification in colores.
  • Bug fix: -ani feature introduced in 2.1 for colacor and colores was broken (fixed in 2.4.1). Minor optimization of zero padding and use of library functions in colacor (in 2.4.2).
    Changes in Version 2.3 vs. Version 2.2:

  • Addition of Situs Flavors, i.e. user modified code based on earlier versions of Situs.
  • Implementation of a non-recursive floodfill in voledit to enable segmentation of large maps.
  • More accurate angle distribution in proportional Euler generation of lib_eul.c.
  • Commented out confusing grid registration warnings in lib_vwk.c and lib_vio.c.
  • Made type of index variables in routine create_laplacian consistent with gidz_cube function declaration in lib_vwk.c.
    Changes in Version 2.2 vs. Version 2.1:

  • Added a new tool, colacor, for simple cross correlation calculations and simple refinement of manually docked structures.
  • Added a new tool, eul2pdb, for inspection of Euler angles generated by colores.
  • Added a new tool, pdb2sax, for the generation of simulated hexagonal bead models for validation of SAXS modeling approaches.
  • Added a new tool, vol2pdb, as a complement to pdb2vol, for the generation of PDB files from 3D maps.
  • Four main programs replaced by a combined map editing and visualization tool that offers more convenience (volslice, volpad, volcrop, floodfill ---> voledit).
  • Two main programs replaced by better versions (subtract, hlxbuild ---> voldiff, pdbsymm); voldiff now resamples the second input file is necessary, pdbsymm supports also C and D symmetries in addition to helical.
  • Four 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 parallelization; (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 compatible.
  • FFTW included in source distribution.
  • Dynamic memory allocation (still work in progress, the q... programs are not dynamic yet).
  • Since VMD is now supporting the editing of PSF files, qvol was modified to allow import of connectivities from PSF files for distance constraint (skeleton) setup (useful for flexible fitting).
  • A general rewrite and expansion of library files, for documentation please consult the source files directly (file and function headers).
    Changes in Version 2.1 vs. Version 2.0:

  • Automatic endianism adjustment (byte swapping) in conformat allows transparent sharing of binaries across architectures.
  • Added more functionality to the colores program: (1) support of resolution anisotropy by means of "-ani" option; (2) use of a 4-sigma kernel instead of 3-sigma kernel for generating Laplacian filter; (3) automatic masking of hard boundaries when applying Laplacian filter; (4) update of inside-molecule-poslist (erosion); (5) better user feedback.
  • 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 clipping functionality to volslice.
Changes in Version 2.0 vs. Version 1.4:

  • Added a new program: colores (FFT-accelerated rigid-body search) and a number of supporting libraries: lib_eul.c (Euler angle 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 lib_vwk (map manipulation).
  • Renamed the earlier libraries (stdread.c, pdbio.c, volio.c, jacobi3.c ---> lib_std.c, lib_pio.c, lib_vio.c, lib_jac.c) to conform to the new naming convention.
  • Renamed three main programs (convert, padup, pindown ---> conformat, volpad, volcrop) to avoid naming conflicts.
  • Two redundant routines (qhlx and invert) were removed from the distribution.
  • Added comment to volcube Tcl output to indicate isocontour level.
  • Preliminary patch to better recognize non-PDB standard atom types (pdblur, qrange, qpdb).
  • Added option to export slice data (volslice).
  • Added option to save both connectivity and PSF files in same run (qpdb, qvol).
    Bug fixes: (i) removed empty trailing spaces from input strings (lib_std.c) , (ii) patched output file check throughout to avoid segmentation faults on certain Linux architectures, (iii) added random number generator (lib_rnd.c) to enhance portability, (iv) replaced 'strcasecmp' with 'strcmp' throughout to enhance portability, (v) fixed underflow variables in lib_jac.c and removed preprocessor code to increase stability on Compaq machines, (vi) limited output of atom number to 5 digits (lib_pio.c), defined surface norm behavior if flat density regions are present (volcube).
Changes in Version 1.4 vs. Version 1.3:

  • Addition of new programs: padup, qhlx (helical symmetry equivalent of qvol), hlxbuild (helical symmetry builder), and volslice3d (now superseded 3D equivalent of volslice).
  • Optional addition of vector distance constraints, LBG and TRN optimization (qvol).
  • Learn and output vector connectivities; compute effective Voronoi cell radius; option to export Voronoi cells (qpdb).
  • Addition of a hard sphere convolution option to pdblur to convert SAXS bead models into density maps.
  • Removing now-redundant specialiced SAXS routines (qvol_saxs, qdock_saxs, qrange_saxs).
  • Printing of occupied volume (qvol, qrange, floodfill).
  • Printing of fraction of occupied volume in voxel histogram (qvol, qrange, histovox).
  • Addition of sphericity shape descriptor (qrange, qpdb).
  • Degeneracy warning for three vectors (qrange, qdock).
  • Ignoring codebook vectors and warning if there are unrecognized atom types (pdblur, qrange, qpdb).
  • Grid start at origin (pdblur) and handling of negative voxel coordinates in convert.
  • Adjust SPIDER lattice spacing and simplify reading of arbitrary binaries in convert.
  • Append sorted and fitted vectors to docked structure (qdock).
  • Search for nearest start voxel (floodfill).
  • Bug fixes: (i) MAXPDB violation and empty line errors (pdbio.c), (ii) complete surface at grid boundary and reset view (volcube), (iii) remove empty leading spaces from input strings (stdread.c), (iv) tolerate missing EOF flag in X-PLOR maps (convert), (v) tolerate constant density maps (qvol, qrange, histovox), (vi) avoid division by 0 in LBG clustering algorithm (qvol, qrange, qpdb), (vii) negative rmsd in Kabsch algorithm (qrange, qdock).
Changes in Version 1.3 vs. Version 1.2:

  • Addition of a new tool for lowering the resolution of atomic structures: pdblur.
  • Flexible refinement of structures against low-resolution data based on Situs codebook vectors using X-PLOR scripts.
  • Porting to Sun workstations made possible by rewriting jacobi3.c, qpdb, qrange, and qrange_saxs.
  • Exclusion of water molecules made possible (qpdb, qrange, qrange_saxs).
  • Bug fix: tri-linear interpolation in qdock, qrange, and qrange_saxs.
Changes in Version 1.2 vs. Version 1.1:

  • Addition of new tools for combined vector quantization and docking: qrange and qrange_saxs.
  • Skewed (non-orthogonal) unit cells are now automatically converted to cubic lattices using trilinear interpolation by the convert utility. The routine now also reads and writes ASCII X-PLOR file formats.
  • Docking by 3 vectors now possible (qdock, qdock_saxs, qrange, qrange_saxs).
  • Rotational and positional docking accuracy is now estimated (qdock, qdock_saxs, qrange, qrange_saxs).
  • Porting to diverse UNIX architectures made possible by rewriting IRIX-specific "Quicksort" routines (qvol, qvol_saxs, qpdb).
  • Bug fixes: (i) writing non-stamped CCP4 maps in convert, (ii) overlap-based sorting in qdock_saxs, (iii) trilinear interpolation in qdock .
Changes in Version 1.1 vs. Version 1.0:

  • Addition of new SAXS tools: qvol_saxs and qdock_saxs (now superseded).
  • Down-weighting 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 (qpdb).
  • The qdock utility now allows to rank the results by the correlation coefficient (carbon alpha or full atom), and gives the user the opportunity to change the origin of the EM map coordinate system.
  • The faster and more accurate Linde-Buzo-Gray clustering algorithm (qvol, qvol_saxs, qpdb) avoids "empty receptive field" errors, and gives information about the size of the Voronoi cells (receptive fields) of the vectors.
  • EM map file headers are now read automatically by the convert utility. The routine now also reads and writes CCP4 file formats.
  • Four-letter residue names are now fully supported.
  • The grid size may be kept unchanged when using the floodfill utility.
  • Double lines in wireframe rendering (volcube) are eliminated; "materials" rendering is turned off.
  • The interpolate utility now preserves the origin of the EM map coordinate system.
  • Output file argument for histovox is now optional; user may now rescale the densities;
  • Precomputed normalization of high resolution density (qdock) yields faster search, avoids out of bounds errors.
Return to the front page .