#!/usr/bin/perl
# dimer_upl
# duplicate intramonomer Cyana upper limit (.upl) distance
# constraints for symmetric protein dimer based
# on constraint file generated by Cyana from NOE
# peaklists      
#
# syntax: dimer_upl upl_filename | sort -n > outfile 


$file1 = $ARGV[0];

    open (FILE1, "$file1") || die "syntax: upl_compare combined upl file> outfile\n";

    while (<FILE1>) {
        push @upl, [ split ];
        }

#print "$#upl \n";

    for $i (0..$#upl ) {
        @line = @{$upl[$i]};

	# write out each original constraint
               # $res1=$line[0];
               # $res2=$line[3];
               # $~ = "UPL";
               # write;

	# write out a copy (intramolecular) for the symmetry-related monomer
 		if ($line[0]<129 and $line[3]<129){
                $res1=$line[0]+300;
                $res2=$line[3]+300;
                $~ = "UPL";
                write;
                }
	# write out a copy (intermolecular) for the symmetry-related monomer
 		if ($line[0]>299){
                $res1=$line[0]-300;
                $res2=$line[3]+300;
                $~ = "UPL";
                write;
                }
 		if ($line[3]>299){
                $res1=$line[0]+300;
                $res2=$line[3]-300;
                $~ = "UPL";
                write;
                }
        }

#define format for output
#111 SER  HN    111 SER  HB3     3.34 

format UPL =
@## @<<< @<<<  @## @<<< @<<<   @#.## 
$res1, $line[1], $line[2], $res2, $line[4], $line[5], $line[6]
.

