Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Cave Man

macrumors 604
Original poster
I'm trying to install some DNA database files for a software package I use (ngKLAST) but I'm getting this error:

5:31:05 | FormatDB/UniqueSeqId: total working time: 1 s.

15:31:05 | Done formatdb/makeklastdb processing

15:31:05 -X- Unable to execute task: NCBIFormatDB: java.io.IOException: Cannot run program "/Applications/ngKLAST.app/Contents/java/app/external/bin/macos/formatdb" (in directory "/Volumes/ngKlast/ngKLAST/databanks/p/Refseq_viral_protein/download/Refseq_viral_protein"): error=86, Bad CPU type in executable


I haven't installed a database since probably High Sierra and I am using zsh for my shell. I don't think this is an issue with the formatdb app but perhaps it is? What I don't understand is this "bad cpu type in executable." Can someone shed light on this so that I can get this problem resolved?

TIA.
 

Slartibart

macrumors 68040
Aug 19, 2020
3,140
2,815
OK, after a little digging, I suspect the problem is that formatdb app is 32 bit and won't run under Big Sur. So, if I can find its source code, can I compile it as 64 bit to (hopefully) solve the problem?
yes. depending on what cpu you are if this is already a 64bit-program there might be simply Rosetta 2 missing on your system. You can install it from the terminal via:

/usr/sbin/softwareupdate --install-rosetta --agree-to-license

just in case, here’s additionally a quick command you can run in the Terminal to list any 32-bit binaries in your $PATH on your Mac.

find `echo $PATH | tr ":" "\n"` -perm +1111 -exec file {} \; | grep i386

EDIT: another option to identify programs which are not compatible with the system (64-bit ready), you can go to System Information > Software. inspect Applications and Legacy Software section for any 32-bit software as in the screenshot below.

Replace software with native ARM builds

When searching for 64-bit or ARM-native software, look for something with "SiMac" or "Apple Silicon" or "ARM64".

EDIT: if the formatdb prog in your package is the program for creating a database .sequences file from a FASTA format database, its source code is included in a variety of blast packages. It‘s a simple C-program (just one include blast.h) and should compile without problems.
 
Last edited:

Cave Man

macrumors 604
Original poster
yes. depending on what cpu you are if this is already a 64bit-program there might be simply Rosetta 2 missing on your system. You can install it from the terminal via:

/usr/sbin/softwareupdate --install-rosetta --agree-to-license

just in case, here’s additionally a quick command you can run in the Terminal to list any 32-bit binaries in your $PATH on your Mac.

find `echo $PATH | tr ":" "\n"` -perm +1111 -exec file {} \; | grep i386

EDIT: another option to identify programs which are not compatible with the system (64-bit ready), you can go to System Information > Software. inspect Applications and Legacy Software section for any 32-bit software as in the screenshot below.

Replace software with native ARM builds

When searching for 64-bit or ARM-native software, look for something with "SiMac" or "Apple Silicon" or "ARM64".

EDIT: if the formatdb prog in your package is the program for creating a database .sequences file from a FASTA format database, its source code is included in a variety of blast packages. It‘s a simple C-program (just one include blast.h) and should compile without problems.
Thanks for this info. Unfortunately, when I tried to install Rosetta, I received this error:

Installing Rosetta 2 on this system is not supported.

I have an Intel Core i9-9900 Coffee Lake 8-Core, 16-Thread, 3.1 GHz cpu.

Looking at the Apps, formatdb is not in the list.

When I look in that directory, formatdb is listed:

albert@office ~ % cd /Applications/ngKLAST.app/Contents/java/app/external/bin/macos
albert@office macos % ls -al
total 176112
drwxr-xr-x 12 albert admin 384 Oct 7 09:31 .
drwxr-xr-x 3 albert admin 96 Oct 7 09:31 ..
-rwxr-xr-x 1 albert admin 12587112 Apr 7 2015 blastall
-rwxr-xr-x 1 albert admin 11736052 Apr 7 2015 blastpgp
-rwxr-xr-x 1 albert admin 28315626 Apr 7 2015 clustalw
drwxr-xr-x 38 albert admin 1216 Oct 7 09:31 data
-rwxr-xr-x 1 albert admin 11313036 Apr 7 2015 fastacmd
-rwxr-xr-x 1 albert admin 11329456 Apr 7 2015 formatdb
-rwxr-xr-x 1 albert admin 1882504 Apr 7 2015 libKLib.jnilib
-rwxr-xr-x 1 albert admin 12574860 Apr 7 2015 megablast
-rwxr-xr-x 1 albert admin 411008 Apr 7 2015 muscle
-rwxr-xr-x 1 albert admin 119 Apr 7 2015 version.txt


Is there a way to manually check its 32-bit status?

Meanwhile, I'll see if I can figure out how to compile formatdb as 64-bit. (If it's 32-bit, then probably the others are, too?) It's been a really long time since I've done this. I used to use gcc but I don't know if that still works on Macs...
 

Slartibart

macrumors 68040
Aug 19, 2020
3,140
2,815
Thanks for this info. Unfortunately, when I tried to install Rosetta, I received this error:

Installing Rosetta 2 on this system is not supported.

I have an Intel Core i9-9900 Coffee Lake 8-Core, 16-Thread, 3.1 GHz cpu.

Looking at the Apps, formatdb is not in the list.

When I look in that directory, formatdb is listed:

albert@office ~ % cd /Applications/ngKLAST.app/Contents/java/app/external/bin/macos
albert@office macos % ls -al
total 176112
drwxr-xr-x 12 albert admin 384 Oct 7 09:31 .
drwxr-xr-x 3 albert admin 96 Oct 7 09:31 ..
-rwxr-xr-x 1 albert admin 12587112 Apr 7 2015 blastall
-rwxr-xr-x 1 albert admin 11736052 Apr 7 2015 blastpgp
-rwxr-xr-x 1 albert admin 28315626 Apr 7 2015 clustalw
drwxr-xr-x 38 albert admin 1216 Oct 7 09:31 data
-rwxr-xr-x 1 albert admin 11313036 Apr 7 2015 fastacmd
-rwxr-xr-x 1 albert admin 11329456 Apr 7 2015 formatdb
-rwxr-xr-x 1 albert admin 1882504 Apr 7 2015 libKLib.jnilib
-rwxr-xr-x 1 albert admin 12574860 Apr 7 2015 megablast
-rwxr-xr-x 1 albert admin 411008 Apr 7 2015 muscle
-rwxr-xr-x 1 albert admin 119 Apr 7 2015 version.txt


Is there a way to manually check its 32-bit status?

Meanwhile, I'll see if I can figure out how to compile formatdb as 64-bit. (If it's 32-bit, then probably the others are, too?) It's been a really long time since I've done this. I used to use gcc but I don't know if that still works on Macs...
Rosetta 2 is only needed if you run Intel-software on Apple Silicon.
You can try installing blast via homebrew on your system - the brew blast install is straight forward.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.