LOOS  v2.3.2
Change Log

Version 2.3.2 (7-8-2016)

Bug Fixes

  • Added HSD, HSE, and HSP as recognized residues for backbone selector
  • Fixed bug in center-molecule affecting –center_xy
  • Fixd bug in fullhelp for serialize-selection
  • Fixed bug in aligner where –xyonly was ignored if using a reference structure
  • Fixed bug in membrane_map when using a reference structure
  • Fixed bug in PyLOOS that made XTCWriter unavailable
  • Fixed bug in density-dist when using the number calculation
  • Fixed bug in Amber prmtop reader that affects Ubuntu 16

Added, Changed, and Otherwise Notable

  • Changed the organization of LOOS source tree so that the core library resides in the src/ directory.
  • Changed how documentation is built (now automatic for GitHub users)
  • Added support for unpacking pre-built docs from tarball in top-level LOOS dir
  • Added inside_helices.py tool to PyLOOS
  • Added –positive and –negative flags to enmovie to control which direction motion is depicted
  • Added ability to write Gromacs .gro files
  • Added new cylindrical-thickness tool
  • Added verap tool for quick vertical area profiles (non-voronoi)
  • Added (officially) the functions in utils_structural.cpp to PyLOOS
  • Added support for manually specifying the mapping of molecule names to segid in gmxdump2pdb tool

Version 2.3.1 (1-11-2016)

Bug Fixes

  • Fixed bug in membrane_map causing aligned coordinates to be squashed into the x-y plane.
  • Fixed bug affecting center-molecule with –center_xy

Added, Changed, or Otherwise Notable

  • Documentation improvements

Version 2.3.0 (11-20-2015)

Bug Fixes

  • Fixed bug in periodicity handling where it could appear to be set but have default values.
  • Fixed bug affecting reading of Charmm CRD files
  • Fixed bug in xf_rdf where the sel1-spans, sel2-spans, and reselect flags were ignored
  • Fixed handling of DEBUG in setup scripts

Added, Changed, or Otherwise Notable

  • Changed: BOOST threads is now required for build
  • Changed: NumPy now required for PyLOOS build

  • Added 'index' keyword to selection language to use an atom's position in a model (different from atom id)

  • (PyLOOS) Changed splitByMolecule(), splitByUniqueSegid(), and SplitByResidue() to return a python list of AtomicGroup rather than an AtomicGroupVector
  • (PyLOOS) Changed iterativeAlignment() function to now return a Python tuple and works with new loos.pyloos trajectories
  • (PyLOOS) Added iterativeAlignTrajectory() to align with plain LOOS trajectory objects (as well as loos.pyloos), and accepts an optional list of frames to use.
  • (PyLOOS) Added
  • (PyLOOS) Deprecated iterativeAlignmentPy()
  • (PyLOOS) Added k-means clustering tool (cluster-structures.py)
  • (PyLOOS) Added ensemble and SVD support
  • (PyLOOS) Reorganized PyLOOS (into loos and loos.pyloos)
  • (PyLOOS) Added support for NumPy
  • (PyLOOS) Added voronoi package
  • (PyLOOS) Added new cylindrical-density.py tool

  • Changed trajinfo so that it ALWAYS scans frames and can handle read errors (using only the first set of valid frames)
  • Changed order_params tool to support ranges for frames to use
  • Changed AtomicGroup::superposition() to use the faster dgesvj(). Note: this is an iterative method that may not converge. In practice, the residual will be small if it does not. LOOS will print out a warning in such cases. If you find many warnings being issued, contact the LOOS developers.
  • Changed RMSD to use a much faster method (and removed option to disable caching). In addition, can now run in a multithreaded mode
  • Moved alignment-related code to its own source module
  • Added AtomicGroup::centrifyByMolecule() and AtomicGroup::centrifyByResidue()

Version 2.2.5 (4-22-2015)

Bug Fixes

  • Fixed handling of non-netCDF Amber files when buildind LOOS with netCDF support
  • Fixed reading of Amber prmtop files with mixed case format specifiers
  • Fixed bug in merge-traj that required downsampled dcd filename
  • Fixed bug in fcontacts resulting in NaN's in output if there are no target atoms near the probe.
  • Fixed fullhelp in subsetter
  • (PyLOOS ONLY) Fixed bug in GCoord operator overloads

Added, Changed, or Otherwise Notable

  • Added new –ref-structure option to membrane_map
  • Added support for sorting trajectory files numerically in merge-traj (as subsetter does)
  • Changed the default sort regex for merge-traj and subsetter to sort an the LAST number in the filename
  • Added ".netcdf" as a recognized suffix for Amber files
  • Changed default selection for SVD and ENM tools to alpha-carbons
  • Changed options and behavior of porcupine and enmovie. See their fullhelp for more details
  • Added optional NAMD tag to PSF files generated by gmxdump2pdb

Version 2.2.4 (2-6-2015)

Bug Fixes

  • Fixed reading of Amber prmtop files that use mixed case for format specs
  • Fixed handling of non-NetCDF Amber files when built with NetCDF support

Version 2.2.3 (1-26-2015)

Bug Fixes

  • Fixed bug affecting functions in Atom, Coord, and Matrix44 that return references to contained data. They now return const refs and should no longer be wrapped by swig, returning the contained value instead.
  • Improved error handling in the build system

Version 2.2.2 (1-17-2015)

Bug Fixes

  • Fixed bug in Amber parmtop reader
  • Fixed problem building with MacOS

Version 2.2.1 (1-13-2015)

Added, Changed, or Otherwise Notable

  • Added –upper-only and –lower-only options to membrane_map
  • Changed how mops and dibmops split the selection to get molecules (and added an option to force splitting by residue)
  • Added support to mops for writing the average molecular order parameter as a time-series
  • Removed gridify() and dcd_utils.cpp
  • Changed the build system

Version 2.2.0 (12-24-2014)

