History
|
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 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.
- Memory allocation bugs in quanpdb and quanvol (caused segmentation faults on some systems) fixed (revision 1).
- In colores,
capped default assignment of number of cores at 16 (to prevent
instability on some server systems); this can still be overwritten
with -nprocs (revision 2).
| Changes
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).
- Revised
the Makefile and the code to make fftw3 and ddforge easier to compile.
| 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 . |
|