BioinfoMachineLearning / EnQA

A 3D-equivariant neural network for protein structure accuracy estimation
GNU General Public License v3.0
18 stars 7 forks source link

'.ronota version 1.20 command 'get-balls-from-atoms-file' exit error: Failed to read line ' #6

Closed pengzhangzhi closed 1 year ago

pengzhangzhi commented 1 year ago

Hi, I ran your example cmd python EnQA-MSA.py --input example/enqa-msa/1A09A.pdb --output example/output/ and faced up with an error about ronota.

python EnQA-MSA.py --input example/enqa-msa/1A09A.pdb --output example/output/
2023-02-12T14:52:04:398510 | START      | Start building S-GCN features
2023-02-12T14:52:06:900755 | INFO       | Checking and preparation took 0.25 seconds
'.ronota version 1.20 command 'get-balls-from-atoms-file' exit error: Failed to read line '

By debugging your code, I found the exact command to run ronota is:

cat example/output/graph/model.pdb | utils/SGCN/bin/voronota-linux get-balls-from-atoms-file --radii-file utils/SGCN/metadata/voronota_radii.txt --annotated > example/output/temp/balls

I managed to make ronota work by removing --radii-file utils/SGCN/metadata/voronota_radii.txt. The cmd then is cat example/output/graph/model.pdb | utils/SGCN/bin/voronota-linux get-balls-from-atoms-file --annotated > example/output/temp/balls.

I guess the bug is caused by:

the flag --radii-file utils/SGCN/metadata/voronota_radii.txt.

Then, I got another error:

2023-02-13T16:21:28:017572 | START      | Start building S-GCN features
2023-02-13T16:21:31:109178 | INFO       | Graph already computed
utils/SGCN/bin/sh-featurizer-linux: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by utils/SGCN/bin/sh-featurizer-linux)
utils/SGCN/bin/sh-featurizer-linux: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by utils/SGCN/bin/sh-featurizer-linux)
utils/SGCN/bin/sh-featurizer-linux: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by utils/SGCN/bin/sh-featurizer-linux)
utils/SGCN/bin/sh-featurizer-linux: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by utils/SGCN/bin/sh-featurizer-linux)
utils/SGCN/bin/sh-featurizer-linux: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by utils/SGCN/bin/sh-featurizer-linux)
Traceback (most recent call last):
  File "EnQA-MSA.py", line 28, in <module>
    one_hot, features, pos_data, sh_adj, el = create_basic_features(args.input, args.output)
  File "/user/taosheng/pzz/github/EnQA/feature.py", line 203, in create_basic_features
    sh_adj = np.load(os.path.join(graph_path, SH_NAME))
  File "/user/taosheng/anaconda3/envs/antibody/lib/python3.8/site-packages/numpy/lib/npyio.py", line 405, in load
    fid = stack.enter_context(open(os_fspath(file), "rb"))

I have set execution permission for utils/lddt and files under utils/SGCN/bin by chmod 777 utils/SGCN/bin/*.

Do you have any ideas of what went wrong?

Best

pengzhangzhi commented 1 year ago

I have reported the same issue at https://github.com/kliment-olechnovic/voronota/issues/1

chrischen1 commented 1 year ago

Hi, can you list the environments you are using? I just tested it on a fresh Ubuntu 20.04.3 LTS with Python 3.8.10 and can pass the feature generation step:

python3 EnQA-MSA.py --input example/enqa-msa/1A09A.pdb --output example/output/
2023-02-14T17:10:12:151346 | START      | Start building S-GCN features
2023-02-14T17:10:13:346507 | INFO       | Checking and preparation took 0.11 seconds
2023-02-14T17:10:15:564415 | INFO       | Runnning of Voronota took 2.22 seconds
2023-02-14T17:10:15:757976 | INFO       | Computing of covalent bonds took 0.19 seconds
2023-02-14T17:10:15:762740 | INFO       | Correction of matrices took 0.00 seconds
2023-02-14T17:10:15:769421 | INFO       | Computing of sequence-separation matrix took 0.00 seconds
2023-02-14T17:10:15:813097 | INFO       | Output atom-level files reformatting took 0.04 seconds
Downloading: "https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t6_8M_UR50D.pt" to /home/chen/.cache/torch/hub/checkpoints/esm2_t6_8M_UR50D.pt
Downloading: "https://dl.fbaipublicfiles.com/fair-esm/regression/esm2_t6_8M_UR50D-contact-regression.pt" to /home/chen/.cache/torch/hub/checkpoints/esm2_t6_8M_UR50D-contact-regression.pt
pengzhangzhi commented 1 year ago

I now have identified that the problem is caused by the /lib64/libstdc++.so.6. Since the tool is already compiled, even though I append another lib path, the sh-featurizer-linux can not find the new libstdc++.so.6. I have changed my os, and the problem is gone. But I would like to note that this problem still exists.

chrischen1 commented 1 year ago

Yes, the current feature generation is based on a pre-compiled featurizer from SGCN. Unfortunately it currently only supports mac-os and limited distributions of Linux systems. We are considering the option to introduce feature generation without pre-compiled binary in future versions.

pengzhangzhi commented 1 year ago

I had an email conversation with the SGCN's authors for their source code. I will update it to your repo : )