Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support of 1D, 2D and 3D molecular structures #167

Open
FanwangM opened this issue Apr 9, 2022 · 3 comments
Open

Add support of 1D, 2D and 3D molecular structures #167

FanwangM opened this issue Apr 9, 2022 · 3 comments

Comments

@FanwangM
Copy link
Collaborator

FanwangM commented Apr 9, 2022

This is a long-term goal and it's mentioned in theochem/Selector#55.

Do you mean having 1D (SMILES), 2D or 3D structures as input for Procrustes, and then Procrustes would compute the similarities between the molecules?
I am thinking of having such functionality as a tools module. What do you think? @PaulWAyers

@PaulWAyers
Copy link
Member

I think having a tool for 3D structure comparison is sensible. When the number/type of atoms are not the same, however, it is more complicated (but could be done from graph similarity (2D) or fingerprint similarity (1D)). But I think as a Procrustes tool, only 3D similarity and (maybe) 2D (adjacency matrix) similarity make sense.

It may be that some of the tools are better added as utilities for DiverseSelector.

@FarnazH
Copy link
Member

FarnazH commented May 30, 2022

We have examples among the existing notebooks for comparing 3D (using Cartesian coordinates loaded by IOData) and 2D structures (based on user-specified adjacency matrices; this can also be provided from RDKit, and we can update the example to show that) using procrustes functionality; see https://github.com/theochem/procrustes/tree/master/doc/notebooks. @PaulWAyers and @fwmeng88, can you please clarify the scope of this issue?

As we discussed within the context of DiverseSelector, it's best not to add these utilities/wrappers to our various packages. It's best to demonstrate how our packages can be used in conjunction with external libraries (e.g., IOData and RDKit) which are meant to generate structures, fingerprints, etc.

@PaulWAyers
Copy link
Member

I'm thinking about a utility function; it may be that it belongs in IOData or somewhere else. But we need to be able to compare molecules (in bulk, not via a notebook). In this case, I'm not sure that there is need for IOData or RDKit; one reads in a list of atomic numbers and their positions and processes directly. Probably we should discuss this now.

For 1D or 2D I don't see the need, right now, for stand-alone Python functions: Notebook-style examples would suffice I think.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants