AMBER Archive (2009)

Subject: Re: [AMBER] Xleap - solvatebox - counterions

From: David A. Case (case_at_biomaps.rutgers.edu)
Date: Fri Jan 30 2009 - 10:04:23 CST


On Fri, Jan 30, 2009, Arnaud wrote:

> I use xleap on amber10 package and I am quite surprise by some results.
> If I solvate (solvatebox test TIP3PBOX 10) my molecular system previously
> neutralized with Na+ counterions (addions test Na+ 0) the number of water
> residues added is 5824.
> If I solvate the same molecular system previously neutralized with K+, the
> number of water residues increase to 7846.
>
> With xleap on amber9 package, these values are different respectively 4674
> and 5183.

I don't have an answer to your question, but I think it is generally
preferable to use solvateBox first, then use addIons to replace some of
the solvent water molecules with ions. Maybe Tom Cheatham or Wei Zhang
have some good ideas here.

Also, you can try the following patch to
$AMBERHOME/src/leap/src/commands.c. This is in the current CVS tree,
but doesn't seem to be in the bugfixes for Amber10. But I'm not sure if
this is related or not.

Or, try sleap instead of leap.

...regards...dac

Index: commands.c
===================================================================
RCS file: /home/amber_cvs/cvsroot/amber11/src/leap/src/leap/commands.c,v
retrieving revision 10.0
retrieving revision 10.1
diff -c -r10.0 -r10.1
*** commands.c 15 Apr 2008 23:22:21 -0000 10.0
--- commands.c 16 Jul 2008 20:14:46 -0000 10.1
***************
*** 5144,5151 ****
          AtomSetFlags( aAtom, ATOMPOSITIONKNOWN );
      }
      dMinSize = dIonSize1;
      if ( uIon2 ) {
- dIonSize2 = 0.0;
          iUnknown = 0;
          lAtoms = lLoop( (OBJEKT)uIon2, ATOMS );
          for(i=0; aAtom = (ATOM)oNext(&lAtoms); i++) {
--- 5144,5151 ----
          AtomSetFlags( aAtom, ATOMPOSITIONKNOWN );
      }
      dMinSize = dIonSize1;
+ dIonSize2 = 0.0;
      if ( uIon2 ) {
          iUnknown = 0;
          lAtoms = lLoop( (OBJEKT)uIon2, ATOMS );
          for(i=0; aAtom = (ATOM)oNext(&lAtoms); i++) {
***************
*** 5181,5186 ****
--- 5181,5193 ----
      VP0(( "Adding %d counter ions to \"%s\" using 1A grid\n",
                  iIon1 + iIon2, sAssocName( aaArgs[0] )));
  
+ if (iIon1 + iIon2 > 5) {
+ const double xx = (double) (iIon1 + iIon2);
+ const double ff = exp(log(xx + 1.0)/3.0);
+ dMinSize = (dIonSize1 > dIonSize2 ? dIonSize1 : dIonSize2);
+ dMinSize *= (ff > 1.0 ? ff : 1.0);
+ }
+
      if ( iIon1 + iIon2 == 0 )
          return(NULL);
  
***************
*** 6253,6259 ****
      lAtoms = lLoop((OBJEKT) uUnit, ATOMS );
      while ( aAtom = (ATOM)oNext(&lAtoms) ) {
          if ( bAtomFlagsSet( aAtom, ATOMSELECTED ) ) {
! bBuildFlipChiralityFor( uUnit, aAtom );
          }
      }
    
--- 6260,6266 ----
      lAtoms = lLoop((OBJEKT) uUnit, ATOMS );
      while ( aAtom = (ATOM)oNext(&lAtoms) ) {
          if ( bAtomFlagsSet( aAtom, ATOMSELECTED ) ) {
! bBuildFlipChiralityFor((CONTAINER) uUnit, aAtom );
          }
      }
    

_______________________________________________
AMBER mailing list
AMBER_at_ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber