-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Newer versions report "Illegal instruction" and exit on Mac with M2 #16
Comments
Hey @raufs ! I'm pretty sure this is coming from Pyrodigal since you get the error right after loading sequences, so probably at the time Pyrodigal is executed. There's a chance the CPU feature detection doesn't work properly and causes the wrong platform code to be executed. Would you mind trying to run the Pyrodigal CLI on a test example, and check if you get the error with the latest version? According to my changelog GECCO Cheers, |
Pyrodigal versions appear the same in both conda environments with GECCO v0.9.6 and GECCO v0.9.10. Both environments have pyrodigal v3.5.1. It seems I only tested running GECCO with a full genome GenBank file as input and this was the basis of my initial report. However, when testing using genomes in FASTA format as input, we see the reverse scenario where 0.9.10 works as expected 0.9.6 doesn't work giving the error message: (/Users/raufs/Coding_Projects/test_gecco/gecco_0.9.6) Raufs-Mac-mini:input_genomes raufs$ gecco run -g Cutibacterium_avidum_GB_GCA_000477695_1.fasta -o test/
So perhaps the issue is related to parsing GenBank inputs in v0.9.10. And as far as I have experienced, everything works as expected on Linux setups regardless of versions used. Hope its helpful! |
Here is an example full genome GenBank I used as input for the initial report: Cutibacterium_avidum_RS_GCF_902375045_1.gbk.gz I self create them in lsaBGC-Pan, so perhaps it is something on my end to improve with creating them. Will definitely look into later. They do work as compatible input for GECCO v0.9.6 (when using Mac M2 and also on Linux) and also v0.9.10 (but only on Linux). |
Ah sorry -- what I meant was to try running Pyrodigal directly on some genome with your laptop to see if it's the culprit that is crashing GECCO. The "Illegal Instruction" interrupt happens when the CPU attempts to run, well, an illegal instruction. This usually happens when the CPU tries to run SIMD code it doesn't support, so for instance AVX2 or SSE4.1 on older computers. Since Pyrodigal and PyHMMER both use SIMD, I guess it's one of these two which crash, but I'd probably think Pyrodigal is the culprit because the crash happens when the progress bar is done Maybe you could just try: $ python -m pyrodigal -i <some_genome_file.fna> to check if this works, or if it immediately crashes? |
I see, so what is odd here is that pyrodigal (v3.5.1) runs great on all systems. I actually use it to create the custom GenBank files to feed into GECCO. So running the pyrodigal command in a conda environment where GECCO reports the "Illegal instruction" works great on the M2 mac. This is related to the lsaBGC-Pan suite, which is a re-implementation of lsaBGC, and I just get around this by using GECCO v0.9.6 as a dependency, which works great - so there is no rush here! Maybe of interest to you and the other GECCO co-authors, but lsaBGC-Pan can now co-process both antiSMASH and GECCO predictions. Similar to your study, applying this to a well-sequenced Streptomyces species, we saw that this leads to a substantial increase in BGC predictions to using antiSMASH alone. |
Hmm..... Would you mind running GECCO in verbose mode? If Pyrodigal is not the culprit I'm wondering what the problem may be... You can run
I've seen your tweet about it, that's really exciting! |
Sure thing, here is the more detailed output:
|
Hi Martin,
Hope all is well! I just noticed on my Mac setup that versions v0.9.8 and v0.9.10 reports the following and exists:
This error does not occur on linux systems with these versions. Reverting to v0.9.6 appears to work as expected on the mac. I tried running with the verbose flag but it just gave the same error message.
The mac has an M2 chip if that helps. Installation was via conda. Happy to help with testing or share additional info.
Kind regards,
Rauf
The text was updated successfully, but these errors were encountered: