Open frgoe003 opened 2 days ago
Hi @frgoe003 At present, the supported types of elements are very limited. They only have a defined covalent radius if they have an AutoDock atom type for receptor preparation. The covalent radii were put in as a dictionary (not from the periodic table module) so it’s always possible to allow more elements, but the same time we will need to register the atom type. Overall it’s technically possible to bypass it.
Currently unsupported elements can’t be automatically ignored by -a. But you could delete them by argument delete_residues.
Understood, thanks! What would be required to register an atom type? Since quite common metals are missing, it would be nice to add them. Happy to help!
Hi @frgoe003 To bypass the element check, you could start from https://github.com/forlilab/Meeko/blob/07a38f8bac4aa9eef4ef30aa8e67475b15d517aa/meeko/utils/rdkitutils.py#L254
Then if you want to do receptor preparation, I think the additional elements need to be registered in here also https://github.com/forlilab/Meeko/blob/07a38f8bac4aa9eef4ef30aa8e67475b15d517aa/meeko/data/params/ad4_types.json
There might be other things to edit if you want to do this by changing the default parameter file (or alternatively in Python, there's an entry to input additional parameters). But unlike ligand preparation, it's not very straightforward to have metals and custom types in receptor preparation.
Could you provide some PDB IDs that you would be interested in (for receptor preparation)? There might be other complications if the metals are part of a residue and need monomer mapping. But please keep this discussion open and we can consider it as an enhancement / feature in future
Last but not least, if you only want a PDBQT file with the metal ions, the quickest way would be to insert the metal atom line directly and assign an integer charge. Then depending on the docking engines or next tasks you want to perform on the structure, you can pass the additional parameters in different ways (it might not be necessary to register the parameters and types in Meeko, although with the parameters
Thanks @rwxayheee! An example system I'm looking at is 8J3C.
I added the covalent radii in Meeko/meeko/utils/rdkitutils.py and registered them in Meeko/meeko/data/params/ad4_types.json, but now it fails to build the template (see below).
I would add the metal ion directly to the PDBQT File, but receptor preparation raises an error with these metals present. Of course I could remove them before the preparation, but it would be nice to have native support with Meeko.
I'm using the cli to prepare metalloproteins for docking, however, it seems to have issues with some metals:
RuntimeError: Element Na doesn't have an implemented covalent radius, which was required for the perception of intermolecular bonds
I encounter this error for a couple elements like Na, Co, Ni, Pt, Yb and K.It seems meeko uses the rdkit periodic table module to get the radii. Is there a way to bypass it or use a dummy value? Or maybe it could be added to be considered under the
--allow_bad_res
flag.