= External Libraries = EMAN2 has lots of dependent libraries. To compile EMAN2 from source, you need install development packages for these external libraries. Depends on your Linux distribution, you can either install them by yum(Fedora, CentOS, RedHat), urpmi(Mandriva), yast(SuSE), synaptic/apt-get(Ubuntu). Or compile them form source code. * For linux, the easiest approach for most distributions is to simply install the dependencies using your package manager. If you are using a RedHat derivative, you will need the -devel packages as well as the library packages * For the mac, if you use one of the open-source package managers for the Mac, you can probably do something similar, but note that EMAN2 DOES work very well with the system-provided Python under snow-leopard, and the package managers tend to force you to use their own compilation of things like Python. On my Mac (Steve) I built the dependencies from source and installed under /usr/local. * There is a collection of dependencies at [[http://ncmi.bcm.edu/ncmi/software/counter_222/software_91/index_html|link]]. These may not all be the most recent version but they are versions we have compiled from source and proved that they work with EMAN2. In virtually all cases, newer versions will also be fine. Here is a current list of dependencies (all can be obtained for free): ||OpenGL||-||Required||You MUST have some version of OpenGL installed. On most modern machines this will already be installed, and hardware accelerated. Under Linux, make SURE you are using the appropriate proprietary driver|| ||GLUT||-||Required||Standard OpenGL utility library, usually already installed. FreeGLUT or MesaGLUT are acceptable alternative|| ||GSL||[[http://www.gnu.org/software/gsl/]]||Required||-|| ||Qt4||[[ftp://ftp.qt.nokia.com/qt/source/]]||Required||Not required to compile, but required to use. Much better to just use a package manager to get it. If compiling yourself, use recent qt-everywhere-opensource-src.|| ||Python2.x||[[http://www.python.org]]||Required||Not required to compile, but required to use. Use 2.5.x or 2.6.x. 3.x not supported at this time|| ||NumPy||[[http://numpy.scipy.org/]]||Required||This is required to compile EMAN2, and often you need to locate the include file yourself in ccmake|| ||PyQt4||[[http://www.riverbankcomputing.com]]||Required||Make sure the Qt you download is compatible with the PyQt you download. Building PyQt also requires Sip|| ||matplotlib||[[http://matplotlib.sourceforge.net]]||Required||Not required to compile, but required to use. Used for all 2-D plotting|| ||ipython||[[http://ipython.org/]]||Required||Not required to compile, but required for interactive shell e2.py|| ||PyOpenGL||[[http://pyopengl.sourceforge.net/]]||Required||Not required to compile, but required for 3D image display of GUI|| ||BerkelyDB||[[http://www.oracle.com/technology/products/berkeley-db/index.html]]||Required||Not required to compile, but required to use. Basis for most data storage during processing. Embedded, NOT relational database. Free|| ||pybsddb/bsddb3||[[http://www.jcea.es/programacion/pybsddb.htm]]||Required||Not required to compile, but required to use. A version of this, called bsddb comes with Python. Do NOT use that one (generally out of date). This can be installed with easy_install in most cases|| ||Boost||[[http://www.boost.org]]||Required||suggest 1.38 or higher|| ||FFTW3||[[http://www.fftw.org]]||Recommended||If you need to use EMAN2 under the optional BSD license, you will need to use the built-in FFT instead of FFTW. Otherwise you definitely want this.|| ||HDF5||[[http://www.hdfgroup.org]]||Recommended||While not strictly required to compile, this is the recommended data format for many purposes. Install it.|| ||FTGL||[[http://sourceforge.net/projects/ftgl]]||Optional||You may lack some text display in image/volume display GUI widgets without this|| ||libjpeg||[[http://sourceforge.net/projects/libjpeg/]]||Optional||If you have this, you will be able to convert images to this format for presentations, etc. NOT useful as a cryoEM data storage format|| ||libpng||[[http://www.libpng.org/pub/png/libpng.html]]||Optional||This will permit you to read/write PNG format images. A better choice than JPEG for scientific data presentation in most cases (lossless)|| ||libtiff||[[http://www.libtiff.org/]]||Optional||Support reading/writing 8/16 bit TIFFs. Almost a requirement, as most CCD cameras store in this format.|| ||CUDA||[[http://www.nvidia.com]]||Optional||Experimental support for GPU processing is available as a compile-time option.||