Added, Changed, or Otherwise Notable

  • Added AtomicGroup::contactWith() that returns true or false if two AtomicGroups have any contacts between them.
  • Added support for retrieving time and step from frames of XTC files
  • Added support for estimating DCD-style timestep for XTC files
  • Added spliteFilename() utility
  • Added Trajectory::description(), returning a string describing the format
  • Added TrajectoryWriter base class to support writing multiple trajectory formats. The interface is intentially simple. For more control, explicitly use a supported format.
  • Added XTCWriter class for writing Gromacs XTC files (based on xdrfile-lib from Gromacs).
  • Added createOutputTrajectory() factory function
  • Added OutputTrajectoryOptions class
  • Added a static create() function to all trajectory and system classes (returns a boost shared pointer to a new instance of the appropriate class)
  • Changed DCDWriter to inherit from TrajectoryWriter
  • Changed how the system and trajectory factory functions work. They are now table driven and utilize the static create() function.
  • Changed how available file formats are listed (as a newline-delimited list for use in ProgramOptions, rather than a more compact comma-delimited list)
  • Changed subsetter and merge-traj to use new OutputTrajectory class.
  • Changed DCDWriter::framesWritten() to return an unsigned int instead of a signed int.
  • Added BackboneSelector for proteins and nucleic acids. Note that this will only work for known residue and atom names (see Selector.cpp). Will also select hydrogens attached to backbone atoms.
  • Added "backbone" keyword to selection language
  • Changed PDB reader so that missing fields (to the right of coordinates) will issue a warning and then be ignored.
  • Added functions to PDB to report whether fields are missing or not
  • Added OMG (the Optimal Membrane Generator)
  • Changed/Added exception classes and handling, particularly for PyLOOS (see Exceptions in LOOS and PyLOOS) for more details.
  • Changed selectAtoms() to return an empty AtomicGroup when no atoms are selected, rather than throw an exception.
  • Changed AtomicGroup::groupFromID() so that missing atoms are ignored, rather than throw an exception.
  • Removed all char* based constructors in favor of string&
  • Changed how the Swig interface is generated (from the CPP header files directly)
  • Deprecated gridify() in dcd_utils.cpp
  • Added –clip flag to smooth-traj to control whether the ends of the trajectory are clipped or not

Bugs Fixed

  • Fixed bug in aligner causing incorrect output when using a skip, stride, or some ranges of frames.
  • Fixed bug in smooth-traj that dropped frames at the end of the trajectory

Version 2.1.3 (7-18-2014)

Added, Changed, or Otherwise Notable

  • Added two new tool for molecular order parameters: mops and dibmops. The former computes an average molecular order parameter for a set of trajectories, while the latter bins the order parameter based on lateral distance to the nearest target (e.g. lipopeptide)
  • Added chist tool for calculating cumulative or windowed histograms
  • Added support in merge-traj for separate selections to recenter in xy and z
  • Added number density option to density-dist
  • Added "core" water filter for density tools
  • Added –threshold option to interdist that will segment the output based on the given cutoff
  • XForm::rotate() will throw an exception now if the rotation axis has zero length

Bugs Fixed

  • Bad HTML code in docs fixed
  • Fixed crashing of phasepdb with default settings
  • Fixed bad execution time estimate when using rmsds to compare two different trajecties
  • Fixed bug in TRR/XDR support affecting double precision data (found by Pin-Kuang Lai)
  • Fixed build issue when ATLAS_LIBS is specified
  • Fixed help in dcdinfo
  • Fixed crash in phasepdb caused by using default chunk-size setting
  • Fixed bug in rebond where atoms would end up bound to themselves

Version 2.1.2 (2-14-2014)

Added, Changed, or Otherwise Notable

  • Added new feature to xy_rdf (–reselect) to handle case where molecules move back and forth between leaflets

Bug Fixes

Version 2.1.1 (1-31-2014)

Added, Changed, or Otherwise Notable

  • Added new packing_score tool to quantify the packing between two selections over the course of a trajectory
  • Added PyTraj and PyAlignedTraj for Python iteration through a Trajectory in PyLOOS
  • Added support for OpenSUSE 13 and Fedora 20
  • Changed GCoord, AtomicGroup, TimeSeries, and Matrix44 to be iterable in Python

Bug Fixes

  • Fixed bug in drifter preventing it from running
  • Fixed bug in parseStringAs<> that can affect shortened fields at the end of a line.
  • Fixed bug in protein_tilt.py where the average vector wasn't reset upon successive frames
  • Fixed bug in rmsds tool there the average RMSD reported was under-valued
  • Fixed build issue with MacOS 10.9

Version 2.1.0 (12-6-2013)

Added, Changed, or Otherwise Notable

  • Substantial change to build system. See INSTALL file or Building LOOS
  • Test suite is now deprecated and has been removed
  • Changed how atomid's are handled in LOOS. They are no longer indices into the trajectory frame for atom coordinates. Atoms now have an "index" property for that purpose. The index is automatically set when reading a model from a file.
  • Changed all Trajectory::updateGroupCoords() implementations to honor the atom index property.
  • Changed Trajectory::updateGroupCoords() to use the NVI idiom. Derived classes should override the updateGroupCoordsImpl() function.
  • Added Math::eigenDecomp() that calculates eigenpairs (using ssyev/dsyev)
  • Added gnm-traj and anm-traj tools in the ENM Package for analyzing trajectories using ENM's
  • Added BasicSplitBy option. Use BasicSplitBy::split() to split an AtomicGroup based on a user-specified method
  • The rmsds tool will now cache the trajectory for improved performance. Caching can be disabled for large systems
  • Added smooth-traj tool
  • Added new membrane_map tool to compute the 2D distribution of various physical properties around a membrane protein
  • The Matrix bracket operators '[]' will only check for out of bounds indices if debugging is turned on while compiling LOOS.

Bug Fixes

  • Fixed bug in SVD tool where some command line options would incorrectly fail with an options error.

Version 2.0.6 (9-13-2013)

Bug Fixes

  • Fixed bugs in DCD reading code affecting trajectories that have a zero frame-count.
  • Fixed bug in setup.csh script affecting path to user package tools.
  • Fixed bugs in gmxdump2pdb.pl:
    • No longer users hybrid-36 encoding for PSF file
    • Correctly handles moltype in topology (systems where molecule segments were repeated in the topology would cause errors, e.g. bilayers where each leaflet is a separate segment).
  • Fixed fringe bug in coverlap tool where ENM-generated eigenpairs would not load in older RedHat Enterprise installs.
  • Fixed hierarchy so that it catches bad input and issues an error rather than segfaults.
  • Fixed several tools to catch errors when opening files.
  • Fixed bug in serialize-selection where the output molecules were interleaved rather than being in a contiguous block (see ChangeLog for more details)
  • Fixed bug affecting XTC trajectories with 9 or fewer atoms
  • Fixd bug in phase-pdb causing incorrect bonds when using –chunk and –row options

