faircloth-lab / phyluce

software for UCE (and general) phylogenomics
http://phyluce.readthedocs.org/
Other
76 stars 48 forks source link

gblocks error - bad CPU type in executable #251

Open Otorongo1 opened 2 years ago

Otorongo1 commented 2 years ago

Hi, I am working through the Phyluce tutorial and I've been running into trouble when trying to trim the loci with Gblocks. Running the following:

phyluce_align_get_gblocks_trimmed_alignments_from_untrimmed \ --alignments mafft-nexus-internal-trimmed \ --output mafft-nexus-internal-trimmed-gblocks \ --cores 8 \ --log log I get the error: OSError: [Errno 86] Bad CPU type in executable: '/opt/miniconda3/envs/phyluce-1.7.1/bin/Gblocks' (phyluce-1.7.1)

Any thoughts on how I could fix this? Thanks!

brantfaircloth commented 2 years ago

Are you on an M1 Mac? if so, there is no fix for now. You’ll either need to use trimAl or run glbocks on linux or a non-M1 mac. Gblocks source code is not available to compile for the M1, which is the reason.

Otorongo1 commented 2 years ago

I do not have an M1 chip...processor is 2.3 GHz 8-Core Intel Core i9. Should there still be an issue?

brantfaircloth commented 2 years ago

There shouldn’t be, that I know of. But, it appears there is. After activating the conda phyluce environment, you can simply run gblocks without error? If not, I’m afraid you’ll have to stick with trimAl or try on a machine with a different CPU. If I had access to a i9, I might be able to do a little more… but lack of access to the gBlocks source is the real issue.

Otorongo1 commented 2 years ago

Just the command gblocks by itself gives the same error. I'll give TrimAI a try, Thanks for your help!

joshmodeste commented 1 year ago

Hello, Has there been an update or workaround to this issue? I am running a 1.8 GHz Dual-Core Intel Core i5 processor and receiving the same error.

Is there any guidance on working through the tutorial using TrimAI?

Thanks!, Josh

brantfaircloth commented 1 year ago

There is not, that I know of. You could see if a version of gblocks from the author’s website will run (http://molevol.cmima.csic.es/castresana/Gblocks.html). If that works, you can specify a path to the binary in phyluce.conf.

Other than that, the authors don’t make the source code available, so we can’t recompile for different architectures than they have compiled for.

brantfaircloth commented 1 year ago

Whoops - didn’t mean to close…

brantfaircloth commented 1 year ago

As far as trimAl - there is a script to run it in automated fashion pretty easily - just run phyluce_align_get_trimal_trimmed_alignments_from_untrimmed -h to see the options (they’re basically the same as for gblocks).

joshmodeste commented 1 year ago

That worked! Thanks!

brantfaircloth commented 1 year ago

👍

Rachel-King commented 1 year ago

Having the same issue - I am unable to access gblocks. I can run Gblocks successfully but not gblocks. Using an i9 chip. Is there any options that need to change when using phyluce_align_get_trimal_trimmed_alignments_from_untrimmed to match phyluce_align_get_gblocks_trimmed_alignments_from_untrimmed? Thanks :)

brantfaircloth commented 1 year ago

No, sadly, as far as I know you'll need to use something other than Gblocks (e.g. trimAL). The folks who wrote Gblocks do not make the source code available, and that means that we cannot recompile it for different CPUs.