forlilab / Meeko

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

GPF file prepared by Meeko #87

Open vsheg opened 4 months ago

vsheg commented 4 months ago

Hi, I'm using Meeko's mk_prepare_receptor.py (v0.5.0 from PyPI) and I've noticed that in a generated GPF file some atom types (Cl and CL and Br and BR) are duplicated.

receptor.gpf ``` parameter_file boron-silicon-atom_par.dat npts 106 106 106 gridfld receptor.maps.fld spacing 0.375 receptor_types A NA C N HD P OA SA ligand_types HD C A N NA OA F P SA S Cl CL Br BR I Si B receptor receptor.pdbqt gridcenter 45.423 41.112 40.872 smooth 0.500 map receptor.HD.map map receptor.C.map map receptor.A.map map receptor.N.map map receptor.NA.map map receptor.OA.map map receptor.F.map map receptor.P.map map receptor.SA.map map receptor.S.map map receptor.Cl.map map receptor.CL.map map receptor.Br.map map receptor.BR.map map receptor.I.map map receptor.Si.map map receptor.B.map elecmap receptor.e.map dsolvmap receptor.d.map dielectric -42.000 ```

As I can see from AutoDock 4.2 User Guide, parameters for Br and BR, Cl and CL are the same.

❓: Why Meeko generates output with duplicated atom types?


Also, I have strange behaviour with AutoGrid4. When I run it with GPF generated by Meeko, I see a strange error

autogrid4 -p receptor.gpf receptor.pdbqt 
Output with the error ``` ... Output Grid Map 12: receptor.CL.map GPF> map receptor.Br.map Output Grid Map 13: receptor.Br.map GPF> map receptor.BR.map Output Grid Map 14: receptor.BR.map GPF> map receptor.I.map autogrid4: ERROR: Too many "map" keywords (15); the "ligand_types" command declares only 14 atom types. Remove a "map" keyword from the GPF. autogrid4: ERROR: Too many "map" keywords (15); the "ligand_types" command declares only 14 atom types. Remove a "map" keyword from the GPF. autogrid4: Unsuccessful Completion. ```

I figured out, that when I decrease the number of atom specific types and maps to ≤14, AutoGrid4 works fine. I tried with AutoGrid from AutoDock Suite (Win) and from Bioconda (macOS).

When I use the patched version provided by WaterKit (Linux), everything works fine with any number or atom types.

❓: Is it expected behaviour of AutoGrid4 to not accept GPF with 15+ ligand atom types?


I would really appreciate it if you help me to understand this. Thank you

rwxayheee commented 4 months ago

Hi @vsheg

Is it expected behaviour of AutoGrid4 to not accept GPF with 15+ ligand atom types?

This might have something to do with a hard limit of 16 for the total number of maps (1 desolvation + 1 electrostatic + at most 14 ligand affinity maps). In autogrid4, the number 16 is set in src/autodock/autocomm.h:

#define MAX_MAPS_PAD 0       // Use this to pad MAX_MAPS to a power of 2, for presumably-faster memory access
#define NUM_NON_VDW_MAPS 2   // Number of electrostatic and desolvation maps
#define MAX_ATOM_TYPES (16 - NUM_NON_VDW_MAPS)    /* Maximum number of atom types set to keep MAX_MAPS a power of 2 */
#define MAX_MAPS (MAX_ATOM_TYPES + NUM_NON_VDW_MAPS + MAX_MAPS_PAD) /* Maximum number of energy maps        */
                            /* 0,1,2,... are for atomic interactions          */
                            /* last two are for electrostatics and desolvation */

#define VECLENMAX    16     /* For AVS fld files...     

This number is increased to 50 in the patched version with WaterKit

vsheg commented 4 months ago

@rwxayheee Thank you for the detailed explanation, now I understand how limits work