Added, Changed, or Otherwise Notable

  • Added fixdcd tool to fix the DCD header (in-place) with the correct number of frames in the trajectory.
  • Added support for disambiguating sign of PCA vectors in cross-dist.
  • Added link to tutorial on LOOS
  • Added protein_tilt.py tool to PyLOOS.
  • Added .nc and .crd as Amber format for trajectory files
  • Changed installation to include python scripts if pyloos is being built
  • Changed transition_contacts to add a –smoothed-transition option, smoothing the contact matrix when a contact is near the cutoff. This is now the default behavior. See the associated –fullhelp for more details
  • Changed default exponential spring constant in ENMs to -0.5

Version 2.0.5 (6-19-2013)

Bug Fixes

  • Fixed bug in gmxdump2pdb.pl affecting systems with >= 100k atoms
  • Fixed bug in native_contacts causing the last residue in selection to be handled incorrectly.
  • Fixed bug in pyloos.selectAtoms() so that it throws a LOOS exception on error.

Added, Changed, or Otherwise Notable

  • Changed StreamWrapper, Trajectory (and derived classes), and all structure classes to take an istream object in the constructor rather than an ifstream.
  • Added HBondDetector class as part of core LOOS
  • Added LOOS exceptions to PyLOOS
  • Added fcontacts tool that, in most cases, should replace contact-time.
  • Added/changed options to native_contacts
  • Changed renum-pdb so connectivity is preserved
  • Changed setup scripts to prepend paths rather than append
  • Changed averageStructure() and iterativeAlignment() functions that take a Trajectory object so that they do not cache frames
  • Changed aligner and rmsd2ref tools so that they do not cache frames
  • Added –xyonly option to aligner
  • Added serialize-selection tool
  • Added transition_contacts tool

Version 2.0.4 (4-3-2013)

Bug Fixes

  • Fixed build issue with Boost 1.52+
  • Fixed issue associated with regenerating the parser
  • Fixed bug in area_per_lipid where it ignored the –skip option
  • Fixed error in documentation for subsetter
  • Fixed performance issue when writing PDB files with CONECT records that contain a lot of atoms
  • Changed PSF reader to NOT use hybrid-36 encoding (would break for large systems and is unnecessary for PSF files)

Added, Changed, or Otherwise Notable

  • Changed build protocol for PyLOOS. To build PyLOOS along with the rest of LOOS, use "scons pyloos=1". To install everything along with PyLOOS, use "scons pyloos=1 install"
  • Added support for building PyLOOS in MacOS (note: still in beta-release)
  • Added "chainid" keyword to selection language
  • Added –assign option to ramachandran for a rough secondary structure assignment
  • Added –brief option to area_per_lipid

Version 2.0.3 (2-1-2013)

Bug Fixes

  • Fixed big in CHARMM CRD reader where the segid wasn't set
  • Fixed errors in help messages
  • Fixed bug in PSF reader when reading a file that came from windows
  • Fixed bug in AtomicGroup::AtomicGroup(const int n) constructor found by H. Elgabarty.
  • Fixed build for OpenSUSE and Ubuntu 8.04 LTS

Added, Changed, or Otherwise Notable

  • Added support for AMOEBA Amber prmtop files
  • Added Amber::title()
  • Added support for handling basic fortran formats within Amber files (i.e. data format is no longer hard-coded)
  • Improved error messages when parsing Amber prmtop files
  • Added support for NetCDF formatted Amber trajectories
  • Changed AtomicGroup::splitByUniqueSegid() so that the AtomicGroup's returned are in the order the segids appear in the source group.

  • Added LineReader base class for reading lines from a file. Handles removal of comments and tracking of line numbers for errors. Amber prmtop reader now uses this, as does readVector<T>().

  • Added AtomicGroup::atomOrderMapFrom() to map the order of atoms in one group into another. This is for "edge" cases such as when psfgen reorders the atoms within a residue. See the full changelog or source code for details.

  • Added AtomicGroup::copyMappedCoordinatesFrom() to find the mapping of atoms from one group into the current one and use this to correctly copy the coordinates. See AtomicGroup::atomOrderMapFrom() for more information.

  • Changed water-hist to now include the water-filter bounds when calculating grid size.

  • Changed gridgauss options to permit more control over the smoothing kernel (note: old invocation will no longer work)

  • Added gridautoscale to normalize grid densities such that bulk water is 1.0 (only for membrane systems with Z along the membrane normal)

  • Ramachandran tool only uses spaces in output, not tabs and spaces

  • Added some support functions to Simplex

Version 2.0.2 (8-21-2012)

Bug Fixes

  • Fixed bug in PDB reader where bonds were not made symmetrical unless they were explicitly so in the PDB file (i.e. a bond from X to Y did not imply Y bound to X).
  • Fixed a bug when using << to write a PDB file with bonds. The underlying PDB would be sorted after it was written. Now the PDB is const and will not change.
  • Fixed a bug when writing PDB files with bonds where every bond was explicitly written into the CONECT records. Now, only the unique bonds are written (i.e. a bond from X to Y will appear in a CONECT record, but not Y to X).

Added, Changed, or Otherwise Notable

  • Changed model-select to now require the "--selection" option to specify a subset. A "--splitby mode" option has been added where mode can be residue, segid, molecule, or name. This will split the subset and each resulting AtomicGroup written out.

Version 2.0.1 (8-6-2012)

Bug Fixes

  • AtomicGroup::superposition() will now throw an error if the superposition is indeterminate.
  • Fixed a bug in water-inside and water-hist that can cause the radius filter to segfault
  • Fixed normalization bug in the cumulative column of xy_rdf
  • Removed –center option in aligner since it is no longer necessary and it can lead to unintended translations in the output.

Added, Changed, or Otherwise Notable

  • Added "hcontacts", a tool for tracking intra- and inter-molecular hydrogen bonds in a trajectory.
  • Added "hoccupancies.pl", a tool for computing occupancies from hcontacts and hmatrix output.
  • Atoms can now be compared in PyLOOS
  • Major change in how the Atom::bondsbit is handled. If a file is read that supports connectivity (e.g. a PSF or a PDB with CONECT records), then the bondsbit will be set for all atoms, regardless of whether or there are bonds actually present for a given atom. Additionally, Atom::getBonds() will now return an empty vector in this case rather than throwing an error.
  • Added gmxdump2pdb.pl, a PERL program that takes the output from gmxdump and creates a PDB and a "fake" PSF file representing the structure and its connectivity.

