IMP
2.3.1
The Integrative Modeling Platform
|
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.
Building IMP from source is straightforward if the prerequisites are already installed.
git clone git://github.com/salilab/imp.git cd imp ./setup_git.py mkdir ../imp_release cd ../imp_release cmake ../imp -DCMAKE_BUILD_TYPE=Release make -j 8
See Building IMP with CMake for more information.
In order to obtain and compile IMP, you will need:
Mac users must first install Xcode (previously known as Developer Tools) which is not installed by default with OS X, but is available from the App store (or from the Mac OS install DVD for old versions of Mac OS). They will also need the Xcode command line tools (install by going to Xcode Preferences, then Downloads, then Components, and select "Command Line Tools").
Then Mac users should use one of the available collections of Unix tools, either
Homebrew (recommended) Once you installed homebrew
do
brew tap homebrew/science
brew tap salilab/salilab
brew install boost gmp google-perftools cgal graphviz gsl cmake doxygen hdf5 swig fftw mpfr libtau
to install everything IMP finds useful (or that you will want for installing various useful Python libs that IMP finds useful). On older Macs, you may also need to brew install git
if you want to use git (newer Macs include git).
Macports If you use MacPorts, you must add /opt/local/bin
to your path (either by modifying your shell's config file or by making an environment.plist
file) and then do
sudo port install boost cmake swig-python
to install the needed libraries and tools. When installing HDF5 with MacPorts, be sure to install hdf5-18
(version 1.8), rather than the older hdf5
(version 1.6.9).
These versions of Mac OS X include a 'swig' binary, but it is too old to use with IMP. You need to make sure that the newer version of swig
is found first in your PATH
.
We recommend Linux or Mac for developing with IMP, as obtaining the prerequisites on Windows is much more involved. However, we do test IMP on Windows, built with the Microsoft Visual Studio compilers (we use Visual Studio Express 2010 SP1 for 32-bit Windows, and VS Express 2012 for 64-bit). One complication is that different packages are compiled with different versions of Visual Studio, and mixing the different runtimes (msvc*.dll) can cause odd behavior; therefore, we recommend building most of the dependencies from source code using the same version of Visual Studio that you're going to use to build IMP. The basic procedure is as follows:
C:\Program Files\GnuWin32
. The sources, however, must be installed in a path that doesn't contain spaces (otherwise the Boost build will fail). We chose C:\zlib
.C:\Program Files\boost_1_53_0
), thenset INCLUDE=C:\Program Files\GnuWin32\include
bjam link=shared runtime-link=shared -sNO_ZLIB=0 -sZLIB_SOURCE=C:\zlib\1.2.3\zlib-1.2.3
cmake.exe -G "Visual Studio 10" -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=ON -DHDF5_BUILD_HL_LIB:BOOL=ON -DZLIB_INCLUDE_DIR="C:\\Program Files\\GnuWin32\\include" -DZLIB_LIBRARY="C:\\Program Files\\GnuWin32\\lib\\zlib.lib" -DBUILD_SHARED_LIBS:BOOL=ON ..
libfftw3-3.lib
to fftw3.lib
to help cmake find itsrc\gsl\1.8\gsl-1.8\VC8
subdirectorylibgsl.dll
and libgslcblas.dll
to a suitable location (we used C:\Program Files\gsl-1.8\lib
)libTAU.lib
to TAU.lib
to help cmake find it.opencv_*.lib
to a similar file without the version extension (e.g. copy opencv_ml244.lib
to opencv_ml.lib
) to help cmake find itSet up IMP by running something similar to
cmake <imp_source_directory> -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="/DBOOST_ALL_DYN_LINK /EHsc /D_HDF5USEDLL_ /DWIN32 /DGSL_DLL" -G "NMake Makefiles"
/bigobj
to CMAKE_CXX_CFLAGS
.All of the prerequisites should be available as pre-built packages for your Linux distribution of choice.
IMP can make use of a variety of external tools to provide more or better functionality.
You are now ready to use IMP within Python and C++.
Everyone should read the introduction and developers should then move on to the Developer Guide.