Rate This Document
Findability
Accuracy
Completeness
Readability

Compilation and Installation

Procedure

  1. Install the graphics library.
    yum install -y mesa-libGL mesa-libGL-devel mesa-libGLU mesa-libGLU-devel
  2. Create an EMAN2 compilation and running environment.
    conda create -n eman2
  3. Activate the EMAN2 environment.
    conda activate eman2
  4. Configure the EMAN2 environment.
    conda install -c conda-forge _libgcc_mutex=0.1 _openmp_mutex=4.5 absl-py=1.0.0 aiohttp=3.8.1 aiosignal=1.2.0 alsa-lib=1.2.3 anyio=3.4.0 argcomplete=1.12.3 argon2-cffi=21.1.0 astor=0.8.1 astunparse=1.6.3 async-timeout=4.0.1 asynctest=0.13.0 attrs=21.2.0 babel=2.9.1 backcall=0.2.0 backports=1 backports.functools_lru_cache=1.6.4 bleach=4.1.0 blinker=1.4 boost=1.74.0 boost-cpp=1.74.0 brotli=1.0.9 brotli-bin=1.0.9 brotlipy=0.7.0 bzip2=1.0.8 c-ares=1.18.1 ca-certificates=2021.10.8 cachetools=4.2.4 certifi=2021.10.8 cffi=1.15.0 charset-normalizer=2.0.8 click=8.0.3 cmake=3.21.3 colorama=0.4.4 configparser=5.1.0 cryptography=35.0.0 cycler=0.11.0 dataclasses=0.8 dbus=1.13.6 debugpy=1.5.1 decorator=5.1.0 defusedxml=0.7.1 entrypoints=0.3 expat=2.4.1 fftw=3.3.10 fontconfig=2.13.1 fonttools=4.28.2 freetype=2.10.4 frozenlist=1.2.0  future=0.18.2 gast=0.4.0 gettext=0.19.8.1 glib=2.70.1 glib-tools=2.70.1 google-auth=2.3.3 google-auth-oauthlib=0.4.6 google-pasta=0.2.0 grpcio=1.42.0 gsl=2.6 gst-plugins-base=1.18.5 gstreamer=1.18.5 h5py=2.10.0 hdf5=1.10.6 icu=68.2 idna=3.1 importlib-metadata=4.8.2 importlib_metadata=4.8.2 importlib_resources=5.4.0 ipykernel=6.5.1  ipython_genutils=0.2.0 jbig=2.1 jedi=0.18.1 jinja2=3.0.3 joblib=1.1.0 jpeg=9d json5=0.9.5 jsonschema=4.2.1 jupyter_client=7.1.0 jupyter_core=4.9.1 jupyter_server=1.12.1 jupyterlab=3.2.4 jupyterlab_pygments=0.1.2 jupyterlab_server=2.8.2 keras-preprocessing=1.1.2 kiwisolver=1.3.2 krb5=1.19.2 lcms2=2.12 ld_impl_linux-64=2.36.1 lerc=3 libblas=3.9.0 libbrotlicommon=1.0.9 libbrotlidec=1.0.9 libbrotlienc=1.0.9 libcblas=3.9.0 libclang=11.1.0 libcurl=7.80.0 libdb=6.2.32 libdeflate=1.8 libedit=3.1.20191231 libev=4.33 libevent=2.1.10 libffi=3.4.2 libgcc-ng=11.2.0 libgfortran-ng=11.2.0 libgfortran5=11.2.0 libglib=2.70.1 libgomp=11.2.0 libiconv=1.16 liblapack=3.9.0 libllvm11=11.1.0 libnghttp2=1.43.0 libnsl=2.0.0 libogg=1.3.4 libopenblas=0.3.18 libopus=1.3.1 libpng=1.6.37 libpq=13.5 libprotobuf=3.19.1 libsodium=1.0.18 libssh2=1.10.0 libstdcxx-ng=11.2.0 libtiff=4.3.0 libuuid=2.32.1 libuv=1.42.0 libvorbis=1.3.7 libwebp-base=1.2.1 libxcb=1.13 libxkbcommon=1.0.3 libxml2=2.9.12 libzlib=1.2.11 lz4-c=1.9.3 markdown=3.3.6 markupsafe=2.0.1 matplotlib=3.5.0 matplotlib-base=3.5.0 matplotlib-inline=0.1.3 mistune=0.8.4 mpi=1 multidict=5.2.0 munkres=1.1.4 mysql-common=8.0.27 mysql-libs=8.0.27 nbclassic=0.3.4 nbclient=0.5.9 nbconvert=6.3.0 nbformat=5.1.3 ncurses=6.2 nest-asyncio=1.5.1 nodejs=16.12.0 nose=1.3.7 notebook=6.4.6 nspr=4.32 nss=3.72 numpy=1.18.5 oauthlib=3.1.1 olefile=0.46 openjpeg=2.4.0 openmpi=4.1.2 openssl=1.1.1l opt_einsum=3.3.0 packaging=21.3 pandas=1.3.4  pandocfilters=1.5.0 parso=0.8.2 pcre=8.45 pexpect=4.8.0 pickleshare=0.7.5 pillow=8.4.0 pip=21.3.1 prometheus_client=0.12.0 prompt-toolkit=3.0.22 protobuf=3.19.1 pthread-stubs=0.4 ptyprocess=0.7.0 pyasn1=0.4.8 pyasn1-modules=0.2.7 pycparser=2.21 pygments=2.10.0 pyjwt=2.3.0 pyopengl=3.1.5 pyopenssl=21.0.0 pyparsing=3.0.6 pyqt=5.12.3 pyqt-impl=5.12.3 pyqt5-sip=4.19.18 pyqtchart=5.12 pyqtwebengine=5.12.1 pyrsistent=0.18.0 pysocks=1.7.1 python=3.7.12 python-dateutil=2.8.2 python-flatbuffers=2 python_abi=3.7 pytz=2021.3 pyu2f=0.1.5 pyzmq=22.3.0 qt=5.12.9 readline=8.1 requests=2.26.0 requests-oauthlib=1.3.0 rhash=1.4.1 rsa=4.8 scikit-learn=1.0.1 scipy=1.7.3 send2trash=1.8.0 setuptools=59.4.0 six=1.16.0 sniffio=1.2.0 sqlite=3.37.0 tensorboard=2.7.0 tensorboard-data-server=0.6.0 tensorboard-plugin-wit=1.8.0 tensorflow-estimator=2.5.0 termcolor=1.1.0 terminado=0.12.1 testpath=0.5.0 threadpoolctl=3.0.0 tk=8.6.11 tornado=6.1 tqdm=4.62.3 traitlets=5.1.1 typing-extensions=4.0.0 typing_extensions=4.0.0 unicodedata2=13.0.0.post2 urllib3=1.26.7 wcwidth=0.2.5 webencodings=0.5.1 websocket-client=1.2.1 werkzeug=2.0.1 wheel=0.37.0 wrapt=1.13.3 xorg-libxau=1.0.9 xorg-libxdmcp=1.1.3 xz=5.2.5 yarl=1.7.2 zeromq=4.3.4 zipp=3.6.0 zlib=1.2.11 zstd=1.5.0 ftgl pandoc ipython=7.30
  5. Install bsddb3.
    1. Copy the bsddb3 package generated in Porting bsddb3 to the Anaconda package directory.
      cp bsddb3-6.2.9-py37_0.tar.bz2 /root/anaconda3/pkgs/
    2. Install bsddb3.
      conda install --use-local /root/anaconda3/pkgs/bsddb3-6.2.9-py37_0.tar.bz2
  6. Install tensorlfow2.4.1.
    1. Copy the TensorFlow package generated in Porting TensorFlow 2.4.1 to the Anaconda package directory.
      cp tensorflow-2.4.1-cp37-cp37m-linux_aarch64.whl /root/anaconda3/pkgs/
    2. Install tensorlfow2.4.1.
      pip install /root/anaconda3/pkgs/tensorflow-2.4.1-cp37-cp37m-linux_aarch64.whl --no-deps
  7. Download the EMAN2 source code.
    git config --global http.sslVerify false
    git clone https://github.com/cryoem/eman2.git
    cd eman2
    git fetch --all --prune
    git checkout master
    git pull

    The EMAN2 source code must be obtained by running the git clone command. The released source code package has bugs.

  8. Modify the CmakeLists.txt file.
    sed -i "s/-m64/-mabi=lp64/g" CMakeLists.txt
  9. Compile EMAN2.
    mkdir build && cd build
    cmake .. -DENABLE_OPTIMIZE_MACHINE=ON
    make -j`cat /proc/cpuinfo| grep "processor"| wc -l`
    make install