IMP is available in a variety of different ways. If you are just planning on using existing IMP code and run on a standard platform, you may be able to install a pre-built binary. See the download page.
If you are planning on contributing to IMP, you should download and build the source. See the next section for more information.
If you are building IMP from source, read the following sections, otherwise skip to the last one.
IMP from source is straightforward if the prerequisites are already installed. First, obtain the source code tarball from the download page. code theretar -xvzf imp-1.0.tar.gz
imp-1.0 containing all the source.scons prefix=place_to_install_imp all
IMP by doing scons prefix=place_to_install_imp install
(If you are familiar with Subversion, you can also use an SVN client to check out the same code from our Subversion repository at http://svn.salilab.org/imp/tags/release-1.0/)
If there are build errors
scons -h) to figure out any more arguments you need to pass to scons in order to make sure it finds needed external libraries.
If you are likely to be building IMP repeatedly, it can be useful to put the arguments to scons into a config file. This is a file called config.py located in the IMP directory (the one containing the SConscript file). For example one of ours looks like
import os modeller=os.environ['MODINSTALLSVN'] prefix=os.environ['HOME']+"/fs" path='/opt/local/bin' includepath='/opt/local/include:'+os.environ['HOME']+"/fs/include" libpath=os.environ['HOME']+"/fs/lib" build='debug' deprecated=False
IMP, it is necessary to check it out from our IMP repository using an Subversion client: svn co http://svn.salilab.org/imp/trunk imp
imp containing all the source at the SVN trunk. We recommend you use use this. Since this is the place that people commit changes to, one should consult the nightly build logs before updating to make sure things are working. In addition, consult the ChangeLog file to see what has changed since your last update.
When developing code for IMP, it is useful to be able to run it without installing everything. To aid this, we provide a script located at tools/imppy.sh which runs a command after setting up the environment so that dynamically linked libraries and python modules can be found. For example, to run Python such that it can use IMP do
./tools/imppy.sh python
In addition, we recommend doing out of source builds (building IMP in a directory other than the one containing the source files). Doing this allows several different versions of IMP to be built using the same source files. For example, an optimized one (using build='fast') and a debug one (build='debug').
To set this up
svn co http://svn.salilab.org/imp/trunk src
mkdir imp-debug
src/tools/setup-out-of-source-build imp-debug
imp-debug/config.py as desiredimp-debug cd imp-debug
scons -j 2
You can update your copy of IMP, by typing
svn update
IMP, you will need:
If you wish to build the Python interfaces, you will also need:
If you install headers, libraries or tools anywhere other than the standard locations (i.e. /usr/lib and friends) then you need to tell SCons where to find them. This is done using the `includepath`, `libpath`, and `path` options (paths are colon-separated). These can either be passed to scons as command line arguments or put in the config.py file. For example
scons includepath=/usr/local/include:/opt/local/include libpath=/usr/local/lib path=/usr/local/bin
IMP to search to headers and libraries in the provided locations in addition to the standard ones.Notes on how to work around various platform issues can be found at the Build Notes page in the wiki.
/opt/local/bin to your path (either by modifying your shell's config file or by making an environment.plist file-see the FAQ) and then do sudo port install boost scons swig-python
Do not install any C++ headers in `/usr/include` on your Mac as the compiler assumes any such headers are C headers.
If you want to use IMP with MODELLER, you should use version 9v7 or later and use the following argument to scons
scons modeller=path/to/modeller
Certain geometric computations will be faster, better or more reliable if CGAL is installed.
IMP within Python and C++.Everyone should read the Introduction and developers should then move on to the Developer guide.