Hello! As a newbie to smina, who has recently "upgraded" from vina, I have run into a problem with the format of the docking output file. When choosing the PDB format (--out bla.pdb), the resulting multi-model PDB is incorrectly formatted: each MODEL is terminated by an END (as well as an ENDMDL) record. Programs that adhere strictly to the PDB format definition (e.g., VMD) will therefore stop reading after the first model. (Other visualisers, e.g., Chimera, seem more liberal, and read to the end of the file regardless.)
These PDB files identify themselves as being written by OpenBabel 2.4.90, so perhaps this error is actually for the OB developers to deal with. I tried some multi-frame file conversions with with OB 2.4.1 (which according to their site is the latest stable version) and got correctly formatted multi-model PDBs out.
Also, the multi-model PDBQT files produced by smina are fine.
Best wishes
Hans
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I can reproduce this, but find it perplexing since we explicitly tell openbabel not to do it (call SetLast(false) on the OBConversion object). When I can find the time I'll try to look through the code, but I suspect the issue is within openbabel in which case a smina update wouldn't be helpful.
In the meantime I'd strongly recommend not using PDB files to store ligand date. They don't include things like bond orders or formal charges and you will quickly end up with broken ligands. SDF is much better.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello! As a newbie to smina, who has recently "upgraded" from vina, I have run into a problem with the format of the docking output file. When choosing the PDB format (--out bla.pdb), the resulting multi-model PDB is incorrectly formatted: each MODEL is terminated by an END (as well as an ENDMDL) record. Programs that adhere strictly to the PDB format definition (e.g., VMD) will therefore stop reading after the first model. (Other visualisers, e.g., Chimera, seem more liberal, and read to the end of the file regardless.)
These PDB files identify themselves as being written by OpenBabel 2.4.90, so perhaps this error is actually for the OB developers to deal with. I tried some multi-frame file conversions with with OB 2.4.1 (which according to their site is the latest stable version) and got correctly formatted multi-model PDBs out.
Also, the multi-model PDBQT files produced by smina are fine.
Best wishes
Hans
I can reproduce this, but find it perplexing since we explicitly tell openbabel not to do it (call SetLast(false) on the OBConversion object). When I can find the time I'll try to look through the code, but I suspect the issue is within openbabel in which case a smina update wouldn't be helpful.
In the meantime I'd strongly recommend not using PDB files to store ligand date. They don't include things like bond orders or formal charges and you will quickly end up with broken ligands. SDF is much better.
I thought this looked familiar. Jocelyn fixed this in openbabel a few years ago:
https://github.com/openbabel/openbabel/pull/332
Sweet! Looks like there is an easy fix then. Thanks also for your tip regarding SDF vs. PDB!
Actually, looking at it now, OBConversion::Write overwites the isLast setting so a change is needed in smina as well, which I've pushed.