Previous Thread
Next Thread
Print Thread
solvent-shell.str
#439 10/23/03 10:55 AM
Joined: Sep 2003
Posts: 4,771
Likes: 2
lennart Offline OP
Forum Member
OP Offline
Forum Member
Joined: Sep 2003
Posts: 4,771
Likes: 2
*NAME: solvent-shell.str
*PURPOSE: make a TIP3 shell with user-defined thickness around the solute
*AUTHOR: Lennart Nilsson, Karolinska Institutet (October 7, 2003)
* THERE IS NO ERROR CHECKING IN THIS FILE
*
!NB! The following CHARMM error message indicates that at some stage during
! the construction process CHARMM's maximum number of residues is exceeded.
! Try again with a somewhat smaller system, or use a larger CHARMM version
!(LARGE instead of MEDIUM, or XXLARGE if LARGE is insufficient)
!***** LEVEL -4 WARNING FROM *****
!***** DATA STRUCTURE REALLOCATED IN ALLDT
!******************************************

!ASSUMPTIONS:
! The psf and coordinates of the solute are present
! A selection "SOLUTE" defining the solute has been made
! (define solute sele ... end)
! There is no segment present with segid WAT, WAT0, WAT1, WAT2 or WAT3
! SHELL is set to the desired thickness of the shell (in Angstroms)
! Uses file $CHM_STREAM/read-watbox.str to read coord for primary waterbox
! Unix environment variable CHM_STREAM points to directory containing
! these scripts
!RESULT:
! At return there will be a new segment named WAT containing TIP3 water
! molecules that have their oxygen atom within SHELL A of the SOLUTE atoms.
! The system is centered at the origin, with the main axis of inertia of the
! SOLUTE ! along the x-axis. For the deletion of overlapping waters only
! heavy solute atoms and water oxygens are considered; overlap distance
! criteria are defined below
! No other manipulations (minimizations etc) are performed on the system;
! bomblevel is set to -2 to avoid stopping at empty selections or
! empty segments
!REFERENCE:
! A shell was used around a large complex by
! Sen, S., and Nilsson, L. (1999). ! Structure, interaction, dynamics and
! solvent effects on the DNA-EcoRI complex in
! aqueous solution from molecular dynamics simulation.
!Biophys J 77, 1782-1800.
!
!USAGE EXAMPLE:
!read rtf card name /applic/charmm/toppar/top_all22_prot.inp
!read para card name /applic/charmm/toppar/par_all22_prot.inp
!read psf card name my_structure.psf
!read coor card name my_structure.crd
!set SHELL 7.0
!define SOLUTE sele segid prot .or. segid dna1 .or. segid dna2 end
!stream $CHM_STREAM/solvent-shell.str
!cons harm force 50.0 sele SOLUTE end
!mini sd nstep 50
!mini abnr nstep 50
!. . .
!LOCAL VARIABLES:
! XTR,YTR,ZTR,XSIZ,YSIZ,ZSIZ,XNUM,YNUM,ZNUM,BOX
! NW0,NROD,NSLAB,OVERLAP,OVERLAP2,I
! Defines selection SOLUTE1
! distance to use when deleting waters that overlap with the solute
! possibly different for second overlay of slightly shifted/rotated slab
set OVERLAP 2.0
set OVERLAP2 2.0
! solvation will be done by sliding a slab of TIP3 along the x-axis
! the water box we start with is a cube with 18.856A side containing 216 TIP3
set BOX 18.856
set NW0 216
! for the water-deletions we will use only the heavy atoms of the solute
define SOLUTE1 sele SOLUTE .and. .not. hydrogen end
! set bomblevel to -2 to avoid stopping on empty selections or empty segments
bomb -2

! begin calculations
! place SOLUTE along xaxis, and eventually in the first octant
coor orient sele SOLUTE end
coor stat sele SOLUTE end
! move to have minimum x,y, and x-coordinates SHELL A from origin
calc XTR = @SHELL - ?XMIN
calc YTR = @SHELL - ?YMIN
calc ZTR = @SHELL - ?ZMIN
coor trans xdir @XTR ydir @YTR zdir @ZTR
! figure out the dimensions we need
coor stat sele SOLUTE1 end
calc XSIZ = ?XMAX + @SHELL
calc YSIZ = ?YMAX + @SHELL
calc ZSIZ = ?ZMAX + @SHELL

