arneschneuing / DiffSBDD

A Euclidean diffusion model for structure-based drug design.
MIT License
339 stars 74 forks source link

Runerror: Dimensional mismatch #4

Closed WoohyunSonTMS closed 1 year ago

WoohyunSonTMS commented 2 years ago

I got this error when using ”joint“ mode: ''' File "/.../DiffSBDD-main/equivariant_diffusion/en_diffusion.py", line 309, in noised_representation z_t_lig = alpha_t[lig_mask] xh_lig + sigma_t[lig_mask] eps_lig RuntimeError: The size of tensor a (14) must match the size of tensor b (13) at non-singleton dimension 1 '''

arneschneuing commented 2 years ago

Is it possible that the dataset parameter in your config file does not match the processed dataset you are using? It should be one of the options specified in constants.py ('bindingmoad', 'crossdock_full', or 'crossdock').

Harry4FunResearch commented 1 year ago

I got similar error:

File "DiffSBDD/equivariant_diffusion/en_diffusion.py", line 370, in forward self.noised_representation(xh_lig, xh_pocket, ligand['mask'], File "DiffSBDD/equivariant_diffusion/en_diffusion.py", line 310, in noised_representation z_t_pocket = alpha_t[pocket_mask] * xh_pocket + \ RuntimeError: The size of tensor a (13) must match the size of tensor b (23) at non-singleton dimension 1

arneschneuing commented 1 year ago

We usually see this error when the pre-processed dataset doesn't match the selected pocket representation (because we consider more amino acid types than atom types). If process_bindingmoad.py is executed with the --ca_only flag, for example, you should specify pocket_representation: 'CA' in your config file. Otherwise, use pocket_representation: 'full-atom'. Please let me know if this doesn't solve the issue.

Best, Arne

Harry4FunResearch commented 1 year ago

Yes, it works perfectly. Thank you Arne for the help!

Best