Binary Installation Instructions

Mac OS X

  1. Download eman2.X.MacOS.sh
  2. Run:
    bash <path to EMAN2 installer>
    • You will be prompted for a location to install EMAN2. Note that you cannot rename this folder after installation! You must reinstall if you wish to move the installation
    • You will be asked if you want to add  export PATH=...  to your .profile file.

    • If you use a different shell, such as tcsh or zsh, you may need to edit the appropriate file yourself.
    • You should not normally need to run the OpenMPI reinstallation scripts. The copy of OpenMPI/Pydusa now distributed with the binaries should work on Macs in most cases.
    • Don't forget to restart your shell if you changed the .profile or other scripts
  3. Run these programs to see if the install worked:
    e2version.py
    e2speedtest.py
    e2display.py
    e2proc2d.py :64:64:1 test.hdf --process mask.sharp:outer_radius=24
  4. If you have problems with any of these programs, the first thing to check is whether you have PYTHONPATH, LD_LIBRARY_PATH or DYLD_LIBRARY_PATH set in your shell. While used in previous versions of EMAN, these variables are no longer necessary. If they are set to make some other software package work, but they interfere with the programs above, you will have to unset them, and set them only when you need the other software.

Linux Workstations (not clusters)

  1. There are two linux binaries available: eman2.X.centos6.sh and eman2.X.centos7.sh
    • See release specific notes below. If you are using a distribution other than CentOS, which version you need will depend on how old your OS is. We suggest starting with centos7, and going back to centos6 if it fails.
  2. Run:
    bash <path to EMAN2 installer>
    • You will be prompted for a location to install EMAN2. Note that you cannot rename this folder after installation! You must reinstall if you wish to move the installation
    • You will be asked if you want to add  export PATH=...  to your .profile file.

    • If you use a different shell, such as tcsh or zsh, you may need to edit the appropriate file yourself.
    • You should not normally need to run the OpenMPI reinstallation scripts. The copy of OpenMPI/Pydusa now distributed with the binaries should work on Linux workstations in most cases.
    • Don't forget to restart your shell if you changed the .profile or other scripts
  3. Run these programs to see if the install worked:
    e2version.py
    e2speedtest.py
    e2display.py
    e2proc2d.py :64:64:1 test.hdf --process mask.sharp:outer_radius=24
    e2display.py test.hdf
  4. If you have problems with any of these programs, the first thing to check is whether you have PYTHONPATH or LD_LIBRARY_PATH set in your shell. While used in previous versions of EMAN, these variables are no longer used, and in some cases may interfere with Anaconda. If they have been set to make some other software package work, but they interfere with the programs above, you will have to unset them, and set them only when you need the other software.
  5. Specifically, if only the last command fails and you are using a Nvidia graphic card, it is likely caused by a graphic card driver incompatibility. Updating the Nvidia driver usually fix the problem. On recent Ubuntu systems, running apt-get install nvidia-current works. On other systems, you may need to follow the guide from Nvidia.

release specific notes

Linux Clusters

Use system OpenMPI and NumPy v1.8

Most Linux clusters will have at least one OpenMPI installation on the cluster. In some cases there may be more than one, and you may have to select a "module" to get the correct one. It is also critical that OpenMPI be compiled with the --disable-dlopen option. If you don't understand this statement, please consult with your cluster sysadmin.

  1. Remove the OpenMPI we provided:
    bash <path to EMAN2 directory>/utils/uninstall_openmpi.sh
  2. Make sure that the correct OpenMPI for your cluster is in your path. You should be able to run 'mpicc' and get a message like 'gcc: no input files'
  3. Rebuild Pydusa using the system installed OpenMPI.
    bash <path to EMAN2 directory>/utils/build_pydusa_numpy.sh 1.8 --no-test
    • Warning: If you see an error after this process like:

      Can't build /home/stevel/EMAN2/recipes/fftw-mpi due to environment creation error:
      Downloaded bytes did not match Content-Length
        url: http://www.fftw.org/fftw-3.3.6-pl1.tar.gz
        target_path: /home/stevel/EMAN2/conda-bld/src_cache/fftw-3.3.6.tar.gz
        Content-Length: 4179807
        downloaded bytes: 208916

      this means the fftw download failed. You will need to re-run this step, but first, delete the failed download :  rm EMAN2/conda-bld/src_cache/fftw-3.3.6.tar.gz 

  4. Finally, install the compiled Pydusa:

