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__
    Commented Jun 18, 2020 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
    Commented Jun 18, 2020 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__
    Commented Jun 18, 2020 at 18:12

1 Answer 1


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
    Commented Jun 19, 2020 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$ Commented Jun 19, 2020 at 17:25
  • $\begingroup$ Also, this other Q about Autodock protocol may be useful: bioinformatics.stackexchange.com/questions/11471/… $\endgroup$ Commented Jun 20, 2020 at 11:54
  • $\begingroup$ Thanks a ton for the help $\endgroup$
    – Shahbaaz
    Commented Jun 20, 2020 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
    Commented Jun 22, 2020 at 10:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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