I converted an .sdf file containing around 50,000 anti-viral agents to individual .pdb files using OpenBabel. However, when I tried opening the .pdb files with Autodock I kept getting the error below. What do you think is causing the error.

Thank you for your time and patience.

Error Message:

“ Error pasing the following line in pdb: HETATM 1 C UNL 1 52355.00975659.051 0.000 1.00 0.000 ."

enter image description here

  • $\begingroup$ You have a firewall issue, it is needing to connect outside your computer. $\endgroup$ – M__ Jun 18 '20 at 16:59
  • $\begingroup$ I have added autodock.exe and autogrid.exe as exceptions to my firewall and yet I am still facing the same issue. Here’s is exact the error message, “ Error pasing the following line in pdb: HETATM 1 C UNL 1 52355.00975659.051 0.000 1.00 0.000 ." What do you think I should do to overcome the error. Thank you. $\endgroup$ – Shahbaaz Jun 18 '20 at 17:59
  • $\begingroup$ Well at least it is now an incomprehensible error - but it still doesn't work :-( .. some of the pdb gurus are needed here, its a very ancient format BTW. $\endgroup$ – M__ Jun 18 '20 at 18:12

A PDB file has strict spacing rules as documented here. The coordinates should be:

31 - 38       Real(8.3)      x             Orthogonal coordinates for X.
39 - 46       Real(8.3)      y             Orthogonal coordinates for Y.
47 - 54       Real(8.3)      z             Orthogonal coordinates for Z.

So trying this on your line:

'HETATM 1 C UNL 1 52355.00975659.051 0.000 1.00 0.000'[30:39]

I get 9.051 0., which is not a number.

The whole line is formatted incorrectly however. So as you say you are using Autodock why not pass a mol2 to prepare_ligand4.py instead which is an acceptable format?

Alternatively, you could convert your multi-entry sdf to pdb files via RDKit in Python:

suppl = Chem.SDMolSupplier(sdfile)
for mol in suppl:
      # mol = Chem.AddHs(mol) # has hydrogens?
      # AllChem.EmbedMolecule(mol) # is 3D?
      AllChem.ComputeGasteigerCharges(m) # sdfs do not have partial charges
      Chem.MolToPDBFile(m, f"{mol.GetProp('_Name')}.pdb")
  • $\begingroup$ Hello Mr. Ferla, Thank you for getting back to me. Is there any option in Open Babel that will let me make the required changes so that the spacing rules aren't violated. Best Regards, Shahbaaz. $\endgroup$ – Shahbaaz Jun 19 '20 at 16:52
  • $\begingroup$ @Shahbaaz , amended. Parenthetically no need for formalities. Also @ plus username is generally the preferred way to address folk here, you might get titles wrong ;) . $\endgroup$ – Matteo Ferla Jun 19 '20 at 17:25
  • $\begingroup$ Also, this other Q about Autodock protocol may be useful: bioinformatics.stackexchange.com/questions/11471/… $\endgroup$ – Matteo Ferla Jun 20 '20 at 11:54
  • $\begingroup$ Thanks a ton for the help $\endgroup$ – Shahbaaz Jun 20 '20 at 17:01
  • $\begingroup$ Good morning @Matteo Ferla Can you briefly summarize how I can use prepare_ligand4.py or RDKit. I have looked for tutorials online but couldn't come across any. Thank you. $\endgroup$ – Shahbaaz Jun 22 '20 at 10:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.