IMP
2.3.1
The Integrative Modeling Platform
|
.py
extension has been removed from all Python applications, so that they are consistent with the C++ applications.python26
binary (part of EPEL) rather than the system default Python.--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.--help_advanced
to show the advanced ones..rmf3
).--statistics=filename
to the command line or use the IMP::base::show_timings() function to view a summary of where IMP has spent time._
on the method name, if you get Swig director pure virtual method called IMP::kernel::PairScore::do_get_inputs
messages.cmake
files are no longer stored in the repository. Instead tools/build/setup_cmake.py
is run after checkouts and other git events that change the repository tree (assuming you have run setup_git.py
).doxygen
has been refactored. It is now done on a per-module basis, via targets like IMP.core-doc
. The main advantage is that changes to the doc for a module can be tested comparatively quickly, just by building that module's docs. On the down side, docs are no longer quite so heavily interconnected, so dependencies only work to things that the module actually depends on.git-flow
. It handles things like README.md
files when you start and finish feature branches and provides a tool to nicely update IMP and display the change log. The main commands of use are git imp feature start <feature_name>
, git imp feature finish <feature_name>
, and git imp update
. You may want to remove the git-flow
lines from your .git/config
file as you may accidentally type git flow
instead of git imp
. You need to run setup_git.py
to set things up.setup_git.py
to make sure submodule stuff is initialized.README.md
, giving the github id of the person to whom issues should be assigned.setup_git.py
supports 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.--test
argument when IMP is built with internal checks. Expensive examples should check this flag and shorten what they do in order to try to test all their code without taking too long.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 polluting 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 mentions of HDF5
or hdf5
in the class and function names were removed.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 comment them out, or move them some place nicer.modules
, which must have an description.py
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.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. svn
that depended on IMP headers including other headers. In general, you want to explicitly include the header defining each thing you use.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.dot
and then open the pdf.This
typedef and makes them more consistent with the other macros in IMP.pythonpath
, ldpath
).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).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.sed
should manage updates just fine), but the internal implementation is completely new, so pay attention.
.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.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.DecoratorName()
) rather than throwing an exception. This might make it actually useful.map
in Python and for_each
in C++. See IMP::SingletonFunctor and IMP::PairFunctor for more information.