ADL: anchored ligand and bugs in code

Sergio Wong swong at mccammon.ucsd.edu
Fri Oct 5 13:22:13 PDT 2007


Dear autodock users;

     I'm wondering if there are users fairly familiar with the autodock 
code.  In my current application, I wish to keep part of my ligand fixed 
(relative to the protein) because it chelates a metal ion in the active 
site, and at the same time allow for exploration of some torsions. 
Setting the translational and rotational step sizes to zero failed 
to achieve this result.

     So, I turned to the code.  There I commented out the following lines 
of code from the qtrasform function (in qtransform.cc):

//        tcoord[a][X] = tmp.x;
//        tcoord[a][Y] = tmp.y;
//        tcoord[a][Z] = tmp.z;
  (lines 122-125)

In addition, I also commented out the following lines from 
the mkNewState.cc file.


//    now->T.x = last->T.x + (change->T.x = random_pm( trnStep ));
//    now->T.y = last->T.y + (change->T.y = random_pm( trnStep ));
//    now->T.z = last->T.z + (change->T.z = random_pm( trnStep ));

(lines 62-65)

       // qmultiply( &(now->Q), &(last->Q), &(change->Q) );
(line 99)

As far as I can tell, that avoids the "representation" from thinking it 
rotated and keeps the actual coordinates from being rotated (as a rigid 
body) or translated.

This apppears to work.  The ligand anchor remains fixed, while the 
torsions I want to explore are flexible.  At this point I just want to 
check with anyone who is familiar with the code to make sure I didn't miss 
anything.  Just because it seems to work, doesn't mean it really is 
working properly.

On another point, I'm also using flexible residues.  In the final log 
fine, there is a huge term:

USER    (2) Final Total Internal Energy     =   +7.84e+04 kcal/mol
USER        Internal Energy Ligand          =   +0.18 kcal/mol
USER        Internal Energy Receptor        =   +7.84e+04 kcal/mol

After some tracking down, I figured out it comes from the following 
function in calculateEnergies.cc


     if (B_have_flexible_residues) {
         // computing trilinear-interpolated energies from atom = 
true_ligand_atoms to atom < true_ligand_atoms
         // gives the intramolecular energy within the protein
         // we can ignore the elec_total and emap_total breakdown here
         eb.e_intra_moving_fixed_rec = trilinterp( true_ligand_atoms, 
natom, tcoord, charge, abs_charge, type, map,
                              info, 
B_outside?SOME_ATOMS_OUTSIDE_GRID:ALL_ATOMS_INSIDE_GRID,
                              ignore_inter, elec, emap,
                              NULL, NULL);

which clearly depends on the presence of flexible residues.  Does anyone 
have any ideas on why this term is so large?  I get slightly different, 
but consistently large numbers for the Internal Energy Receptor term.

Thanks

-Sergio



More information about the autodock mailing list