calc XNUM = INT(@XSIZ / @BOX + 1)
calc YNUM = INT(@YSIZ / @BOX + 1)
calc ZNUM = INT(@ZSIZ / @BOX + 1)
! number of water molecules in a rod and in a slab
calc NROD = @NW0 * @YNUM
calc NSLAB = @ZNUM * @NROD

!generate one rod of boxes along Y-axis
read sequence tip3 216
gene wat0 noangle nodihe
!get coordinates
stream $CHM_STREAM/read-watbox.str
! put it in the first octant
coor stat sele segid wat0 .and. .not. hydrogen end
calc XTR = - ?XMIN
calc YTR = - ?YMIN
calc ZTR = - ?ZMIN
coor trans xdir @XTR ydir @YTR zdir @ZTR sele segid WAT0 end


read sequence tip3 216
gene wat noangle nodihe
coor dupl sele segid wat0 end sele segid wat end

if YNUM .eq. 1 goto do_z
! loop over the remaining 2 to YNUM boxes in the rod
set I 2
label yloop
read sequence tip3 216
gene wat1 noangle nodihe
coor dupl sele segid wat0 end sele segid wat1 end
coor transl ydir @BOX sele segid wat1 end
coor transl ydir @BOX sele segid wat0 end
join wat wat1 renumber
incr I by 1
if I le @YNUM goto yloop

! done with the rod, make a slab perpendicular to X-axis
label DO_Z
! wat0 is no longer needed
delete atom sele segid wat0 end
if ZNUM .eq. 1 goto do_x
rename segid wat0 sele segid wat end


read sequence tip3 @NROD
gene wat noangle nodihe
coor dupl sele segid wat0 end sele segid wat end

set I 2
label ZLOOP
read sequence tip3 @NROD
gene wat1 noangle nodihe
coor dupl sele segid wat0 end sele segid wat1 end
coor transl zdir @BOX sele segid wat1 end
coor transl zdir @BOX sele segid wat0 end
join wat wat1 renumber
incr I by 1
if I le @ZNUM goto zloop

! done with the slab, now let it slide along the x-axis
label DO_X
delete atom sele segid wat0 end
rename segid wat0 sele segid wat end

read sequence tip3 @NSLAB
gene wat2 noangle nodihe
coor dupl sele segid wat0 end sele segid wat2 end
! delete water molecules further away than SHELL A
delete atom sele .byres. ( segid wat2 .and. type OH2 .and. .not. -
( SOLUTE .around. @SHELL ) ) end
! and also those overlapping with the SOLUTE
delete atom sele .byres. ( segid wat2 .and. type OH2 .and. -
( SOLUTE1 .around. @OVERLAP ) ) end
! do the same slab again, but translated -1A and rotated 30 degrees around the x-axis
read sequence tip3 @NSLAB
gene wat3 noangle nodihe
coor dupl sele segid wat0 end sele segid wat3 end
coor rota xdir 1.0 phi 30.0 sele segid wat3 end
coor transl xdir -1.0 sele segid wat3 end
! delete water molecules further away than SHELL A
delete atom sele .byres. ( segid wat3 .and. type OH2 .and. .not. -
( SOLUTE .around. @SHELL ) ) end
! and also those overlapping with the SOLUTE or existing WAT2 segment
delete atom sele .byres. ( segid wat3 .and. type OH2 .and. -
( (SOLUTE1 .or. (segid wat2 .and. type OH2)) .around. @OVERLAP2 ) ) end
join wat2 wat3 renumber

if XNUM .eq. 1 goto done

