facebookresearch / esm

Evolutionary Scale Modeling (esm): Pretrained language models for proteins
MIT License
2.97k stars 586 forks source link

esm-fold interface: SyntaxError: invalid syntax #637

Open johnnytam100 opened 7 months ago

johnnytam100 commented 7 months ago

Hi esm! I am meeting a syntax error when trying to use the esm-fold interface

Any idea how to deal with this?

(esmfold) jupyter@tam-notebook-a10040gb:~/test/test_esmfold_multimer$ esm-fold -i test.fasta -o ./

23/11/16 07:59:56 | INFO | root | Reading sequences from test.fasta
23/11/16 07:59:56 | INFO | root | Loaded 480 sequences from test.fasta
23/11/16 07:59:56 | INFO | root | Loading model
Traceback (most recent call last):
  File "/opt/conda/envs/esmfold/bin/esm-fold", line 8, in <module>
    sys.exit(main())
  File "/opt/conda/envs/esmfold/lib/python3.7/site-packages/esm/scripts/fold.py", line 202, in main
    run(args)
  File "/opt/conda/envs/esmfold/lib/python3.7/site-packages/esm/scripts/fold.py", line 143, in run
    model = esm.pretrained.esmfold_v1()
  File "/opt/conda/envs/esmfold/lib/python3.7/site-packages/esm/pretrained.py", line 419, in esmfold_v1
    import esm.esmfold.v1.pretrained
  File "/opt/conda/envs/esmfold/lib/python3.7/site-packages/esm/esmfold/v1/pretrained.py", line 10, in <module>
    from esm.esmfold.v1.esmfold import ESMFold
  File "/opt/conda/envs/esmfold/lib/python3.7/site-packages/esm/esmfold/v1/esmfold.py", line 17, in <module>
    from esm.esmfold.v1.misc import (
  File "/opt/conda/envs/esmfold/lib/python3.7/site-packages/esm/esmfold/v1/misc.py", line 10, in <module>
    from einops import rearrange, repeat
  File "/opt/conda/envs/esmfold/lib/python3.7/site-packages/einops/__init__.py", line 14, in <module>
    from .einops import rearrange, reduce, repeat, einsum, parse_shape, asnumpy
  File "/opt/conda/envs/esmfold/lib/python3.7/site-packages/einops/einops.py", line 807
    def einsum(tensor: Tensor, pattern: str, /) -> Tensor:
                                             ^
SyntaxError: invalid syntax
k-chrispens commented 7 months ago

I also got this error - it seems that the / notation for positional arguments was introduced in python 3.8 and is used in einops 0.7.0, while the esm-fold environment uses python 3.7. Reverting to einops version 0.6.1 fixes this, as referenced in #626.