Open thyol opened 1 year ago
Having this error too!
Seems like this is a python 3.10 issue
ESMFold requires deepspeed
, and deepspeed
requires triton
, and triton
is pinned at 1.0.0 in deepspeed
, but triton
doesnt support wheels for python 3.10 for 1.0.0....
Thanks for folllowing up! that makes sense, and the OP mentions python 3.0 which is very old by now and probably also doesn't have a triton wheel available. We just mention python <= 3.9
on the README but should probably not be older than 3.7
I'm not familiar with deepspeed
or triton
, would it be a bad idea to make a PR to deepspeed
to bump the triton
version to 2.0.0dev or just >=1.0.0? Seems deepspeed
is fine with both, it's just pinned at 1.0.0 in some places: https://github.com/microsoft/DeepSpeed/search?q=triton
@tomsercu Python 3.0 was typo. I removed that comment, and just left the correct python -V output.
Hi, I have a similar error when I tried to use esmfold for a sequence. Can any one help please?
Log:
[2662:9] > python esmfold.py -i data/2_interim/CEGAL/CEGAL.fasta -o data/2_interim/CEGAL/ESM
23/02/17 15:41:09 | INFO | root | Reading sequences from data/2_interim/CEGAL/CEGAL.fasta
23/02/17 15:41:09 | INFO | root | Loaded 63 sequences from data/2_interim/CEGAL/CEGAL.fasta
23/02/17 15:41:09 | INFO | root | Loading model
Traceback (most recent call last):
File "esmfold.py", line 136, in
Hi, I have a similar error when I tried to use esmfold for a sequence. Can any one help please?
Log: [2662:9] > python esmfold.py -i data/2_interim/CEGAL/CEGAL.fasta -o data/2_interim/CEGAL/ESM 23/02/17 15:41:09 | INFO | root | Reading sequences from data/2_interim/CEGAL/CEGAL.fasta 23/02/17 15:41:09 | INFO | root | Loaded 63 sequences from data/2_interim/CEGAL/CEGAL.fasta 23/02/17 15:41:09 | INFO | root | Loading model Traceback (most recent call last): File "esmfold.py", line 136, in model = esm.pretrained.esmfold_v1() File "/biolo/dev_toolkit/python/anaconda3/envs/Metrics3D/lib/python3.7/site-packages/esm/pretrained.py", line 419, in esmfold_v1 import esm.esmfold.v1.pretrained File "/biolo/dev_toolkit/python/anaconda3/envs/Metrics3D/lib/python3.7/site-packages/esm/esmfold/v1/pretrained.py", line 5, in from esm.esmfold.v1.esmfold import ESMFold File "/biolo/dev_toolkit/python/anaconda3/envs/Metrics3D/lib/python3.7/site-packages/esm/esmfold/v1/esmfold.py", line 11, in from openfold.data.data_transforms import make_atom14_masks ModuleNotFoundError: No module named 'openfold'
This error basically means 'you didnt install esmfold'
A good way to sidestep trouble with installing openfold and its dependencies, is to use ESMFold via huggingface transformers: https://huggingface.co/docs/transformers/installation
transformers is a much bigger library but the wonderful folks at 🤗 did extra work to remove the openfold dependency by extracting a minimal amount of openfold into transformers itself. It will sidestep all these install issues.
Also ColabFold may work for some: https://github.com/sokrypton/ColabFold provides a notebook that is welltested on google colab and takes care of all dependencies there. Google Colab comes with compute limitations and time-outs though.
FOR ANYBODY STUMBLING ACROSS THIS THREAD, HERE'S A (HACKY) FIX IF YOU DON'T NEED DEEPSPEED
A good way to sidestep trouble with installing openfold and its dependencies, is to use ESMFold via huggingface transformers: https://huggingface.co/docs/transformers/installation
transformers is a much bigger library but the wonderful folks at 🤗 did extra work to remove the openfold dependency by extracting a minimal amount of openfold into transformers itself. It will sidestep all these install issues.
We looked at this and while it seems like a fantastic implementation, it doesn't explicitly support multimers via linkers. While manually adding in the poly-glycine linker ourselves + removing them in the pdb file is simple enough, we'd ideally like the interface that ESM already supports out-of-the-box. The ESM batching process is also nice, and it's not clear whether 🤗 supports that.
Also ColabFold may work for some: https://github.com/sokrypton/ColabFold
ESMFold still seems to be in beta here, but this is also a good option.
As for the fix, simply don't install deepspeed, it works perfectly fine w/o it. As in...
pip install dm-tree omegaconf ml-collections einops
pip install fair-esm[esmfold]==2.0.0 --no-dependencies # Override deepspeed==0.5
pip install 'dllogger @ git+https://github.com/NVIDIA/dllogger.git'
pip install 'openfold @ git+https://github.com/aqlaboratory/openfold.git@4b41059694619831a7db195b7e0988fc4ff3a307'
Deepspeed seems to be an optional dependency given that Openfold only imports if it exists in your environment, and continues as normal if it doesn't find it: https://github.com/aqlaboratory/openfold/search?q=deepspeed.
Not a useful solution if you're using Deepspeed elsewhere in your codebase, but works great if you need ESMFold and nothing else.
Huge shout-out to @JacobHayes for figuring this out!
Hi,
I have the same error, I didn't find a workaround for this :
Any other workaround ?
Hi, same issue here.
NOTE: if this is not a bug report, please use the GitHub Discussions for support questions (How do I do X?), feature requests, ideas, showcasing new applications, etc.
Bug description Please enter a clear and concise description of what the bug is. On
pip install "fair-esm[esmfold]"
this Warning appears:Reproduction steps
Expected behavior esmfold_v1 is available.
Logs Please paste the command line output:
Additional context Add any other context about the problem here. (like proxy settings, network setup, overall goals, etc.)