Installation

Installing on macOS

Note: Recent versions of macOS may not work,

see #50. As an alternative, consider Installing with conda (deprecated).

Installing on macOS requires OpenMP-enabled clang, which can be installed via homebrew or conda as follows:

  • On homebrew, do: brew install llvm libomp.

  • Or if using conda, do: conda install llvm-openmp clang.

You will also need to set the environment variable CC=/path/to/clang during installation.

For example, if you installed the above dependencies using homebrew, the command to install would be:

CC=$(brew --prefix llvm)/bin/clang pip install momi

If you installed clang via conda, the command would look instead like:

CC=$(which clang) pip install momi

Installing with conda (deprecated)

New versions of momi are no longer released on conda. However, older versions of momi that were built for conda are still available, and may be installed with the following command:

conda install momi -c conda-forge -c bioconda -c jackkamm

Note the order of the -c flags matters, it determines the priority of each channel when installing dependencies.

Troubleshooting

“ModuleNotFoundError: No module named ‘momi.convolution’”

This is usually caused by trying to import momi when in the top-level folder of the momi2 project. In this case, Python will try to import the local, unbuilt copy of the momi subdirectory rather than the installed version.

To fix this, simply cd out of the top-level directory before importing momi.

“clang: error: unsupported option ‘-fopenmp’”

On macOS the system version of clang does not support OpenMP, which causes this error when building momi with pip.

To solve this, make sure you have OpenMP-enabled LLVM/clang installed, and set the environment variable CC as noted in the pip installation instructions above.

Note: it is NOT recommended to replace clang with gcc on macOS, as this can cause strange numerical errors when used with Intel MKL; for example, see https://github.com/ContinuumIO/anaconda-issues/issues/8803