- Notifications
You must be signed in to change notification settings - Fork30
Tags: salilab/imp
Tags
2.22.0
IMP 2.22.0 release- IMP now includes the Bayesian Fluorescence Framework, as the IMP::bff module.- Python 2 is no longer supported; the minimum supported Python version is 3.6.- CMake 2 is no longer supported; the minimum supported CMake version is 3.14.- IMP::atom::Chain objects now track the mmCIF asym ID (if any), which often differs from the author-provided chain ID. This information is also stored in RMF files if using RMF 1.7 or later.- FoXS's JSmol output now includes mmCIF files rather than PDB, so can now support visualization of structures containing multi-character chain IDs or large numbers of atoms or residues.- The `rrt_ccd` and `rrt_sample` command line tools can now read structures in both mmCIF and PDB formats.- IMP::pmi::mmcif::ProtocolOutput now trims any non-represented C-terminal or N-terminal residues from each chain when outputting an mmCIF file.- The Windows .exe installer now supports Python 3.8 through 3.13.
2.21.0
IMP 2.21.0 release- The new IMP::spatiotemporal module can be used to assist in building stepwise spatiotemporal models, such as those we used to compute our model of NPC assembly.- The new IMP::nestor module performs nested sampling-based optimization of representation.- This is the last version of IMP to support Python 2. Please port your workflows to Python 3.- The IMP::atom::ChainPDBSelector constructor that takes a single string has been removed; pass a list of chain IDs instead.- The IMP::pmi::get_is_canonical function has been removed; PMI no longer supports the older PMI1-style hierarchies.- .deb packages for IMP for Ubuntu LTS, for both amd64 and arm64 architectures, are now provided by an [Ubuntu PPA](https://launchpad.net/~salilab/+archive/ubuntu/ppa)- Many runtime checks on the VectorD and Array (e.g. used by ParticleIndexPair) classes have now been moved to compile-time checks, which makes restraint evaluation significantly faster in release builds, without sacrificing correctness.
2.20.0
IMP 2.20.0 release- The Windows .exe installer now supports Python 3.7 through 3.12.- RPM packages for IMP for RedHat Linux (and clones such as Alma or Rocky) and for Fedora are now provided by the [COPR project](https://copr.fedorainfracloud.org/coprs/salilab/salilab/). Dependencies such as RMF and python-ihm are now packaged separately so that they can be updated independently of IMP itself.- We no longer provide packages for Ubuntu 18.04 LTS (Bionic Beaver), as it reached end of life in May 2023.- IMP::atom::Chain objects now track the sequence offset (if any) between FASTA and PDB residue numbering, and the UniProt accession (if known) of the sequence. This information is also stored in RMF files.- PMI's FASTA file reader now reads the UniProt accession for each sequence, if provided.- IMP::atom::ChainPDBSelector now takes a list of chain IDs, rather than a single string, so that it can select chains with multi-character IDs. When working with mmCIF files, it will now select based on the author-provided chain ID, if available, for consistency with the naming of IMP::atom::Chain particles.- The IMP::rmf::load_frame and IMP::rmf::save_frame functions now warn if they are called before links to IMP objects have been made (as this is a noop).- IMP::saxs::Restraint has seen performance improvements, and will now use a GPU for speedup if IMP is built with CUDA support.- IMP::saxs::Restraint will now report an error if it is given invalid particles; previously they would be silently ignored.- The IMP::mmcif module has been rewritten to work with modern RMF files and IMP::sampcon output.- The `multi_foxs` command line tool now provides the same `--offset` option that `foxs` does.- Model attributes can now use sparse rather than vector storage. This reduces memory usage for attributes that are used by a minority of particles.- Previous releases would erroneously allow a single Python string to be passed to any method that wants a list of strings. This would split the string into a list of single-character strings, which is often not was intended. Such methods now require an explicit list (or tuple) of strings.- The `IMP_NOEXCEPT` pre-C++11 compatibility macro has been removed; use the C++ `noexcept` keyword instead.- The CMake `IMP_PER_CPP_COMPILATION` and `IMP_CUDA` variables can now be set to `ALL` to build all IMP modules one .cpp at a time, or with CUDA support, respectively.- PMI no longer supports old PMI1-style hierarchies. The IMP::pmi::get_is_canonical function, which detects PMI2-style hierarchies, should thus be assumed to always return true, and has been deprecated.- Windows builds now require MS Visual Studio 2017 or later.- IMP::algebra::Rotation3D::get_derivative(), IMP::algebra::Rotation3D::get_gradient(), IMP::algebra::get_gradient_of_composed_with_respect_to_first(), and IMP::algebra::get_gradient_of_composed_with_respect_to_second() have been removed; instead use IMP::algebra::Rotation3D::get_gradient_of_rotated(), IMP::algebra::Rotation3D::get_jacobian_of_rotated(), IMP::algebra::get_jacobian_of_composed_wrt_first(), and IMP::algebra::get_jacobian_of_composed_wrt_second(), respectively.- The IMP::core::IncrementalScoringFunction class has been removed. Use IMP::core::MonteCarlo::set_score_moved or IMP::ScoringFunction::evaluate_moved instead.- The IMP::em2d::CenteredMat and IMP::em2d::Fine2DRegistrationRestraint classes, which are used only internally, have been removed.- The base_utility.h and base_static.h headers have been removed; use utility.h and static.h instead, respectively.- The vector_property_map.h compatibility header has been removed; use Boost's boost/property_map/property_map.hpp header instead.
2.19.0
IMP 2.19.0 release- Most IMP Value and Object types can now be serialized (or pickled in Python). For example, this can be used to save the current state of an IMP::Model or an IMP.pmi.macros.ReplicaExchange object to be restored later or passed to a separate process. Building IMP from source code now requires the cereal library.- Information on most IMP restraints, sampling protocols, input files and analysis/clustering is now stored in the RMF file. Ultimately this can be used to generate an IHM mmCIF file directly from the RMF.- IMP.pmi.restraints.crosslinking.CrossLinkingMassSpectrometryRestraint now requires the `linker` argument, which specifies the chemistry of the linker.- IMP.pmi.macros.ReplicaExchange0 has been removed. Use IMP.pmi.macros.ReplicaExchange instead.- The undocumented IMP::core::ConjugateGradients::set_threshold() method is now deprecated; use set_gradient_threshold() instead.- Rigid body members are now handled correctly by IMP::atom::destroy(), and can be removed from their rigid body with a new IMP::core::RigidBody::remove_member() method.- The IMP::em2d::CenteredMat and IMP::em2d::Fine2DRegistrationRestraint classes have been moved to the IMP::em2d::internal namespace, as they are implementation details.- Windows builds now require MS Visual Studio 2015 or later (for full C++11 support). The following macro for pre-C++11 environments is no longer needed and is deprecated: `IMP_NOEXCEPT`.- The following pre-C++11 compatibility macros and headers are removed: `IMP_NULLPTR`, `IMP_NULLPTR_T`, `IMP_OVERRIDE`, `IMP_FINAL`, `IMP_UNIQUE_PTR`, `IMP_FOREACH`, `IMP/nullptr.h`, and `IMP/nullptr_macros.h`.- The deprecated IMP::em::emreal type has been removed.- The deprecated IMP::isd::Weight::get_nstates_key() method has been removed.- The deprecated IMP.npc.npc_restraints module has been removed. Use IMP.pmi.restraints.npc or IMP.pmi1.restraints.npc instead.- The deprecated IMP::core::{Singleton,Pair,Triplet,Quad}Constraint constructors that take Particle/ParticlePair/ParticleTriplet/ParticleQuad have been removed. Use the constructors that take a Model and ParticleIndex (etc.) instead.
2.18.0
IMP 2.18.0 release- The Windows .exe installer now supports Python 3.11.- The IMP::em::emreal type is deprecated; use plain `double` instead.- Most IMP Value types (e.g. IMP::algebra::Vector3D) now support serialization, so can be written to or read from a stream in C++ using the Boost.Serialization library, or pickled in Python.- IMP::atom::CHARMMTopology::add_sequence() now allows for full residue names to be specified, to simplify construction of structures of DNA or RNA.- IMP::atom::CHARMMTopology::create_hierarchy() now supports construction of more than 26 chains, assigning them multi-character chain IDs.- Objects that contain lists of other objects now provide a list-like object in Python to simplify management of the list (e.g. IMP::RestraintSet now contains a `restraints` member in Python which is a list of the IMP::Restraint objects in the set).- The NPC-specific PMI restraints in the IMP.npc.npc_restraints module (which only work with PMI1) are now provided in IMP.pmi.restraints.npc (for current PMI) and IMP.pmi1.restraints.npc (for the old PMI1). IMP.npc.npc_restraints itself is deprecated.- IMP.pmi.macros.ReplicaExchange0 has been renamed to IMP.pmi.macros.ReplicaExchange; the old name is still present but deprecated.- The obsolete `sample_objects` and `crosslink_restraints` arguments to IMP.pmi.macros.ReplicaExchange have been removed.- Passing anything other than Monte Carlo movers in the `monte_carlo_sample_objects` argument to IMP.pmi.macros.ReplicaExchange is now deprecated.- The IMP.sampcon module can now provide inputs for the PrISM method, and has improved support for symmetry groups (requires pyRMSD 4.3.2 or later).- Bugfix: move-aware scoring (see IMP::core::MonteCarlo::set_score_moved()) should now work correctly with nested RestraintSets and/or non-default weights.- Bugfix: IMP::em::DensityMap::add() now invalidates any previously-calculated RMS, so that followup calculations (e.g. of cross correlation) now work correctly.- Bugfix: all C++ code now uses the same IMP random number generator, so that resetting the seed now yields a consistent sequence of random numbers.
2.17.0
IMP 2.17.0 release- IMP::atom::Selection no longer checks that the passed hierarchies are valid, as this can be quite computationally expensive. If in doubt, call IMP::atom::Hierarchy::get_is_valid() on each one first.- The IMP::em::CoarseCC class has been removed. Use similarly-named free functions instead to calculate coarse cross correlation.- The Windows .exe installer no longer supports Python 2 (it works with Python 3.6 through 3.10).- Binary packages are now provided for Ubuntu 22.04 LTS, Jammy Jellyfish and RedHat Enterprise Linux 9 (and variants, such as Rocky or Alma).- IMP now requires a C++11 compiler and SWIG 3 (or later) to build. Most recent compilers should support C++11, such as gcc, clang or MS Visual Studio 2012 or later. Various IMP macro and header workarounds for pre-C++11 environments are thus no longer needed and are deprecated: `IMP_NULLPTR`, `IMP_NULLPTR_T`, `IMP_OVERRIDE`, `IMP_FINAL`, `IMP_UNIQUE_PTR`, `IMP_FOREACH`, `IMP/nullptr.h`, and `IMP/nullptr_macros.h`.- The IMP::core::IncrementalScoringFunction class is now deprecated. Use IMP::core::MonteCarlo::set_score_moved or IMP::ScoringFunction::evaluate_moved instead.- A new application of IMP is now available: - [Integrative modeling of nanobody binding modes to the SARS-CoV-2 Spike protein](https://integrativemodeling.org/systems/nbspike)
2.16.0
IMP 2.16.0 release- OpenCubicSpline now throws a ValueException for out-of-range values, to be consistent with ClosedCubicSpline (previously it threw ModelException).- SAXS tools (such as `compute_rg`, `foxs`) can now read input structures in mmCIF format.- Most IMP functions that return arrays of integer or floating point values, or lists of ParticleIndexes, now return NumPy arrays if IMP is built with NumPy. Code that adds lists or searches for particle pairs in a list may need to be modified as NumPy arrays are slightly different from Python lists.- IMP::pmi now handles MSE (selenomethionine) residues in input structures; structure is read for such residues and they are considered equivalent to regular MET in the FASTA sequence.- The Windows .exe installer now supports Python 3.10.- Scoring function evaluation can now be done more efficiently in some cases by using information on which particles have moved since the last evaluation. This behavior can be turned on (by default it is off) using IMP::core::MonteCarlo::set_score_moved() or by setting the `score_moved` parameter to IMP::pmi::macros::ReplicaExchange0.- The orientation-dependent scoring function IMP::score_functor::OrientedSoap now caches the system topology and so should be roughly twice as fast in typical applications.- IMP::pmi::macros::BuildSystem::add_state() now assigns multi-character chain IDs by default, so that it is no longer limited to creating 62 molecules.- IMP::pmi::output::Output now reports a ValueError if asked to write out a PDB file containing multi-character chain IDs, rather than silently truncating them.- The unused IMP::piecewise_linear_distribution class has been removed. Use boost::piecewise_linear_distribution instead.- The deprecated methods IMP::{Singleton,Pair,Triplet,Quad}Predicate::get_value() have been removed. Use the get_value_index() methods instead.- The deprecated methods IMP::SingletonContainer::get_particles(), IMP::PairContainer::get_particle_pairs(), IMP::TripletContainer::get_particle_triplets(), and IMP::QuadContainer::get_particle_quads() have been removed. Use the get_contents() method instead.- The deprecated IMP::isd::Weight::get_number_of_states() method has been removed. Use get_number_of_weights() instead.- We no longer provide packages for Ubuntu 16.04 LTS (Xenial Xerus), as it reached end of life in April 2021.
2.15.0
IMP 2.15.0 release- The [Homebrew](https://brew.sh/) Mac packages now support Apple Silicon.- We no longer provide RPMs for CentOS 6, since it has reached end of life.- Python 2.6 is no longer supported; Python 2.7 is the oldest version of Python that works with IMP (although Python 3 is recommended).- IMP now requires Boost 1.53 or later; support for Boost 1.41 has been dropped.- IMP::em::FitRestraint::cast() has been removed. Use `get_from()` instead.- The deprecated methods IMP::SingletonContainer::get_particle(), IMP::PairContainer::get_particle_pair(), IMP::TripletContainer::get_particle_triplet(), and IMP::QuadContainer::get_particle_quad() have been removed. Use the get_contents() method instead.- The IMP::em::CoarseCC class is deprecated. Use similarly-named free functions instead to calculate coarse cross correlation.- A new numerically stable grid-based Bayesian scoring function, IMP::em::FitRestraintBayesEM3D, has been added for cryo-EM data. Note that this is still in development.- The IMP::pmi::mmcif::ProtocolOutput constructor no longer takes a file handle argument, and the IMP::pmi::mmcif::ProtocolOutput::flush() method has been removed. Instead, use the python-ihm library to output mmCIF (or BinaryCIF).- IMP can now be built using external (system) copies of the RMF and/or python-ihm libraries, instead of those bundled with IMP itself; use the `IMP_USE_SYSTEM_RMF` or `IMP_USE_SYSTEM_IHM` CMake variables.- MRC file handling has been extended; MRC files not aligned with the xyz axes (mapc/mapr/maps not 1,2,3) are now automatically transposed rather than raising an exception, and the origin is now set from the nxstart/nystart/nzstart fields if present and the file origin is zero.- New applications of IMP are now available: - [Integrative model of the γTuSC-Spc110 complex](https://salilab.org/gtuscSpc110) - [Integrative structure of the Smc5/6-Nse2/5/6 complex](https://integrativemodeling.org/systems/smc56_nse256)- IMP's copies of the old Template Numerical Toolkit (TNT) and JAMA/C++ library have been removed from IMP::algebra::internal. Use equivalent functionality in the Eigen library instead.
PreviousNext