[gmx-users] Genbox - Removal of Unwanted Waters

Arneh Babakhani ababakha at mccammon.ucsd.edu
Mon May 8 21:23:36 CEST 2006


Great, thank you very much, will try it out,

chris.neale at utoronto.ca wrote:
> If I have a solvated membrane and I want to extend the z dimension and add new
> waters there, this is what I do. The script could be modified to get rid of new
> waters in any x/y/z dimensions (around line 41 of the script).
>
> 1. run genbox on initial.gro to create solvated.gro
> 2. cp solvated.gro new_waters.gro
> 3. use vi to remove everything in new_waters.gro except the new waters (make
> sure you remove waters that were in initial.gro)
> 4. use vi to edit keepbyz.pl
>    - upperz and lowerz variables as you please
>    - sol to the name of your solvent molecule
> 5. run keepbyz.pl on new_waters.gro 
>    ./keepbyz new_waters.gro > keep_these_waters.gro
> 6. tail -1 initial.gro > last_line.gro
> 7. head -$(expr $(cat initial.gro | wc -l | awk '{print $1}') - 1 ) initial.gro
>   
>> not_last_line.gro
>>     
> 8. cat not_last_line.gro new_waters.gro last_line.gro > new_system.gro
> 9. editconf -f new_system.gro -o new_system_sequential_numbers.gro
>
> Here is the script (make sure you chmod +x keepbyz.pl):
>
> #!/bin/bash
> # give x.gro as first command line arguement
> upperz=6.417
> lowerz=0.820
> sol=SOL
> count=0
> cat $1 | grep "$sol" | while read line; do
>   for first in $line; do
>     break
>   done
>   if [ "$count" = 3 ]; then
>     count=0
>   fi
>   count=$(expr $count + 1)
>   if [ "$count" != 1 ]; then
>     continue
>   fi
>   l=${#line}
>   m=$(expr $l - 24)
>   i=1
>   for word in ${line:$m}; do
>     if [ "$i" = 1 ]; then
>       popex=$word
>     else
>       if [ "$i" = 2 ]; then
>         popey=$word
>       else
>         if [ "$i" = 3 ]; then
>           popez=$word
>           break
>         fi
>       fi
>     fi
>     i=$(expr $i + 1)
>   done
>   nolx=`echo "$popez > $upperz" | bc`
>   nohx=`echo "$popez < $lowerz" | bc`
>   myno=$(expr $nolx + $nohx)
>   if [ "$myno" != 0 ]; then
>     z=${#first}
>     if [ "$z" != 8 ]; then
>       sfirst="[[:space:]]$first"
>     else
>       sfirst=$first
>     fi
>     `echo grep $sfirst $1`
>   fi
> done
> _______________________________________________
> gmx-users mailing list    gmx-users at gromacs.org
> http://www.gromacs.org/mailman/listinfo/gmx-users
> Please don't post (un)subscribe requests to the list. Use the 
> www interface or send it to gmx-users-request at gromacs.org.
> Can't post? Read http://www.gromacs.org/mailing_lists/users.php
>
>   



More information about the gromacs.org_gmx-users mailing list