bash <path to EMAN2 directory>/utils/install_pydusa_numpy.sh 1.8

Rebuild your own OpenMPI, use NumPy v1.8

This option insures that --disable-dlopen is used when compiling OpenMPI, but may lack some system-specific optimizations provided by your sysadmin.

  1. Remove the OpenMPI we provided:
    bash <path to EMAN2 directory>/utils/uninstall_openmpi.sh
  2. Rebuild OpenMPI.
    bash <path to EMAN2 directory>/utils/build_and_install_openmpi.sh
  3. Rebuild and install Pydusa using the system installed OpenMPI:
    bash <path to EMAN2 directory>/utils/build_pydusa_numpy.sh 1.8
    bash <path to EMAN2 directory>/utils/install_pydusa_numpy.sh 1.8

Build against a version of NumPy other than the bundled version (NOT RECOMMENDED)

OpenMPI doesn't depend on NumPy, so changing to a different NumPy version doesn't require OpenMPI to be rebuilt. However, Pydusa and EMAN2 need to be rebuilt.

  1. Rebuild and install Pydusa and EMAN2 against the desired NumPy version.

    bash <path to EMAN2 directory>/utils/build_pydusa_numpy.sh   <list of NumPy version(s)>
    bash <path to EMAN2 directory>/utils/install_pydusa_numpy.sh <NumPy version>
    bash <path to EMAN2 directory>/utils/build_eman_numpy.sh     <list of NumPy version(s)>
    bash <path to EMAN2 directory>/utils/install_eman_numpy.sh   <NumPy version>

Windows

We are finally able to provide 64 bit Windows binaries for EMAN2. Notes:

Native Win7/10 64 bit

  1. Download eman2.X.win64.exe
  2. Launch the installer, and answer any security questions you are prompted for.
  3. In most cases you will want to install: Python Launcher.

Windows 10 - Linux/Bash shell

Windows 10 includes an embeded Ubuntu Linux environment. It is possible to run the EMAN2 Linux binaries within this environment, but you will need to install some additional dependencies to do so.

  1. Install "Bash on Windows 10", https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/.

  2. When prompted to set a user name, enter root. This should give you an account without a password.

Install OpenGL and X Server, set environment variables

  1. Install OpenGL.
    sudo apt-get update
    sudo apt-get install libsm-dev libxrender-dev build-essential libgl1-mesa-dev mesa-utils mesa-common-dev
    sudo apt-get autoremove
  2. Install Xming X Server for Windows.

  3. Set environment variables.
    export DISPLAY=:0
    glxinfo | grep OpenGL
    export KMP_AFFINITY=disabled # per https://github.com/Microsoft/BashOnWindows/issues/785#issuecomment-238079769
  4. Download and install eman2.2.linux64.centos7.sh.

  5. Start X Server before running eman2 programs
  6. Run these programs to see if the install worked:
    e2version.py
    e2speedtest.py
    e2display.py
    e2proc2d.py :64:64:1 test.hdf --process mask.sharp:outer_radius=24

Use GPU

Currently, GPU is only used for neural networks in particle picking and tomogram annotation. It provides a ~10 fold speed up in neural network training. The old CUDA support (which may still work) is no longer maintained and is not available in the release. Current GPU routines are based on Theano and detailed documentation can be found on their website: http://deeplearning.net/software/theano/tutorial/using_gpu.html

Note that currently we are still use the old GPU backend for compatibility (i.e. NOT the libgpuarray backend), so be sure to use device=gpu in your .theanorc

On a freshly installed Ubuntu 16.10, an easy way to install the GPU support is to run

apt-get install nvidia-cuda-toolkit

Then try running any neural network related program or simply run e2.py then import theano. If you see print out message like Using gpu device ******* (CNMeM is disabled, cuDNN ****), it means the GPU is now being used. For other system (or if the guide above does not work), you may follow the instruction from Theano and Nvidia. Keep in mind that CUDA installation can be a painful process on some computers especially when some of the hardware are old. CUDA also has internal incompatibility issue with newer version of gcc, so it might also break other software you have installed. So be careful and good luck...