DeepGraphLearning / GearNet

GearNet and Geometric Pretraining Methods for Protein Structure Representation Learning, ICLR'2023 (https://arxiv.org/abs/2203.06125)
MIT License
263 stars 27 forks source link

error in mc_esm_gearnet #20

Open hxu105 opened 1 year ago

hxu105 commented 1 year ago

Howdy, thank u for ur awesome work in Enhancing Protein Language Models with Structure-based Encoder and Pre-training. I am running the pretaining experiment now, and I am facing an issue of "Can't find atom_feature in features.atom". I paste the error statement below.

image

It seems like it cannot recognize the atom_feature: null or bond_feature: null. Do I need to change the source code for implementing these two arguments?

Any help will be grateful!

Oxer11 commented 1 year ago

Hi! Thanks for your interest in our work.

The config atom_feature: null and bond_feature: null mean that we want to set atom_feature=None and bond_feature=None so as to avoid the contruction of atom and bond features. This should be recognized by yaml library. It's quite weird that your code tried to find atom_feature in features.atom. Have you ever changed the config file? If not, maybe you can first print the value of cfg.dataset.atom_feature in the pretrain.py.

hxu105 commented 1 year ago

Hello, thanks for your response. I checked the atom_feature in the config, and it prints None

image

I also had one question in lazy mode, lazy mode is to load pdb file each time we call get_item function, however, the init will set up the self.data by loading the pickle file, so proteins have already existed in our dataset and taken some CPU memory. Why does lazy mode claim to save CPU cost?

Oxer11 commented 1 year ago

This is weird. Have you faced the same issue when pre-training with GearNet-Edge instead of ESM-GearNet? Could you share the full log file with me?

I'm sorry that I haven't considered the lazy mode for CPU. Typically, we assume there is no .pkl file when using lazy mode. So maybe you can try to remove the .pkl file and the lazy mode should work.