keiserlab / e3fp

3D molecular fingerprints
GNU Lesser General Public License v3.0
121 stars 33 forks source link

A way to convert back finger prints to 3D structures #27

Closed aghanbar closed 6 years ago

aghanbar commented 6 years ago

Is there a way to reconstruct 3D structures (as in sdf or mol2 files) from the fingerprints generated by the program?

sethaxen commented 6 years ago

Unfortunately, this is not currently possible. The hash function used to map a neighborhood to an "on" bit is a one-way compression algorithm, as is the folding. The only way to do what you're suggesting would be to first invert the folding, then invert the hash function to recover the list of tuples, find a way to invert the stereoidentification process to recover a neighborhood, and then mutually resolve all correlated neighborhood constraints to recover a conformer. Each of these steps is highly nontrivial, and we currently don't have any plans to tackle these. I could be wrong, but to my knowledge, an efficient approach for this doesn't even exist for 2D fingerprints like ECFP.

pyeguy commented 6 years ago

in many ways this is a feature of fingerprints as opposed to a bug. you can pass around a meaningful representation of the molecular structure without revealing its exact chemical composition. This can be helpful when there are intellectual property concerns about sharing data.