isayevlab / Auto3D_pkg

Auto3D generates low-energy conformers from SMILES/SDF
MIT License
148 stars 34 forks source link

How to generate multiple conformers? #35

Closed dkoes closed 8 months ago

dkoes commented 1 year ago

Describe the bug I have tried setting --k 25 and --max_confs 25 and I still only get a single conformer per a smile.

To Reproduce Steps to reproduce the behavior: ~/git/Auto3D_pkg/auto3D.py rdrefined.smi --k 25 --max_confs

rdrefined.smi contains all the smiles from PDBbind2020 refined set. rdrefined.smi.gz

Expected behavior More than one conformer per smile.

System information:

Additional context Add any other context about the problem here.

dkoes commented 1 year ago

This problem is because the SMILES names have a period in them. The period is there because you wouldn't let me have an underscore. I recommend using a regular expression to extract the conformer id and let the name be whatever (including containing spaces, underscores, and periods).

LiuCMU commented 1 year ago

Hi David, thanks for the comment and detailed feedback!

That's indeed something we need to improve.

For now, there is a utility function called replace_ to help to replace the underscores in SMILES names:

from Auto3D.utils import replace_

names = ['smi_1', 'smi-2', 'smi3']
new_names = [replace_(name) for name in names]
print(new_names)  # output: ['smi-1', 'smi-2', 'smi3']

The replace_ function returns a new name with underscores replaced by dashes, leaving all other characters unchanged.

LiuCMU commented 8 months ago

Hello @dkoes , just an update that I updated auto3d and it accepts any names now. Please let us know in case any additional issues. For now, I will close this issue. Thanks!