set I 2
label XLOOP
read sequence tip3 @NSLAB
gene wat3 noangle nodihe
coor dupl sele segid wat0 end sele segid wat3 end
coor transl xdir @BOX sele segid wat3 end
coor transl xdir @BOX sele segid wat0 end
! delete water molecules further away than SHELL A
delete atom sele .byres. ( segid wat3 .and. type OH2 .and. .not. -
( SOLUTE .around. @SHELL ) ) end
! and also those overlapping with the SOLUTE
delete atom sele .byres. ( segid wat3 .and. type OH2 .and. -
( SOLUTE1 .around. @OVERLAP ) ) end
join wat2 wat3 renumber
! do the same slab again, but translated -1A and rotated 30 degrees around the x-axis
read sequence tip3 @NSLAB
gene wat3 noangle nodihe
coor dupl sele segid wat0 end sele segid wat3 end
coor rota xdir 1.0 phi 30.0 sele segid wat3 end
coor transl xdir -1.0 sele segid wat3 end
! delete water molecules further away than SHELL A
delete atom sele .byres. ( segid wat3 .and. type OH2 .and. .not. -
( SOLUTE .around. @SHELL ) ) end
! and also those overlapping with the SOLUTE or existing WAT2 segment
delete atom sele .byres. ( segid wat3 .and. type OH2 .and. -
( (SOLUTE1 .or. (segid wat2 .and. type OH2) ).around. @OVERLAP2 ) ) end
join wat2 wat3 renumber
incr I by 1
if I le @XNUM goto xloop

label DONE
delete atom sele segid wat0 end
rename segid wat sele segid wat2 end
! center everything around the origin
coor orient norot sele SOLUTE end
return

Last edited by lennart; 05/24/05 06:28 PM.

Lennart Nilsson
Karolinska Institutet
Stockholm, Sweden
Re: solvent-shell.str
lennart #440 07/23/05 03:51 AM
Joined: Apr 2004
Posts: 21
Forum Member
Offline
Forum Member
Joined: Apr 2004
Posts: 21
Dear Lennart,

Considering the two issues:

1)The convention, where we usually use an overlap distance of 2.8 A "water oxygen" to "non hydrogen protein atom" distance when solvating a protein molecule.

2)hydrogen water bond distance, which about 0.95 A in water.

I want to ask a question.

Is this value, 2.0 A water oxygen to any protein atom is equivalent to the 2.8 A overlap distance.

I have equilibrated and minimized a large system with 2.0 A overlap distance and water shell seems to be quite stable. Can I report that this approach is equivalent to using the 2.8A oxygen-oxygen distance?

Many thanks,
Gregor

Re: solvent-shell.str
anil #441 07/23/05 11:55 AM
Joined: Sep 2003
Posts: 4,771
Likes: 2
lennart Offline OP
Forum Member
OP Offline
Forum Member
Joined: Sep 2003
Posts: 4,771
Likes: 2
It seems quite similar, but probably does not give identical results. Why not simply report directly what you did?


Lennart Nilsson
Karolinska Institutet
Stockholm, Sweden
Re: solvent-shell.str
lennart #442 07/23/05 11:52 PM
Joined: Apr 2004
Posts: 21
Forum Member
Offline
Forum Member
Joined: Apr 2004
Posts: 21
Right, this is what I will do.

Just for your information:

I checked the distances of water oxygens to protein non-hydrogen atoms in the model, where the overlap distance from water oxygen to any protein atom was set as 2.0A .

Of the ~1500 waters, only 13 of the water molecules are inbetween 2.57-2.60A. ~200 water molecules are between 2.6-2.7 A. And the rest (~1300 water molecules) are located around 2.8A (or further).

However, when I set the distance as 2.8A, the number of water molecules incresed and makes the calculations more expensive.

Based on the similarity of the two approaches, the stable behaviour of the water shell, and the feasibilty of the 2.0 A distance, I will stick to the 2.0A water-protein distance.

Many thanks for the script.

Many thanks.


Moderated by  chmgr, John Legato, petrella 

Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.4
(Release build 20200307)
Responsive Width:

PHP: 5.6.33-0+deb8u1 Page Time: 0.008s Queries: 22 (0.003s) Memory: 0.9194 MB (Peak: 1.0011 MB) Data Comp: Off Server Time: 2020-05-28 05:14:09 UTC
Valid HTML 5 and Valid CSS