|
IMP
2.0.0
The Integrative Modeling Platform
|
README.md, given the github id of the person to whome issues should be assigned.setup_git.py support the --module flag which will set up git hooks and things for a git repository that contains a module.dependencies.py and the module docs in a README.md, both in the main module directory.IMP-wide support for progress bars was added with the IMP::base::set_progress_display() function and helpers. These are only displayed when the IMP::base::get_log_level() is IMP::base::PROGRESS. IMP, it is way better.release has been reduced to IMP::USAGE as that speeds things up a bit..cpp file linked with any .cpp files contained in a subdirectory called lib. Nothing needs to be put into the SConscript file.repository argument. This was always required for out of source builds, which is what one should be doing, but is now required for in source builds to, so as to make accidentally poluting your source with an in-source build harder. Use repository="." in that case.RMF/HDF5, the python functionality into RMF_HDF5 and the code into namespace RMF::HDF5 and all HDF5 or hdf5 mentions in the class and function names were removed.IMP-wide command line flags have been added to IMP::base in the base/flags.h file. They provide a simple command line parsing interface that can be used from C++ and python. In addition, various functionality in IMP is automatically exposed on the commend line when those functions are used. For example, one can control logging, checks or profiling. See IMP/base/flags.h for (some) more info.overview.dox in the module doc folder. Modules in IMP svn have been updated. For external modules, you can just move a overview.dox from that was previously generated into your doc folder and (eventually) remove the lines from your doc/SConscript. This makes it easier to use the full range of doxygen markup, as well as removes the need to escape doxygen markup for python..py and .readme files (putting \#\# in front of each line of the .readme) and adding a ## \\example module/examplename.py line at the begginning. You can use ./tools/updaters/update_examples.py modules/mymodule to update a module that was not already updated.include. If so, just \#if 0 them out, or move them some place nicer.modules, which must have an SConscript file._do_get_outputs(self, m, particle_indexes) which should probably just return [m.get_particle(i) for in in particle_indexes] to return all the passed particles.IMP more python friendly, macros IMP_PROTECTED_METHOD(), IMP_PROTECTED_CONSTRUCTOR() were added that properly expose such methods to python. The standards checks now complain if protected is used an a class in the API.module/bin are now put in build/module_bin/module. This removes a recurring source of errors in the build script due to the origin and destination directory have the same name in scons.module/benchmark and build to build/benchmark/module to remove a recurring source of errors.bin whose name starts with benchmark_) that use the IMP_BENCHMARK() macro have command line flags to turn on and cpu and memory profiling.pyext directories changed. They should now be IMP_modulename.name.i instead of IMP_modulename_name.i. This is to better support underscores in names. IMP headers include which other heads have been substantially simplified. This may result in compilation errors for code outside of svn that depended on IMP headers including other headers. In general, you want to explicitly include the header defining each thing you use.IMP is now exposed at IMP::base::Vector and what it does it documented.IMP are now implemented in IMP::ScoringFunction objects. All restraint evaluation is handled by them and they can cache various useful information to aid in accelerating restraint evaluation. Backward compatibility interfaces have mostly been provided, please complain if some important interface went away. This has greatly simplified the code as well as fixed various bugs in various types of restraint evaluation (particularly in the handling of maximum scores on IMP::Restraint and IMP::RestraintSet objects.tools/show-changes has been added that shows the changes in the history log since you last updated.tools/make-source has been added that adds a source/header pair to a modulepretty and color were added (defaulting to True). When they are true, build commands are mostly suppressed and a much briefer description of what is being done is printed out (in color). Note that color mode and compilation in emacs don't get along too well.matplotlib.base qualifier (eg base::TextInput) so that swig is happy.kernel to modules/kernel. This is unlikely to effect anyone.python argument to scons.nullptr. You should prefer that to NULL in IMP code that you want to run cross platform.IMP now supports usage of restraints without adding them to the IMP::Model scoring function. To do this, do IMP::Restraint::set_model(), passing the model. The restraint can then be evaluated.IMP. The reason for doing this was that the code was complicated, created overhead even when incremental support was not used and was not commonly used. Further, decomposing the restraints and using the dependency graph yields similar results and is more transparent.dot and then open the pdf.IMP graphs. Unfortunately, they still pale compared to graphviz.IMP.IMP modules are now built by first combining all the .cpp files into one, and then building that file. This greatly accelerates building of a module from scratch as build time is dominated by parsing headers. This does change the semantics of .cpp files as they see headers included by and functions declared by an arbitrary subset of other .cpp files. For now they are still required to be able to be compiled separately. To get the only behavior back either globally or on a per-module basis, see the percppcompilation parameter to scons.IMP build. See the installation guide.This typedef and makes them more consistent with the other macros in IMP.IMP svn in addition to applications and biological systems. To do so, create a directory with your module in a subdir containing links to the IMP SConscript file and scons_tools and a config.py that has information needed to run IMP (eg an appropriate pythonpath, ldpath).IMP.new in C++ code. It also means that one is no longer prohibited from storing them (not that there is much use in doing that).IMP naming scheme as we don't expect they were used outside of the IMP source.IMP used on a biological systemIMP.get_)get_ as a prefix and/or add a _3d suffix when they did not take any arguments._3d so we can add 2D versions at some point)".transform(" worked in the IMP code base.IMP body, all instances of the string Selector were for PDBSelectors and so sed was safe to use.IMP svn which use the IMP_*_SCORE macros now have to implement the get_is_changed() function outside of the class declaration and scores which use the IMP_SIMPLE_*_SCORE now don't have to implement the functions to get interactions and used particles.sed should manage updates just fine), but the internal implementation is completely new, so pay attention.IMP now has a text i/o layer consisting of IMP::TextInput and IMP::TextOutput. These classes are convertible to C++ streams and implicitly constructable from both streams and file paths. As a result, functions that take them will work when called with a string for a file path, a Python file or a C++ stream.IMP now makes use of Boost.Filesystem to manipulate paths. Things may not work well on systems where boost libs are not available which does not support posix paths. But libless boost installs generally don't exist outside of our test systems.IMP exceptions can be caught in Python using "except IMP.Exception". For convenience, the IMP::IOException, IMP::ValueException and IMP::IndexException classes in Python also derive from the similarly-named standard Python classes (IOError, ValueError and IndexError respectively)..i files have been renamed to start with IMP_ to help make dependency tracking easier.static=True) build both the static and dynamic libraries and just static executablesprofile build target has been removed as static=True does the important bit of what is needed. Just do linkflags=['-pg'] to add the needed link flag for gprof.bin/imppy.sh no longer works, as was previously warned. Use tools/imppy.sh instead. The bin directory will go away eventually, for now the script just tells you to use the tools version.print or str to not return something useful in Python for any IMP object.IMP was built from.tools/update-decorators is provided which updates the names in all code in subdirectories of the current directory. Please backup things first.scons_tools and SConstruct from the source directory in the build directory and then add the lineconfig.py in the build directory. Then running scons in the build directory will put generated files there. This allows you to make both a release and fast build off of the same set of sources. Proper docs will be added soon.IMP-specific doxygen commands have been documented.DecoratorName()) rather than throwing an exception. This might make it actually useful.IMP.map in Python and for_each in C++. See IMP::SingletonFunctor and IMP::PairFunctor for more information.compose() for transformation is now a free function so compose(rotation, vector) will work via promotions.
IMP standards (and more likely to do what their names/comments suggest). See IMP::algebra::Sphere3D, IMP::algebra::Cylinder3D, IMP::algebra::Segment3D, IMP::algebra::Plane3D etc.