-
Notifications
You must be signed in to change notification settings - Fork 51
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
DLKcat on Mac with Apple Silicon (arm64 architecture) #393
Comments
I don't have access to a Mac with Apple Silicon CPU, but I imagine that this might be where the problem lies. @simas232 have you run DLKcat on Apple Silicon CPU? |
Had a quick glance at that, it seems servbay is meant for a different purpose. That being said, the root cause has been correctly identified - the Docker imagine would need to be updated for wider support. |
I gave this a go by running
There is an error while installing the dependencies from requirements.txt for the arm64 platform, so it looks like this needs more investigation and it won't be 5 min job. Anyone wanting to give this a go? |
DLKcat works fine on MacBook M1 |
You could otherwise try to make your own Docker with the following code. In
and change
Then, while in
Finally, in
If I tried this on a Windows 10 PC, the resulting image was less than 300 MB, which is substantially less than the 1.9 GB that the current Docker has. So I strongly doubt that my attempt worked. But maybe you have more successful by directly running this on a M1-4 chip. |
Hi, many thanks for your reply, I made the modifications accordingly, but encountered the following error when running
|
As I don't have a Mac with Apple Silicon CPU, I unfortunately cannot give further support. But from this earlier comment it appears that the original Docker image should work on at least M1 CPUs. Maybe you want to look into OrbStack? Note that you would then also want to change the |
Thanks for the reply! I’ll give it a try and see how it goes. |
Thanks for trying this out @edkerk. I, too, find the size difference very surprising. In any case, your approach has triggered my curiosity, so I've managed to push a @Mengzhen-Li-sw it would be great if you could give it a try https://github.com/SysBioChalmers/GECKO/pkgs/container/dlkcat-gecko/291906062?tag=0.1-multiarch Note: I haven't tested this at all - my M3 machine is not set up with Matlab. |
@mihai-sysbio It doesn't work on PC, but this is because it uses numpy 2. Please see my suggested changes to |
Fantastic you caught that, I've applied the fix, see #395 . In the meantime, I've deleted the published edit: upload finished, please test again |
It didn't work, I get the error message: Traceback (most recent call last):
File "//DLKcat.py", line 26, in <module>
fingerprint_dict = load_pickle('input/fingerprint_dict.pickle')
File "//DLKcat.py", line 24, in load_pickle
return pickle.load(f)
_pickle.UnpicklingError: invalid load key, 'v'. When I run with |
I also tried on Apple Silicon and encountered the same error. |
Thanks @SilentWaveSW for confirming - could you please follow in #396? |
The "solution" in #396 does not work. In that Issue there is a comment:
I can test this by again making a |
Hi, I’m using a Mac to run GECKO and encountered the following error when executing runDLKcat():WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
To address this, I modified the Docker command in runDLKcat.m to:
status = system(['docker run --platform linux/amd64 --rm -v "' fullfile(params.path,'/data') '":/data ghcr.io/sysbiochalmers/dlkcat-gecko:0.1 /bin/bash -c "python DLKcat.py /data/DLKcat.tsv /data/DLKcatOutput.tsv"']);
However, this results in an extremely long runtime—more than 20 hours for processing a single sample. Are there any recommendations or solutions to improve the performance? Thanks!
The text was updated successfully, but these errors were encountered: