Open ori-scala opened 2 weeks ago
@apcamargo Thank you for the 5.3 build. Now both --version
and --help
are working well but running an actual alignment ends up with the same error:
[1] 42192 illegal hardware instruction muscle -align -output -log
Maybe you can add that to the tests as well? Something like
muscle -align some_fasta_file.fasta -output output.fasta -log muscle_log.txt
Does -super5
work? It is included in the tests.
Nope, same error
[1] 42600 illegal hardware instruction muscle -super5 -output -log
Ok, so the problem might be on your end. Is your Mac a M series? Because the output of your muscle --help
shows osx64
, which is Intel. Maybe the binary of the wrong architecture is being installed.
How are you installing muscle
?
The mac indeed has an M series chipset (M1 Pro) but I'm setting the conda env to osx64 using conda config --env --set subdir osx-64
as other packages I'm using aren't built for M series and I'm forced to do that.
I'm installing using an env.yml
file or by conda install -c bioconda muscle==5.3.0 -y
I guess the other binaries are being executed through Rosetta? If so, I don't know why muscle
isn't (assuming the issue is that the issue is that the binary is not compatible with the processor's architecture).
Do you have the same issue if you try to install other packages with ARM builds (e.g. diamond
, mmseqs2
, or hhsuite
)?
I don't think I know enough about this to help you. If you're using Pixi, you can try to ask for help in their Discord (people there are very helpful). Otherwise, maybe @bioconda/osx can help?
You're correct, the other binaries are being executed through Rosetta. It doesn't happen with other packages nor with any muscle version prior to 5.2
In this case, I don't know what is going on. It could be something with the macOS ARM CI (as the build runs correctly there), but the core team would know better than me.
Ok, thank you anyway Antônio!
If you create an environment only for muscle and install the ARM version, does it work?
Yep, that works as expected.
This explains why the tests didn't catch this. From my understanding, the only major difference between the Bioconda build and Robert's build is that he is using GCC and Bioconda uses clang. As far as I know, there's no way for us to use GCC to build for macOS, but I don't really know our building system that well.
As you said, version 5.1 worked in Rosetta and it seems he used Clang back then (I'm inferring this from his CI). But the code changed a lot since then...
Can you update the issue title to something that reflects better the info we gathered?
@apcamargo updated the title as requested
After installing the latest MUSCLE version (5.2), I'm getting the following error when trying to run MUSCLE.
illegal hardware instruction
I assume it's related to the Apple M series chipset, I'm using Apple M1 Pro.
To reproduce:
conda install bioconda::muscle==5.2.0 -y
Then run
muscle --help
and get:Then, downgrade using:
conda install bioconda::muscle==5.1.0 -y
and
muscle --help
works again with the following output: