There have been a couple of problematic bugs that have been fixed recently
in close pairs/excluded volume code. One was a bug that caused the close
pairs list to be built too often for a good part of January. The other was
a longer standing bug with close pairs lists not being updated properly
with rigid bodies under certain cases, which I don't entirely understand
exactly.
- A module IMP.module_template was added to act as a template for creating
new external modules. It includes setting up git hooks for format checks
and things like that. You can clone it and then check out your clone to
quickly get started with your own module.
- The python support for grids was cleaned up. Hopefully this makes it more
robust. If you were using a grid in python that no longer exists, ping us,
we can add it back.
- The generic geometry functions were simplified slightly and renamed to
IMP::algebra::get_vector_geometry().
- The IMP::base::Flag class was added to simplify adding flags in C++.
- The `--log_level` and `--check_level` command line argument now take
strings (eg VERBOSE) to specify their values, rather than cryptic (and a
bit unstable) numbers.
- Command line options are now divided into normal and advanced ones. You
do `--help_advanced` to show the advanced ones.
- Support for computing Connolly surfaces was added with
IMP::algebra::get_connolly_surface(). In addition, there is now
IMP::algebra::get_uniform_surface_cover(const
IMP::algebra::Sphere3Ds&,double) to sample the surface of a collection of
balls.
- IMP::atom:: create_simplified_from_volume() was added to create a
simplified representation of a hierarchy that preserves the surface are and
occupied volume. It uses IMP::algebra::get_simplified_from_volume(). If you
want to play with such representations, you can use the rmf_simply
application.
- IMP::atom::get_rmsd(IMP::atom::Selection, IMP::atom::Selection, const
IMP::algebra::Transformation3D&) was deprecated. Use
IMP::atom::get_rmsd_transforming_first() instead.
- IMP::algebra::get_rmsd() and IMP::algebra::get_rmsd_transforming_first()
were added.
- The family of macros IMP_BASE_[SMALL,LARGE]_[UNORDERED,ORDERED]_[MAP,SET]
have been added (eg IMP_BASE_SMALL_ORDERED_SET ()). They provide platform
and boost-version independent ways to take advantage of the best set/map
for an application. In particular, they use boost::container::flat_set and
kin when available.
- IMP::atom::State and IMP::atom::Representation decorators have been added
to provide support for multiple states and multiple representation schemes.
They are integrated with RMFs and IMP::atom::Selection. See
atom/multiresolution.py and atom/multistate.py for examples.
- The container imlementations has been cleaned up and simplified a bit.
This should not change most usage.
- [RMF](http://salilab.github.io/rmf) has been updated. There are a few
minor API changes, in addition to a new, faster format (`.rmf3`).
- [Eigen](#Eigen) is now included with IMP.
- The deprecated function IMP::kernel::Optimizer::set_restraints() was
removed. Use IMP::kernel::Optimizer::set_scoring_function() instead.
- The deprecated constructor for IMP::kernel::ModelObject that does not
take an IMP::kernel::Model was removed. This propagates to constructors
IMP::kernel::Restraint, IMP::kernel::ScoreState and kin. Make sure you pass
an IMP::kernel::Model as the first constructor argument. Related to this,
deprecated functions like get_is_part_of_model(), set_model() were removed
as they don't serve any purpose.
- The deprecated methods in IMP::kernel::Optimizer that pertain to
attribute optimization were removed. Inherit from
IMP::kernel::AttributeOptimizer instead if you want to use them in your
optimizer.
- Some deprecated functionality was removed. If you encounter problems,
replace IMP::base::OwnerPointer with IMP::base::PointerMember, find logging
stuff in IMP/base/log.h, object in IMP/base/Object.h and random in
IMP/base/random.h.
- IMP::atom::Chain now uses strings for the chain ids, to be consistent
with changes in the PDB. PDB files are written using the first character of
the chain string.
- Added orientation-dependent SOAP scoring
(IMP::score_functor::OrientedSoap and IMP::atom::OrientedSoapPairScore).
Orientation-dependent SOAP scores include those that score loops
(SOAP-Loop), protein-peptide interfaces (SOAP-Peptide) and proteins
(SOAP-Protein). The library files themselves are rather large (~1.5GB) and
so are not included with IMP. They can be downloaded separately from
http://salilab.org/SOAP/.