forlilab / Meeko

Interfacing RDKit and AutoDock
GNU Lesser General Public License v2.1
182 stars 43 forks source link

RuntimeError("Molecule not OK, refusing to write PDBQT\n\nLOG:\n%s" % self.log) #16

Closed AKBforever closed 2 years ago

AKBforever commented 2 years ago

I want to transfer an sdf file of a molecule (PubChem CID: 101095070) to a pdbqt file,but mk_prepare_ligand.py did not work.

The sdf file of 101095070, which was transferred to 3D by MOE, is: 101095070 MOE2020 3D

26 24 0 0 1 0 0 0 0 0999 V2000 2.1840 -0.8960 0.1650 S 0 0 0 0 0 0 0 0 0 0 0 0 8.4960 -1.4980 2.1000 Na 0 3 0 0 0 0 0 0 0 0 0 0 1.0770 0.1120 -0.1200 O 0 0 0 0 0 0 0 0 0 0 0 0 2.2500 -1.1240 1.5630 O 0 0 0 0 0 0 0 0 0 0 0 0 2.0560 -2.0330 -0.6730 O 0 0 0 0 0 0 0 0 0 0 0 0 9.4960 0.1660 1.2030 O 0 5 0 0 0 0 0 0 0 0 0 0 7.3940 -0.0910 0.5940 N 0 0 0 0 0 0 0 0 0 0 0 0 5.0350 -0.6660 0.1490 C 0 0 3 0 0 0 0 0 0 0 0 0 3.6890 -0.0560 -0.3090 C 0 0 0 0 0 0 0 0 0 0 0 0 6.1990 0.2900 -0.1580 C 0 0 0 0 0 0 0 0 0 0 0 0 5.2900 -2.0450 -0.4850 C 0 0 0 0 0 0 0 0 0 0 0 0 8.5120 0.5710 0.5040 C 0 0 0 0 0 0 0 0 0 0 0 0 8.6950 1.7460 -0.3510 C 0 0 0 0 0 0 0 0 0 0 0 0 9.8510 2.4350 -0.4280 C 0 0 0 0 0 0 0 0 0 0 0 0 4.9710 -0.7800 1.2340 H 0 0 0 0 0 0 0 0 0 0 0 0 3.7670 0.0780 -1.3780 H 0 0 0 0 0 0 0 0 0 0 0 0 3.7040 0.9620 0.0490 H 0 0 0 0 0 0 0 0 0 0 0 0 5.9400 1.3050 0.1490 H 0 0 0 0 0 0 0 0 0 0 0 0 6.4350 0.2670 -1.2240 H 0 0 0 0 0 0 0 0 0 0 0 0 5.2680 -1.9700 -1.5740 H 0 0 0 0 0 0 0 0 0 0 0 0 4.5320 -2.7600 -0.1620 H 0 0 0 0 0 0 0 0 0 0 0 0 6.2660 -2.4250 -0.1820 H 0 0 0 0 0 0 0 0 0 0 0 0 1.0280 0.6800 0.6580 H 0 0 0 0 0 0 0 0 0 0 0 0 7.8700 2.0570 -0.9320 H 0 0 0 0 0 0 0 0 0 0 0 0 10.7010 2.1520 0.1390 H 0 0 0 0 0 0 0 0 0 0 0 0 9.9680 3.2820 -1.0520 H 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 0 0 0 0 1 4 2 0 0 0 0 1 5 2 0 0 0 0 1 9 1 0 0 0 0 3 23 1 0 0 0 0 6 12 1 0 0 0 0 7 10 1 0 0 0 0 7 12 2 0 0 0 0 8 9 1 0 0 0 0 8 10 1 0 0 0 0 8 11 1 0 0 0 0 8 15 1 0 0 0 0 9 16 1 0 0 0 0 9 17 1 0 0 0 0 10 18 1 0 0 0 0 10 19 1 0 0 0 0 11 20 1 0 0 0 0 11 21 1 0 0 0 0 11 22 1 0 0 0 0 12 13 1 0 0 0 0 13 14 2 0 0 0 0 13 24 1 0 0 0 0 14 25 1 0 0 0 0 14 26 1 0 0 0 0 M CHG 1 2 1 M CHG 1 6 -1 M END

And the error information was: _Traceback (most recent call last): File "/home/ubuntu/miniconda3/envs/vina/bin/mk_prepare_ligand.py", line 171, in ligand_prepared = preparator.write_pdbqt_string() File "/home/ubuntu/miniconda3/envs/vina/lib/python3.9/site-packages/meeko/preparation.py", line 213, in write_pdbqt_string raise RuntimeError("Molecule not OK, refusing to write PDBQT\n\nLOG:\n%s" % self.log) RuntimeError: Molecule not OK, refusing to write PDBQT

LOG: atom number 1 has None type, mol name: 101095070_

I noted that the first atom is S, so mk_prepare_ligand.py cannot recognize this atomtype?

sforli commented 2 years ago

The atom indexing is 0-based. The atom number 1 is the sodium (Na) for which there are no PDBQT parameters, so the file cannot be generated. (In general it is not a good practice to dock molecules in a salt form, unless you really know what you're doing).

I'm going to close the issue, but feel free to reopen it if you think there are other problems.

diogomart commented 2 years ago

Besides the Na, the 2D depiction is wrong in https://pubchem.ncbi.nlm.nih.gov/compound/101095070