[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[IMP-dev] This week (and last week) in IMP



Lots of nice improvements recently. 
  • IMP::ScoreStates are further hidden. Namely, IMP::core::RigidBody constructures the needed score states internally, doing away with the need for the create functions (which have been done away with). In addition there are new decorators IMP::core::Cover and IMP::core::Centroid which manage their respective score states, further doing away with more create methods. The hierarchy-based create mehtod for rigid bodies has been moved to the atom module and is called IMP::atom::rigid_body_setup_hierarchy().
  • IMP::em::read_map() will figure out the file type to use automatically from the extension. Other such methods should follow suite.
  • A class IMP::core::StructureSet has been added to provide a convenient way to manage solutions of optimization runs.
  • All containers now keep track of what they looked like on the previous time step.
  • The set of exceptions has been simplified to go along with simplification of the checks. We now have IMP::InternalException and IMP::UsageException which are thrown by the respective checks (and the former is thrown by IMP_FAILURE()). When you want to to pass an exception back to python use one ofIMP::ValueException or IMP::IndexException or IMP::IOException. There is also a new macro, IMP_THROW() to be used when you want to throw an exception with a nice error message. Please look at code you have worked on and make sure that the exceptions make sense given the new clarifications.
  • The set of functions needed to get meta information about IMP::Restraint and IMP::ScoreState objects has hopefully stabilized. Sorry about the thrashing. If you have restraints or score states not in SVN, see the corresponding IMP_RESTRAINT() type macros, the IMP::Interaction class and base classes for what exactly you need to implement.