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")