Version 2.0.0 (5-2-2012)

Bug Fixes

  • Fixed bug in subsetter when using a subset of a model that resulted in incorrect connectivity being written out.
  • Fixed bug in averager regarding the default selection to average over.
  • Fixed bug in blurrogram.pl where it would incorrectly call trajinfo.
  • Fixed bug in aligner when alignment and transformation subsets are not the same and auto-centering is turned on.
  • Fixed documentation for AtomicGroup::within() to say that A.within(x, B) returns atoms from A that are within x Angstroms of any atom in B.
  • Fixed bug in GROMACS TRR trajectories where natoms() could return erroneous sizes (only after instantiating the object and before any frames had been explicitly read).
  • Fixed bug in GROMACS TRR trajectories where TRR::updateGroupCoords() could possibly fail if updating a small subset.
  • Fixed bug in PDB output when the REMARKS lines contained embedded newlines. These are now stripped.
  • Fixed bug in rmsd2ref where warnings would always be issued regardless of whether a target was specified or not.
  • rotamer now automatically splits the selections into residues. There is a potential bug in rotamer if a selection contains multiple residues and for some, a rotamer calculation is not possible. The tool will select atoms by name from the set of residues and use the first one found to calculate the torsions.

Added, Changed, or Otherwise Notable

  • Beta-release of the Python interface to the core LOOS
  • Changed eye() and submatrix() to be templated functions
  • Restored original behavior of density-dist tool (the first selection is always "all") and zero or more selections are permitted on the command-line
  • Added potential_profile.py tool that uses the output from density-dist, run in "charge" mode, to compute the electrostatic potential profile
  • Added flags to xy_rdf to handle the case where a selection should be treated as appearing in both leaflets (e.g. a transmembrane helix)
  • Changed parseRange<> implementation to reflect how Octave/Matlab handle negative step sizes for counting backwards. Improved validation of inputs.
  • Added cross-dist tool to compute distribution of crossing angles and torsions for chains.
  • Changed traj2pdb to use a printf-style output name template
  • Refactored utils.hpp into utils_random, utils_structural, and utils. loos.hpp includes all utils headers, so no tools require changes
  • Improved AtomicGroup::within() performance and added support for periodicity
  • The following tools are deprecated: model2matlab, svdcolmap, dumpmol, center-model, density-dist-windowed, xy_rdf_timeseries
  • Added –fullhelp support in most tools and improved help output for the rest

Version 1.7.5 (2-24-2012)

Bug Fixes

  • Fixed bug in porcupine
  • Fixed bug in merge-traj that sometimes caused it to not merge all frames
  • Fixed bug affecting all grid tools (stored metadata in grid output) when any tool option includes a newline. This would typically occur in selection strings.
  • Fixed bug in molshape where some command line options were ignored

Added, Changed, or Otherwise Notable

  • Added more help information for various density tools (see –fullhelp)
  • Changed the system and trajectory factory functions to allow an explicit file-type to be passed. For many tools, you can now explicitly set the file-type from the command-line as well. See the tool –help for more information.
  • The rmsds tool was largely rewritten. It can now compare either a single trajectory with itself or another trajectory. The iteratively- aligned mode has been removed.

Version 1.7.4 (12-23-2011)

Bug Fixes

  • Fixed bug in AtomicGroup::maxResid() that gave erroneous results (found by Ben Reynwar).
  • Fixed AtomicGroup::splitByResidue() so that it preserves the periodic box information in the split residues.

Added, Changed, or Otherwise Notable

  • Changed AtomicGroup::splitByMolecule() to be a const function (internally, it makes a copy of the current group prior to splitting).
  • Changed subsetter so that connectivity is preserved (as best it can be) when extracting a subset from a trajectory.
  • Added a "radius" water-filter for the density tools. This selects waters that are within a given radius of any specified protein atom.
  • Added an optional bool argument to AtomicGroup::radius() that tells radius to use the coordinates of the first atom rather than the centroid of the group.

Version 1.7.3 (12-12-2011)

Bug Fixes

  • Fixed bug in decorr_time causing it to not generate output
  • Fixed bug in order_params where not spcifying the ba_last option caused it to be improperly set.
  • Fixed bug in effsize.pl where the random number seed value was not correctly used.
  • Fixed bug in density-dist where the time-series was always written.
  • Fixed bug in PDB reader affecting DOS-formatted PDB files with CONECT records.
  • Fixed bug in subsetter where the –verbose flag was ignored
  • Fixed bug in XTC::updateGroupCoords() when passed a group smaller than the trajectory frame (found by Ben Reynwar).
  • Fixed bug where radial distribution tools would operate without periodic box information. Now, either the model or the trajectory must have periodic box information to run.

Added, Changed, or Otherwise Notable

  • Added a new tool to compute a residue-contact "heat map".
  • Added new option to merge-trj (selection-is-split) to more robustly handle the case where the centering selection is split across an image boundary.
  • Added an "--any" mode to hcorrelations to compute the time-correlation for whether there is any hydrogen bound, rather than a specific hydrogen.
  • Added Atom::atomType() to support tinkerXYZ atom type info
  • Default spring constant for exponential springs was changed to -6
  • xy_rdf will write out 0's rather than NaN's if there are not atoms in a leaflet.
  • AtomicGroup::splitByMolecule() will now skip over missing bonds rather than throw an exception.
  • All header CPP guards now have "LOOS_" as a prefix, i.e. "LOOS_ATOM_HPP" rather than "ATOM_HPP"
  • Changed the PDB reader so that reading large PDBs with CONECT records is significantly faster.

Version 1.7.2 (8-5-2011)

Bug Fixes

  • Fixed bug in xy_rdf causing "by-molecule" split-mode to fail in some cases.
  • Fixed bug caused by certain older versions of BOOST where similar command-line option names would cause an error (e.g. –center and –center_xy in the center-molecule tool)
  • Fixed bug in density-dist-windowed and rgyr where the first frame of the trajectory would be skipped if no explicit skip was given on the command-line
  • Fixed bug in water-hist that caused a corrupted grid to be written out
  • Fixed bugs in command-line handling for contained, blobid, and pick_blob
  • Fixed bug in avgconv that would fill up memory if the trajectory was too small
  • Fixed bug in gridslice tool that either transposed the output matrix or crashed the tool
  • Fixed bug in xy_rdf and rdf tool where there was no default split-mode (despite the help saying there was)

