#!/usr/bin/perl
$return=`which gro2pxyz`;
die "be sure to set proper enviroment variables.\n" unless $return;

#mark values
$valALA=4;  #ALA
$valup=3;   #slovation factor 1 water
$valqm=2;  #solvation factor 0 water
$valmm=1;    #MM water

$rcuC=4.5;   #cutoff for C in AL
$rcuala=3.8; #cut off for other atoms in ALA
$rcuboundary=2.6; #cutoff for boundary
$rcumm=7.0; #cutoff for MM

foreach $file (@ARGV)
{
$basename=substr $file,0,-4;
@base_path=split(/\//, $basename);
$filename=@base_path[@base_path-1].".pxyz";

#gro to pxyz
$cmd1="gro2pxyz $file|mark_byname ALA $valALA > $filename";

#mark ALA and water aroud ALA
$cmd2="mark_within_range 1 73 $rcuala $valqm $filename";
$cmd3="mark_within_list  $rcuC $valqm  $filename 5 7 11 15 17 21 25 27 31 35 37 41 45 47 51 55 57 61 65 67 71";

#randomly mark up five  water and their boundary
$cmd4="markup_random $valqm $valup $filename| markup_random 2 3|markup_random 2 3 |markup_random 2 3 |markup_random 2 3 > $filename._$$; mv $filename._$$ $filename";
$cmd5=" mark_boundary $rcuboundary $valup $valqm $filename";

#mark solvation factor 1 water
$cmd6="markup_mol $rcuboundary  $valqm  $valup $filename > $filename._$$; mv $filename._$$ $filename";

#mark mm
$cmd7="mark_within_list $rcumm $valmm $filename 1 5 7 11 12 13 15 17 21 22 23 25 27 31 32 33 35 37 41 42 43 45 47 51 52 53 55 57 61 62 63 65 67 71 72 73";

#dropoff and sort
$cmd8="pxyz_dropoff 0 $filename |pxyz_sort|pxyz_recenter 35 > $filename._$$; mv $filename._$$ $filename";


#execute
system("$cmd1");
system("$cmd2");system("$cmd3");system("$cmd4");system("$cmd5");
system("$cmd6");system("$cmd7");system("$cmd8");
}

