ccsb-scripps / AutoDock-GPU

AutoDock for GPUs and other accelerators
https://ccsb.scripps.edu/autodock
GNU General Public License v2.0
366 stars 101 forks source link

How to apply atom-atom potential to keep the distance between two atoms in a certain distance? #237

Closed tirear closed 10 months ago

tirear commented 10 months ago

Hello everyone,

I require to restrain some atom-atom distances within a long ligand. I found a tutorial page that showed how to restore the cyclic structure by applying a 12-2 pseudo-Lennard-Jones potential. The page is https://www.scripps.edu/olson/forli/autodock_flex_rings.html

I can reproduce a similar result by using AutoDock 4.2.6, but I cannot reproduce this with AutoDock-GPU 1.5.3 because the cyclic structure was not restored. I did some modifications to the following files and lines in order to use AutoDock-GPU 1.5.3. File: ligandG_protein.dpf (I removed or modified some unsupported parameters or values, and changed atom type from G to G0)

outlev 7                             # diagnostic output level
intelec                              # calculate internal electrostatics
seed 777                         # seeds for random generator
ligand_types A C G0 HD OA             # atoms types in ligand              <===
fld protein.maps.fld                 # grid_data_file
map protein.A.map                    # atom-specific affinity map
map protein.C.map                    # atom-specific affinity map
map protein.C.map                    # C map used in place of G atom map  <===
map protein.HD.map                   # atom-specific affinity map
map protein.OA.map                   # atom-specific affinity map
elecmap protein.e.map                # electrostatics map
desolvmap protein.d.map              # desolvation map
intnbp_r_eps 1.51 10.000042 12 2 G0 G0 # pseudo-LJ potential                <===
move ligandG.pdbqt                   # small molecule
about -0.6317 -19.9047 -5.6332       # small molecule center
tran0 random                         # initial coordinates/A or random
quat0 random                         # initial quaternion
dihe0 random                         # initial dihedrals (relative) or random
torsdof 8                            # torsional degrees of freedom
rmstol 2.0                           # cluster_tolerance/A
extnrg 1000.0                        # external grid energy
e0max 0.0 10000                      # max initial energy; max number of retries
ga_pop_size 350                      # number of individuals in population          <====
ga_num_evals 2500000                 # maximum number of energy evaluations
ga_num_generations 27000             # maximum number of generations
ga_elitism 1                         # number of top individuals to survive to next generation
ga_mutation_rate 0.02                # rate of gene mutation
ga_crossover_rate 0.8                # rate of crossover
ga_window_size 10                    # 
ga_cauchy_alpha 0.0                  # Alpha parameter of Cauchy distribution
ga_cauchy_beta 1.0                   # Beta parameter Cauchy distribution
set_ga                               # set the above parameters for GA or LGA
sw_max_its 300                       # iterations of Solis & Wets local search
sw_max_succ 4                        # consecutive successes before changing rho
sw_max_fail 4                        # consecutive failures before changing rho
sw_rho 1.0                           # size of local search space to sample
sw_lb_rho 0.01                       # lower bound on rho
ls_search_freq 0.26                  # probability of performing local search on individual  <====
set_sw1                              # set the above Solis & Wets parameters
unbound_model bound                  # state of unbound ligand
ga_run 10                            # do this many hybrid GA-LS runs 
analysis 

File: ligandG.pdbqt (Atom type G is changed to G0)

