EddyRivasLab / hmmer

HMMER: biological sequence analysis using profile HMMs
http://hmmer.org
Other
305 stars 69 forks source link

HMMER re-install on Mac M1 #283

Closed yunso123 closed 1 year ago

yunso123 commented 2 years ago

Hi,

I have been using HMMER that I installed with conda on my Mac M1 pro. Unfortunately, I had issues with conda, so I uninstalled and re-installed conda on Mac.

Since then, I am having problems to install HMMER again with conda and also from the source. I get the following error message:

configure: Configuring HMMER3 for your system.
checking build system type... arm-apple-darwin21.5.0
checking host system type... arm-apple-darwin21.5.0
checking whether to compile using MPI... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for gcc option to accept ISO C99... none needed
checking for gcc option to accept ISO Standard C... (cached) none needed
checking how to run the C preprocessor... gcc -E
checking for a BSD-compatible install... /usr/bin/install -c
checking for strip... strip
checking for ranlib... ranlib
checking for ar... /usr/bin/ar
checking whether ln -s works... yes
checking for a sed that does not truncate output... /opt/homebrew/bin/gsed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking whether gcc is Clang... yes
checking whether Clang needs flag to prevent "argument unused" warning when linking with -pthread... no
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking whether gcc can compile our Altivec/VMX code... no
checking whether gcc can compile our SSE code... no
configure: ::::::::::--- no vector instruction set ---::::::::::
configure: HMMER3 requires SSE or VMX vector instructions.
configure: Supported platforms are x86 (Intel/AMD) and PowerPC.
configure: error: No supported vectorization found for your machine.

Does anyone know what could the issues here?

Thanks a lot for you help. Yunjeong

npcarter commented 2 years ago

Hello. There are two ways to get HMMER running on an M1 Mac. The first is to install Apple's Rosetta 2 x86 compatibility tool, and use that to build HMMER. This will work with the official released version. The second would be to download and build the develop branch of our Github repository, which has support for the ARM processor, although this exposes you to the fact that the develop branch is currently under development, and so may have issues.

I'm guessing that you somehow had Conda running under Rosetta 2 when you did your initial install of HMMER, and that's why it worked.

-Nick

On Thu, Jul 7, 2022 at 3:59 AM yunso123 @.***> wrote:

Hi,

I have been using HMMER that I installed with conda on my Mac M1 pro. Unfortunately, I had issues with conda, so I uninstalled and re-installed conda on Mac.

Since then, I am having problems to install HMMER again with conda and also from the source. I get the following error message:

configure: Configuring HMMER3 for your system. checking build system type... arm-apple-darwin21.5.0 checking host system type... arm-apple-darwin21.5.0 checking whether to compile using MPI... no checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for gcc option to accept ISO C99... none needed checking for gcc option to accept ISO Standard C... (cached) none needed checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking for strip... strip checking for ranlib... ranlib checking for ar... /usr/bin/ar checking whether ln -s works... yes checking for a sed that does not truncate output... /opt/homebrew/bin/gsed checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking whether gcc is Clang... yes checking whether Clang needs flag to prevent "argument unused" warning when linking with -pthread... no checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking whether more special flags are required for pthreads... no checking for PTHREAD_PRIO_INHERIT... yes checking whether gcc can compile our Altivec/VMX code... no checking whether gcc can compile our SSE code... no configure: ::::::::::--- no vector instruction set ---:::::::::: configure: HMMER3 requires SSE or VMX vector instructions. configure: Supported platforms are x86 (Intel/AMD) and PowerPC. configure: error: No supported vectorization found for your machine.

Does anyone know what could the issues here?

— Reply to this email directly, view it on GitHub https://github.com/EddyRivasLab/hmmer/issues/283, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABDJBZHPMGCYLLU7YQVI72DVS2E6PANCNFSM524NAY4A . You are receiving this because you are subscribed to this thread.Message ID: @.***>

aspitaleri commented 1 year ago

Hi, just following this thread. On M1 ARM Ventura type on terminal:

  1. arch -x86_64 ./configure --prefix=/usr/local/hmmer
  2. arch -x86_64 make
  3. arch -x86_64 make install

This will compile hmmer using Rosetta2. Best

horta commented 1 year ago

I've deployed Python wheels for HMMER binaries so you can use HMMER on Mac M1 (or Linux for that matter) like this:

pip install hmmer
hmmscan -h
hmmpress -h
# etc.

Or if you have pipx, you can even use HMMER without messing with yout environment:

pipx run --spec hmmer hmmpress -h
pipx run --spec hmmer hmmscan -h
# etc.

@npcarter , I'm happy to hand over the Python package name hmmer to you and help (if you wish) with deploying the next HMMER releases like I did.

cryptogenomicon commented 1 year ago

Cool, thanks Danilo!