Added, Changed, or Otherwise Notable

  • Added a –brange option to water-hist to take the bulk water estimate from a Z-slice
  • Performance optimization in rdf tool
  • Changed how the build-date is handled. It is now placed in a source file, so building LOOS on a new day will only involve recompiling that file and relinking all tools (as opposed to recompiling EVERYTHING).

Version 1.7.1 (7-26-2011)

Bug Fixes

  • Fixed bug in the rdf tool that incorrectly processed the command-line arguments, preventing it from running.
  • Fixed an issue in rdf, atomic-rdf when using long trajectories.

Version 1.7.0 (7-18-2011)

Bug Fixes

  • Fixed bug in avgconv where the default block-sizes would cause a segfault.
  • Fixed bug in ramachandran for structures with multiple chains where the terminii were not handled correctly.
  • Fixed bug in Trajectory class where the following code would result in a duplicated first frame being read:
    traj->readFrame(0); // Reads first frame and leaves iterator at second
    traj->readFrame(); // Reads second frame and bumps iterator
    Instead, the second readFrame() call would return the first frame. This is now fixed.

Added, Changed, or Otherwise Notable

  • Reorganized LOOS into the core LOOS library, core tools, and a set of packages.
  • Added a "User" package with several tool templates that cover common tool cases (e.g. calculations based on a model, based on a trajectory, etc). These are built using the LOOS top-level SConstruct. However, they are not not part of the default build, so you must explicitly build them with "scons user".
  • Added a "Density" package primarily for analyzing water density from MD simulations.
  • Added a new options handling framework (OptionsFramework). Many tools (and some packages) now use this framework. This will ensure more consistent options across tools. The catch is that this means many tools now have slightly different command-line usage. This will break existing scripts that use the old LOOS tool command-line options. See the documentation for OptionsFramework for more information. NOTE: User-written code does NOT have to use the OptionsFramework system. You can still use whatever method you want to handle the command line.
  • Added general utility functions including loadStructureWithCoords(), assignTrajectoryFrames(), and vectorAsStringWithCommas<T>(const vector<T>& v)
  • AtomicGroup::append() and AtomicGroup::remove() now return an AtomicGroup reference so they may be chained.
  • Added a Math::transpose() function (this is not an in-place transpose)
  • Changed the header/metadata from LOOS tools to include the current working directory (if available).
  • Added support for using different selections for the trajectory and the reference structure in rmsd2ref

Version 1.6.1 (5-18-2011)

Bug Fixes

  • Fixed bug where charmm.hpp was not copied as part of an install
  • Fixed bug in GRO files where the periodic box was not converted into Angstroms.
  • Fixed bug in eigenflucc that included the rotation/translation modes when computing B-factors.

Added, Changed, or Otherwise Notable

  • Added support for hybrid-36 encoding in atomids and resids in PSF files.

Version 1.6.0 (3-4-2011)

Bug Fixes

  • Fixed bug affecting Trajectory::rewind() for Tinker ARC files
  • Fixed bug when computing variance in TimeSeries
  • Re-fixed bug in svd tool for MacOS (precision issue with vecLib)
  • Fixed compiler issue in AtomicGroup for older versions of g++
  • Fixed bug in AtomicGroup::renumberWithBonds()
  • Fixed bug in big-svd where RSVs were not normalized