REMARK  8 active torsions:
REMARK  status: ('A' for Active; 'I' for Inactive)
REMARK    1  A    between atoms: CA_1  and  CG1_16 
REMARK    2  A    between atoms: CA4_5  and  CD1_19 
REMARK    3  A    between atoms: CA5_6  and  CD6_24 
REMARK    4  A    between atoms: CA6_7  and  OA6_8 
REMARK    5  A    between atoms: CB1_10  and  CG1_16 
REMARK    6  A    between atoms: CG1_16  and  CG2_17 
REMARK    7  A    between atoms: CD1_19  and  CD2_20 
REMARK    8  A    between atoms: CD5_23  and  CD6_24 
ROOT
HETATM    1  CA  UIN B 100      -0.836 -19.416  -5.633  1.00 14.80     0.060 A 
HETATM    2  CA2 UIN B 100      -1.107 -19.660  -4.252  1.00 15.60     0.297 A 
HETATM    3  OA2 UIN B 100      -0.740 -18.888  -3.392  1.00 16.70    -0.259 OA
HETATM    4  OA3 UIN B 100      -1.739 -20.789  -3.822  1.00 15.60    -0.279 OA
HETATM    5  CA4 UIN B 100      -2.102 -21.710  -4.813  1.00 14.80     0.066 A 
HETATM    6  CA5 UIN B 100      -1.873 -21.515  -6.185  1.00 14.50     0.006 A 
HETATM    7  CA6 UIN B 100      -1.225 -20.348  -6.586  1.00 15.00     0.087 A 
ENDROOT
BRANCH   1   8
HETATM    8  CG1 UIN B 100      -0.150 -18.136  -6.123  1.00 15.10     0.060 C 
BRANCH   8   9
HETATM    9  CB1 UIN B 100       1.343 -18.194  -5.904  1.00 14.90    -0.049 A 
HETATM   10  CB2 UIN B 100       2.114 -19.229  -6.504  1.00 13.10     0.008 A 
HETATM   11  CB3 UIN B 100       3.485 -19.305  -6.251  1.00 12.50     0.001 A 
HETATM   12  CB4 UIN B 100       4.107 -18.361  -5.420  1.00 13.40     0.000 A 
HETATM   13  CB5 UIN B 100       3.356 -17.334  -4.822  1.00 14.80     0.001 A 
HETATM   14  CB6 UIN B 100       1.984 -17.231  -5.060  1.00 13.90     0.008 A 
ENDBRANCH   8   9
BRANCH   8  15
HETATM   15  CG2 UIN B 100      -0.788 -16.840  -5.655  1.00 14.30     0.010 C 
HETATM   16  CG3 UIN B 100      -2.058 -16.453  -6.402  1.00 12.50     0.006 C 
ENDBRANCH   8  15
ENDBRANCH   1   8
BRANCH   7  17
HETATM   17  OA6 UIN B 100      -0.929 -20.077  -7.885  1.00 16.60    -0.359 OA
HETATM   18  HA6 UIN B 100      -0.487 -19.282  -8.158  1.00  0.00     0.217 HD
ENDBRANCH   7  17
BRANCH   6  19
HETATM   19  CD6 UIN B 100      -2.294 -22.551  -7.199  1.00 14.60     0.043 C 
BRANCH  19  20
HETATM   20  CD5 UIN B 100      -3.655 -22.309  -7.807  1.00 19.00     0.000 C 
HETATM   21  CD4 UIN B 100      -3.892 -20.915  -8.395  1.00 19.90     0.005 G0 
ENDBRANCH  19  20
ENDBRANCH   6  19
BRANCH   5  22
HETATM   22  CD1 UIN B 100      -2.806 -22.922  -4.257  1.00 15.60     0.065 C 
BRANCH  22  23
HETATM   23  CD2 UIN B 100      -3.037 -22.963  -2.765  1.00 17.60     0.002 C 
HETATM   24  CD3 UIN B 100      -1.831 -23.284  -1.906  1.00 19.60     0.005 G0 
ENDBRANCH  22  23
ENDBRANCH   5  22
TORSDOF 8

The command to perform AutoDock-GPU was:

autodock_gpu_128wi --import_dpf ligandG_protein.dpf --gbest 1 --resnam NEW --modpair G0:G0,1.51,10.000042,12,2 --lsmet sw --nrun 200 --psize 1500

My rank 1 result of AutoDock 4.2.6 is in the following picture URL: https://ibb.co/1MgbHPJ My rank 1 result of AutoDock-GPU 1.5.3 is in the following picture URL: https://ibb.co/cbCSkhQ

What should the correct way be?

diogomart commented 10 months ago

Hi,

Simply prepare your ligand with meeko: https://github.com/forlilab/Meeko

Macrocycle sampling is now fully integrated and enabled by default.

tirear commented 10 months ago

Hi,

Simply prepare your ligand with meeko: https://github.com/forlilab/Meeko

Macrocycle sampling is now fully integrated and enabled by default.

Thanks for the reply. Do you mean Meeko may generate the correct script or command line of custom atom-atom potential? My ligand is a long molecule without macrocycle. I am trying Meeko now.

tirear commented 10 months ago

I have just used Meeko to make the pdbqt file for the tutorial. Although the drug is docked with an opposite orientation, I think the restraint works. Thanks for helping!