Re: [AMBER] [Amber] Imaginary Frequencies from nmode()

From: Guqin Shi <>
Date: Tue, 15 Dec 2015 16:51:27 -0500

Hi David,

thank you for the response. I didn't see that until now, sorry about that!

For the NAB minimization part, I used xmin() with method 2 and method 3.

struct xmin_opt xo;
molecule m;
int natm;
float xyz[dynamic], fret, grad[dynamic];
float energy, grms;


xo.maxiter = 30000;
xo.grms_tol = 0.001000;
xo.print_level = 1;
xo.method = 2;
xo.ls_maxatmov = 0.15;

m = getpdb("pdb_path");
natm = m.natoms;
allocate xyz[3*natm]; allocate grad[3*natm];

mm_options("cut=999.0, ntpr=1, nsnb=99999, diel=C, gb=1, dielc=1.0");
mme_init(m, NULL, "::Z", xyz, NULL);



For the Newton(), I tried before. It stuck somewhere I believe and never
really be able to get to 10^-12. Actually, I asked this question before
originally with Newton() minimization: (Thank you for your kindly
response at that time!) (same topid. Just cannot find
one that have all the replies...)

So anyway, I dumped Newton() minimization and adopted xmin() because it was
not really necessary to minimize to 10^-12.

A little update since the first time I asked about nmode() imaginary
frequencies. I minimized frames to 10^-5 (stricter tolerance for grms) and
failed ones go to 10^-4, and 10^-3, and eventually 10^-2. Then did the
nmode(). Didn't eliminate imaginary frequencies of course. But the mean
entropy is kinda almost the same for "complex" and "ligand", respectively
(better in standard deviation, though). Haven't got data yet from
"receptor" so I don't know how deltaS would change. If still very close, I
might just minimize to 10^-3 or 10^-2. But it's true as you mentioned, more
than 2500 frames might also be the reason behind.



2015-12-12 16:32 GMT-05:00 David A Case <>:

> On Tue, Dec 08, 2015, Guqin Shi wrote:
> >
> > I've posted before because of imaginary frequencies seen in nmode()
> output
> > when i was doing normal mode analysis. I was suggested to check the
> "actual
> > printed frequencies" to find out which frequency is "imaginary". But I
> > didn't find a way to check the actual frequencies.. at least not in
> nmode()
> > output...?
> Make sure you set "eigp" in the nmode() call to the number of
> eigenvalue/eigenvector pairs you want. Results will go to an output file
> called "vecs". Look for lines with "***", to find the frequencies in cm-1.
> Imaginary frequencies will be printed as negative values.
> > and add some options?
> >
> > Another problem came out after I carefully checked my results. I used
> > xmin() in nab to minimize protein-ligand complex. I set grms to 0.001.
> Out
> > of 2800+ frames, around 50 cannot be minimized to 0.001. I had to
> elevated
> > grms to 0.01 and that worked out for these 50 frames. Problem is, there's
> > intersection of these 50 frames and frames with more than 2 imaginary
> > frequencies from nmode()... Previously I was suggested that I might need
> a
> > stricter grms but apparently it wouldn't work out... My case is a 100
> > residue protein, majority is beta-sheet but with quite a few loops.
> Anybody
> > had met similar problem before...? Any tips or suggestion..? Thanks a
> lot!!!
> We need details about how you did the minimization. Have you used the
> newton() procedure from NAB.
> Note that 2800 frames is likely to be way more than you need. Normal modes
> are rather insensitive to the details of the geometry (assuming you are
> sampling the folded region), and many fewer nmode() runs are
> required...try a
> few and check your convergence.
> ...good luck...dac
> _______________________________________________
> AMBER mailing list

Guqin SHI
The Ohio State University
College of Pharmacy
500 W. 12th Ave.
Columbus, OH, 43210
AMBER mailing list
Received on Tue Dec 15 2015 - 14:00:03 PST
Custom Search