Added, Changed, or Otherwise Notable

  • Substantial change in ENM code to turn it into a library in its own right. More information can be found within the Doxygen docs (in ENM namespace)
  • AtomicGroup::findById() no longer implicitly sorts atoms. If the AtomicGroup has been explicitly sorted, then the binary search will still be used to find the atom. Otherwise, a linear search is used.
  • Order parameters now uses boost program options (command line is similar, but not precisely backward compatible), has the option to use y or x as the direction of the magnetic field, and has the option to dump out the timeseries of the order parameters. Specifically, the last quantity is computes the average instantaneous order parameter for each carbon position at each time point. The "+/-" column in the output is the stdev of these timeseries, which is not a good measure of the statistical uncertainty. To get that, one should use block averaging on the time series. This is also an option – in principle, you read off the plateau value from the block averaging plot, but since this plateau is noisy, I make you specify a range of block sizes over which to average (the defaults are 2 blocks to 5 blocks, but you really should run the program twice, and the first time look at the block averaging plots to see where the block standard error converges.
  • Added a simple Nelder-Meade Simplex optimizer
  • Changed averager so that bonds are pruned (rather than cleared) when subsetting.
  • Improved phase-pdb tool. See "--help" for more details
  • Added kurskew tool to compute moments for RSVs (useful for quick and dirty checks for modality)
  • Added block averaging tool
  • The aligner tool can now align to a reference structure and deprecated options removed
  • Added a suite of convergence tools (see Doxygen docs for more details)
  • covarianceOverlap() now uses BLAS and matrix operations so it is significantly faster.
  • Added z-score for covariance overlap and support for this in the coverlap tool.
  • Changed rdf tool to split by molecule, residue, or segment.
  • AtomicGroup::splitByMolecule() has been improved and should be 20-30x faster.
  • density-dist can now make the density symmetric about the membrane center (assuming the system has been centered such that the membrane center is at z=0).
  • Many more tools now use boost::program_options
  • density-dist-windowed is now deprecated, having been folded into density-dist
  • recenter-trj should be more robust (although slower)
  • Added option to merge-traj to "fix by molecule" so that trajectories that have molecules broken across the periodic boundary (eg gromacs output) come out looking clean.

Version 1.5.5 (8-2-2010)

Added, Changed, or Otherwise Notable

  • Added a tool to randomly perturb structures
  • Added a tool for computing fluctuations from ENM/PCA (the old flucc2b tool is now deprecated)
  • Added a tool for computing SVD's of large systems or when there are many time-steps
  • Added a tool to compute the covariance and subspace overlaps from ENM and PCA results
  • Added a new suite of tools for analyzing hydrogen-bonding
  • Added support for accessing the SharedPeriodicBox in AtomicGroup
  • Added support for some STL algorithms in TimeSeries class
  • Changed the order_params tool to handle both 1- and 3-residue per lipid formats
  • Changed the regular SVD tool to use double-precision
  • The transpose flag in ASCII matrices is now deprecated

Bug Fixes

  • Fixed bug in linux that affected library link order. ATLAS is now correctly linked in first.
  • Fixed bug in AtomicGroup::perturbCoords() where the directions picked were not actually uniformly distributed on the sphere.
  • Fixed bug in writing internally transposed matrices.
  • Fixed bug in Matrix code that affected large matrices (those with more than 2^32 elements).
  • Fixed bug in svd tool only for MacOS. This bug is one in the vecLib framework and may or may not effect the SVD output for single precision. Symptoms include non-orthogonal LSVs and all non-zero singular values (there should be 6-zeros if using an aligned trajectory). The double-precision svd does not have this problem nor does the implementation in big-svd.
  • Fixed big in traj2matlab where the wrong subset of atoms was used to create the matrix.

Version 1.5.4 (4-23-2010)

Added, Changed, or otherwise Notable

  • Changed contact-time to use "fast" method that uses a distance-cutoff to restrict which target atoms are considered. This can be disabled if necessary. See "contact-time --help" for more details.
  • Fixed bug in DescendingSort that caused it to sort ascending instead.
  • Changed porcupine tool to make tagging of altered atoms optional and to have fixed length tips rather than proportional length ones.
  • Changed AtomicGroup::rmsd() to take a const arg (this means that it no longer implicitly sorts the AtomicGroup objects). Implicit sorting is one "feature" that is going to gradually go away from AtomicGroup.
  • Changed VSA/ANM tools so as to allow user-defined HCA parameters
  • Fixed Hessian code (affecting ANM/VSA) to truncate negative spring constants to 0 (generally, this happens when using HCA with nodes that are too close together).
  • Fixed bug in parser for Debian systems
  • Changed Linux code to use blas rather than cblas
  • Changes made to SConstruct for better Ubuntu/SUSE support

Version 1.5.3 (2-19-2010)

Added, Changed, or otherwise Notable

  • PDB::fromAtomicGroup() now generates a UnitCell if the passed AtomicGroup has periodic boundary information. This means that the output PDB will have a CRYST1 record.
  • Added a more flexible centering tool called center-molecule
  • Added a new tool for computing inter-selection contacts over time called contact-time
  • Changed exposure tool to default to reimaging
  • Added alignto tool for aligning a trajectory to a reference structure
  • Added a set of generic sorting functions
  • Added support for single and double precision matrix operations. Note that these are for "quick-and-dirty" work and are not meant to give good performance...
  • ENM tools sort their output from smallest to largest eigenvalue, and the zero eigenpairs always come first
  • Added a VSA tool (along with psf-masses and heavy-ca tools for getting mass information into the VSA tool)
  • Added covariance and subspace overlap functions
  • Changed DCDWriter so that it can now append to an existing DCD
  • Changed ENM tools use a Hessian constructor that's in a separate module, along with different methods for handling the spring constants via a polymorphic "superblock" object pointer... This will make more sense looking at the code itself...

Bug Fixes

  • Fixed bugs in subsetter affecting reimaging only occuring if centering was turned on, and one causing bonds not to be cleared when subsetting.
  • Fixed bug in extractCoords() causing it to always fail.
  • Fixed bug in enmovie tool affecting connectivity not being cleared and atom number mismatches between the reference PDB and the DCD.
  • Fixed bug in svd function that takes a vector<AtomicGroup>, but only when aligning was requested. The alignment transform was doubly-applied to the passed vector. No tools were affected by this. No other invocations of svd() were affected either.
  • Fixed bug in aligner where the target selection was not always correctly centered. It would be aligned correctly, just not always centered...

Version 1.5.2 (10-9-2009)

Added, Changed, or otherwise Notable

Bug Fixes

  • Fixed bug where segname was not correctly handled as a synonym for segid.
  • Fixed bug affecting Amber restart files. These are handled as a special trajectory with one frame, but the readFrame() iterator was not correctly set so the first call would return a false, indicating that all frames had been read.
  • Fixed another issue with Amber restart files that may have slight variations in formatting. This affected restart files that only have the number of atoms in the header rather than the number of atoms and the time.

Version 1.5.1 (9-21-2009)

Bug Fixes

  • Fixed bug in install target where trr.hpp was not copied to the installation directory.

Version 1.5.0 (9-17-2009)

Many of the changes in this version are internal (primarily as new functions and features). The big change is that LOOS now supports Gromacs .gro, .trr, and .xtc file formats. Since Gromacs stores coordinates in nm, LOOS converts the coordinates into Angstroms upon reading. LOOS only supports single precision .xtc files.

Important note regarding Gromacs support: While we have tested the gromacs support with a limited set of sample files, the code has not been as rigorously tested as support for previous formats have been. Gromacs support should therefore be considered experimental at this stage. Please report any problems or errors to as at loos_maintainer [at] urmc.rochester.edu

LOOS now also uses the hybrid-36 encoding method for PDB files with a large number of atoms or residues. See here for more information.

Added, Changed, or otherwise Notable

  • Added AtomicGroup::findBonds() to perform a simple distance-search for bonds.
  • Added support for testing Atom equality. See loos::AtomEquals, loos::AtomCoordsEquals for more information.
  • Added loos::AtomicGroup::contains() and loos::AtomicGroup::intersect() for set operations.
  • Added new bits to loos::Atom that can be used as flags (i.e. flagbit, usr1bit, ...)
  • Added Gromacs classes: loos::Gromacs, loos::TRR, and loos::XTC.
  • Changes to the Trajectory class and subclasses:
    • Changed the underlying stream type to iostream. This should not break anything unless you have subclassed Trajectory for your own purposes.
    • Implementation functions are now private.
    • Added some missing constructors in the subclasses.
  • Added some utilities for parsing strings (loos::parseStringAs<>())
  • Added new formatters for matrix output that make it easier to set the width and precision of the matrix elements, or write them out in scientific notation (i.e. loos::ScientificMatrixFormatter)
  • Added Hybrid-36 support to PDB's (both reading and writing)
  • rmsds can now work with a subset of frames from a trajectory
  • subsetter can now reimage
  • SVD now will only write out the non-zero terms of the SVD rather than the entire matrix.
  • Added a "not" operator to the selection language so there's no more fighting with the shell over '!'.
  • Some tools have been updated internally to be more consistent with the current LOOS idioms... There may be minor changes in usage:
    • SVD now requires a 1 or 0 for the -S option
  • New tools:
    molshape

    Reports statistics about a selection (i.e. extents, radius of gyration, location of centroid, principal axes, etc)

    native_contacts
    Compute the fraction of native contacts in a trajectory based on an initial structure

Bug Fixes

  • Fixed bug in loos::writeAsciiMatrix() when only writing a subset of a matrix.
  • Fixed bug in bounding tool's box size
  • Fixed problem with spurious rebuilds of all of LOOS with SCons.
  • Fixed bug in loos::DCD::updateGroupCoords where the upper-bounds check on atomid's was incorrect.

Version 1.4.0 (6-26-2009)

There has been a change in philosophy of how LOOS handles system descriptions vs models/trajectories/coordinates. Previously, LOOS would try to create an AtomicGroup that had complete information, such as when given an Amber prmtop file. In this case, LOOS would go looking for a file with the same name ending in ".inpcrd" and load this in with the prmtop file. Now, LOOS will treat coordinate files as a special trajectory that has only one frame. This way, most tools that can operate over a trajectory can also operate on a single model, and vice versa. For example, the following are all valid:

ramachandran --pseuo foo.prmtop foo.rst all
ramachandran --pseudo foo.prmtop foo.mdcrd all
ramachandran foo.psf foo.dcd all
ramachandran foo.psf foo.pdb all
ramachandran foo.pdb foo.pdb all

This can lead to the somewhat awkward usage in the last example, but think of it as the first PDB provides the system description and the second provides the actual model, even though they're both the same.

Added, Changed, or otherwise Notable

  • Added an AtomNameSelector() to match arbitraty atoms
  • Added centerOfElectrons() to AtomicGroup class
  • Added support for Tinker file formats in the factory functions
  • Added a renum-pdb tool for renumbering models
  • Added interdist tool for calculating distances between selections
  • Added support for numerically sorting the input trajectory filenames in subsetter. See the tool documentation above for more information.
  • Added a porcupine tool for creating porcupine plots for SVD/ENM results
  • Added paxes tool for computing the principal axes magnitudes (i.e. eigenvalues) of a set of selections over a trajectory.
  • Added drifter tool for tracking centroid movement
  • Added a ramachandran tool for calculating ramachandran maps
  • Added a "rotamer" tool for calculating the chi-1, chi-2 torsion angles for side-chains.
  • Added "rmsfit" tool to superimpose one model upon another
  • Added a suite of Elastic Network Modeling tools inside Tools:
    • "anm" calculates an anistropic network model
    • "gnm" calculaes a gaussian network model
    • "flucc2b" maps anm/gnm fluctuations onto a PDB's B-values
    • "enmovie" creates a DCD trajectory showing motion based on anm/gnm results.
  • Reduced the size of the test files
  • Added an install target for SCons
  • Added support for building a shared-library version of LOOS
  • Added a special SCons check for ubuntu. Some systems appear to have an issue where they require the gfortran lib to be explicitly linked. If this causes an issue for you, simply comment out the ubuntu check in the SConstruct.

Internal Changes

  • Changed how Trajectory classes work slightly... Trajectory-derived classes must now read in and cache the first frame of the trajectory as part of their initialization.
  • CAlphaSelector() is now deprecated; use AtomNameSelector("CA") instead.
  • Added a set of classes for providing user-feedback when a tool may take some time to execute. See loos::ProgressCounter for more information, and the rmsds tool for an example of how to use the new classes.
  • Removed the use of BOOST_FOREACH. This solves a compatability issue with older versions of BOOST and LOOS.
  • Added a number of support utilities for reading in whole trajectories and reading in specific frames.
  • The ensemble functions (i.e. align and average) can now operate over a user-specified set of frames from a trajectory.
  • Added AtomicGroup::splitByResidue() that splits up a group by residue (based on changes in resid and/or segid), returning a vector<AtomicGroup>.
  • The createSystem factory function now no longer tries to automatically find and import an Amber coord file when reading in a PRMTOP. In addition, the Amber::readCoords() function has been removed.
  • Added support for Amber restart and coord files as a special 1-frame trajectory. This is transparently handled by the createTrajectory factory function.
  • The Trajectory class now uses NVI for the seek and rewind member functions so it can impose some pre-conditions. This means the Trajectory base class handles the cached_first flag. Unless you're writing your own trajectory class, this wont affect you. If you are, it means the seek and rewind functions are now handled by rewindImpl(), seekImpl(), etc.

Bug Fixes

  • Fixed bug in subsetter where verbose output was always on.
  • Fixed bug in subsetter where out of range frame indices would cause a seg-fault.
  • Fixed bug in rmsds that caused the average rmsd to be calculated incorrectly.
  • Fixed some issues with the SConstruct file
  • Fixed a problem with averager where it was caching all frames of the trajectory causing swapping for large trajectories

Version 1.3.4 (2-16-2009)

Bug Fixes

  • Fixed bug in aligner affecting centering the trajectory while using different alignment and transformation subsets. The output trajectory was incorrectly transformed. The error committed is proportional to the difference in the centroids between the two subsets...

Version 1.3.3 (2-9-2009)

Added, Changed, or Notables

  • Added recenter-trj tool to center trajectories
  • Added trajinfo tool to print out information about generic trajectories. This tool will also verify the number of frames actually present in the trajectory.
  • Added concat-selection tool to concatenate atoms from a trajectory into a single PDB. This is useful for visualization atom distributions over the entire trajectory
  • Added blurrogram.pl, a PERL script to aid in creating "blurrogram" figures using Pymol
  • Added AtomicGroup::translate()
  • The frame2pdb tool now accepts a selection (subset) to write out
  • The svd tool always writes out an average structure now
  • The subsetter tool can now accept a list of aribtrary ranges of frames to extract, or a stride option. It can also take an arbitrary list of input trajectories to combine and extract from. In addition, it can override or add periodic box information.
  • The DCD class will now handle reading of non-native endian DCD files
  • The DCDWriter class will now flush the output streams after each frame is written to ensure all data is actually written to disk

Bug Fixes

  • Fixed an issue with DCD's written by LOOS that have periodic boundary information. The default unit cell angles were 1, rather than 90 degrees. This prevents programs like VMD from correctly displaying the periodic images.
  • Fixed a typo in the default alignment selection for the rmsd2ref tool
  • Fixed a bug in several tools that affected using a PSF file for the model when writing out a PDB file that had been subset with a selection.
  • The loos::averageStructure() function did not verify that the input vector<XForm> matches the numbef of frames in the passed trajectory. This results in a segmentation fault when the trajectory has a bad header (i.e. the number of frames listed does not reflect the number of frames actually in the trajectory). This case is now checked for and a slightly more sensible error is thrown.
  • The error messages given when the LOOS could not decide what format a file is in were vague...this has been improved...

Version 1.3.2 (1-20-2009)

Bug Fixes

  • Fixed severe bug that results in bad connectivity information when reading from Amber prmtop files.

Added or Altered Functionality and Notables

Version 1.3.1 (1-14-2009)

Bug Fixes

  • Fixed bug affecting MacOS X 10.5 builds.
  • Aligner wrote out its reference PDB uncentered even if given the "--center" flag.
  • Aligner did not correctly compute average structure unless the "--rmsd" flag was given.
  • The "--terms" flag for the svd tool was inadvertently removed.

Version 1.3.0 (12-22-2008)

Namespace Changes

This release represents some major changes to the internal structure of LOOS. First and foremost, virtually all of LOOS is now encapsulated within the "loos" namespace whereas before much of loos was in the global namespace. This means that Atom a; becomes loos::Atom a;. Alternatively, you can place a using directive at the top of your code,

using namespace loos;
Atom a;

LOOS also now respects your global namespace by not forcing the importation of names that it uses, such as from the std namespace or boost. In fact, in versions prior to 1.3.0, LOOS would import std into the global namespace. If you were relying on this behavior, you will now need to manually import in your code. We therefore recommend that you add the following to the start of all of your code:

using namespace std;
using namespace loos;

Another major change in version 1.3.0 is the matrix handling code. There is now a generic loos::Math::Matrix class that supports several different ways of laying out the raw data (i.e. row major vs column major) and can even support sparse storage. This class in in the loos::Math namespace. It is important to note that the goal of this class is to provide a controllable wrapper around a block of memory for interfacing with ATLAS. It is not meant to be a generic matrix in a mathematical sense, despite being located in the loos::Math namespace. The polymorphic matrix I/O classes (i.e. MatrixReader and MatrixWriter) are now gone, replaced by template functions loos::writeAsciiMatrix() and loos::readAsciiMatrix(). The format used is just a block of ASCII data that can be read in my Octave/MATLAB and GnuPlot. These reading and writing functions are in the loos namespace, not the loos::Math namespace. The reason for this is to support the following pattern,

using namespace std;
using namespace loos;
...
writeAsciiMatrix(filename, M, "My matrix");

Additionally, math functions that were at a global scope, such as angle() and torsion() are now in the loos::Math namespace.

Added or Altered Functionality and Notables

  • There is an issue with tr1::unordered_set in gcc-4.0.1. This the internal data structure used by the sparse matrix policy. To work around this, LOOS will switch to using the GNU provided hash_map if you're using gcc-4.0.1. This is most likely to affect MacOS users running 10.4 and XCode 2.5 and earlier.
  • When loos::createSystem() sees an Amber prmtop file, it will automatically look for a corresponding .inpcrd file and load the coordinates from that. Otherwise, it returns an AtomicGroup sans coordinates.
  • The ensemble functions (such as loos::averageStructure()) now take a loos::pTraj instead of a reference to a loos::Trajectory&.
  • Many of the tools now use the boost program_options library
  • The alignment tool (aligner) now writes out the average structure as well, and has an option to center the aligned trajectory.
  • Added subsetter tool that pulls a subset of a model out of a trajectory into a new, smaller trajectory.
  • The PDB reader now only emits warnings for each unique unknown record read rather than a whole mess of 'em...

Bug Fixes

  • Fixed a bug in the Amber trajectory reader that caused LOOS to incorrectly seek frames. This affected using readFrame(i) but not readFrame().
  • AtomicGroup::splitByMolecule() now handles groups without connectivity.
  • Fixed a problem with the PDB reading code that mangled wide CONECT records.

Version 1.2.1 (11-3-2008)

Bug Fixes

  • Fixed bug in crossing-waters tool
  • Fixed bug in loos::Atom::clearPropertyBit() that caused it to not always toggle the correct bit.

Version 1.2.0 (10-24-2008)

Changes

  • Added helix_kink tool to determine bend-angles in helices.
  • Added HeavySolventSelector
  • Updated tools to use new convenience/factory functions, also making them a tad more universal in what inputs they can take.
  • Added AtomicGroup::clearBonds() to remove connectivity in a group.
  • PDB will out write out CONECT records when there are 10K atoms or greater, to prevent field overflow.
  • Coord<T> can now extract itself from a stream.
  • Added loos::selectAtoms() to parse a selection string and apply it to an AtomicGroup.
  • Added support for writing out PDB CONECT records.

Bug Fixes

  • Fixed problem with PDB output when there are more than 10K residues
  • Fixed bug in DCDWriter that caused the output periodic box to be set to (1,1,1) regardless of what was passed in.
  • Fixed problem when writing a PDB with bonds to missing atoms. Bonds are now dereferenced prior to writing. This means that the PDB is now no longer const when written and could be sorted.
  • Fixed bug in width of CONECT record fields
  • Fixed bug in DCD trajectories affecting seeking frames
  • Fixed bug in DCD trajectories potentially affecting the number of frames sensed in a trajectory that comes from NAMD.
  • Fixed bug in Atom::checkProperty() that caused erroneous results.

Version 1.1.0 (9-12-2008)

Changes

  • Major reorganization of the Trajectory class using a template pattern.
  • Added CCPDB class for concatenated PDBs that you can treat as a Trajectory
  • Added PDBTraj class for handling non-contiguous PDB trajectories
  • Added TinkerArc class for TinkerArc (concatenated XYZ files) trajectories
  • Changed Atom defaults to initialize atomid and resid to 1 rather than -1
  • Added tool to compute the RMSD between a selection and its average structure over the course of a trajectory
  • Improved self-tests
  • Added a new tool to reimage a trajectory by molecule
  • Added AtomicGroup::apply() to call a functor or a function pointer on each Atom in an AtomicGroup.
  • DCDWriter now long requires you to specify how many frames will be written–you can append and it will automatically update the header correctly.

Bug Fixes

  • Fixed problem with typedefs in MacOS 10.5
  • Fixed bug in ATom where setting coords using a GCoord ref not correctly setting the coords-bit.
  • Fixed big in aligner where the first frame of the DCD was not transformed.
  • Fixed bug in AtomicGroup::splitByMolecule() where the PeriodicBox was not propagated beyond the first group split.
  • Fixed bug in svdcolmap tool that affected certain instances of using atomid maps.
  • Fixed bug in loos::iterativeAlignment() where the returned XForms were incorrect. The passed ensemble of AtomicGroup objects were correctly transformed, but anything that used the XForms were affected by varying degrees.