denoptim-project / DENOPTIM

DENOPTIM is a software package for de novo design and virtual screening of functional molecules of any kind.
GNU Affero General Public License v3.0
35 stars 10 forks source link

SerConverter fails converting graphs to structures #45

Closed philippba89 closed 3 years ago

philippba89 commented 3 years ago

I am playing around with DENOPTIM and found an issue when using the SerConverter. It seems as if something goes wrong with the fragment space because the converted .sdf files are messed up. Using DENOPTIM GUI, 1st loading the fragment space and 2nd loading a .ser file works well, i.e. the structure of the molecule is reasonable.

I have this issue with my own fragments and also tested it with the PtCOLX2_FSE example/test provided in the project.

It would also be nice to have a feature in the GUI, that allows the conversion of all graphs at once.

marco-foscato commented 3 years ago

@philippba89 Thanks for reporting. I'm looking into this, but I want to be sure I understand what is the problem you have experienced. Could you give me an example of a "messed up" sdf file? The best would be to make me able to reproduce the issue with the PtCOLX2_FSE test case.

philippba89 commented 3 years ago

Hey marco-foscato, sorry for the misunderstanding. In let the test "PtCOLX2_FSE" run. Generally one obtains the resulting .sdf files in the Folder FSENUMBER...those are all fine. What I tried to do is to convert a .ser file in one of the sub-filders, e.g. "FSE-level_0" to a .sdf file.

As mentioned before, using the SerConverter to try this at the graph dg_10.ser. Therefor I added the following lines to the "input-parameters" file (which i copied to "PtCOLX2_FSE/FSE_run_13/FSE24022021030255/FSE-Level_0"):

SERCONVERTER

SERCONV-WORKDIR=./ SERCONV-INPFILE=dg_10.ser SERCONV-OUTFORMAT=SDF SERCONV-OUTFILE=dg_10.sdf

I simple run the script via" java -jar SerConverter.jar input-parameters"

The resulting dg_10.sdf is somehow not reasonable. If I directly open the dg_10.ser file with the GUI, the structure shown there is reasonable. I hope you can reproduce this error, or maybe I am doing something wrong...pls let me know :)

marco-foscato commented 3 years ago

OK, @philippba89, I think I got it. The molecular geometry you find in the dg_10.sdf shows some very wrong bond lengths and angles. This is because SerConverter is only meant to convert the serialized file containing a DENOPTIMGraph (i.e., the content of dg_10.ser) into and SDF file containing the same DENOPTIMGraph (i.e., the content of dg_10.sdf). This conversion is completely unrelated to how a DENOPTIMGraph (whether hosted in a serialized .ser file or in a .sdf file) is converted into a molecular geometry. In practice, the molecular geometry you see in the dg_10.sdf file is only the sum of the molecular geometries of all the fragments that are part of the graph.

That said, I agree it would be best to get the unrefined 3D geometry, i.e., a geometry where the 3D fragments are aligned according to their attachment point vectors. Therefore, I've added a new keyword, SERCONV-MAKE3DTREE, that asks SerConverted to produce SDF files that contain such unrefined geometry. Note that I say "unrefined" because there is no molecular modeling done on such geometry, so, while it is good enough for starting a conformational search, it is not an optimized geometry.

You find this fix in the latest release: https://github.com/denoptim-project/DENOPTIM/releases/tag/v2.2.4

Your suggestion was a very good, thanks!

marco-foscato commented 3 years ago

closed with https://github.com/denoptim-project/DENOPTIM/releases/tag/v2.2.4

philippba89 commented 3 years ago

Thank you so much, this was exactly what I was looking for!