A 83 GLU A 90 GLU^?
A 163 ARG A 83 ARG^?
A 222 ARG A 5 ARG^?
A 229 ALA A 115 ALA~?
A 257 ALA A 118 ALA~?
A 328 ASP A 95 ASP~?
A 83 GLU A 90 GLU^?
A 163 ARG A 83 ARG^?
A 222 ARG A 5 ARG^?
A 83 GLU B 90 GLU^?
A 163 ARG B 83 ARG^?
A 222 ARG B 5 ARG^?
####
A 83 GLU B 90 GLU
A 163 ARG B 83 ARG
A 222 ARG B 5 ARG
A 229 ALA A 115 ALA
A 257 ALA A 118 ALA
A 328 ASP A 95 ASP
####
#!/usr/bin/perl
use strict;
my (%hash, %hash_key);
my $x = 0;
while (){
my @array = split(' ', $_);
$x++;
$hash{"$array[1]-$array[4]"} = $_;
$hash_key{$x} = "$array[1]-$array[4]";
}
foreach my $i (sort {$a <=> $b} keys %hash_key){
(exists $hash{$hash_key{$i}}) ? (print "$hash{$hash_key{$i}}") : (print "deleted\n");
delete($hash{$hash_key{$i}}) if (exists $hash{$hash_key{$i}});
}
__DATA__
A 83 GLU A 90 GLU
A 163 ARG A 83 ARG
A 222 ARG A 5 ARG
A 229 ALA A 115 ALA
A 257 ALA A 118 ALA
A 328 ASP A 95 ASP
A 83 GLU A 90 GLU
A 163 ARG A 83 ARG
A 222 ARG A 5 ARG
A 83 GLU B 90 GLU
A 163 ARG B 83 ARG
A 222 ARG B 5 ARG
####
#!/usr/bin/perl
use strict;
my (%hash, %hash_key); # hashes
my $x = 0; # counters
while (){ #starts reading the data line by line
my @array = split(' ', $_); # split the data using spaces
$x++; # global counter
$hash{$array[1]}->{$array[4]} = $_; # primary database
$hash_key{$x}= [$array[1],$array[4]]; # key database
}
foreach my $i (sort {$a <=> $b} keys %hash_key){
(exists $hash{$hash_key{$i}->[0]}->{$hash_key{$i}->[1]}) ? (print "$hash{$hash_key{$i}->[0]}->{$hash_key{$i}->[1]}") : (print "deleted\n"); # if the record in the database (hash) exists print it out otherwise print 'deleted'
next if ($hash_key{$i}->[0] eq ''); # you need the empty lines so if you reached an empty line, skip the deleting part
delete($hash{$hash_key{$i}->[0]}->{$hash_key{$i}->[1]}) if (exists $hash{$hash_key{$i}->[0]}->{$hash_key{$i}->[1]} || $hash{$hash_key{$i}->[1]}->{$hash_key{$i}->[0]}); # if you printed the entry from the database delete it , you don't need duplicates. this goes if your record has 80 90 situation or 90 80 situation
}
__DATA__
A 83 GLU A 90 GLU
A 163 ARG A 83 ARG
A 222 ARG A 5 ARG
A 229 ALA A 115 ALA
A 257 ALA A 118 ALA
A 328 ASP A 95 ASP
A 83 GLU A 90 GLU
A 163 ARG A 83 ARG
A 222 ARG A 5 ARG
A 83 GLU B 90 GLU
A 163 ARG B 83 ARG
A 222 ARG B 5 ARG
####
($a ==1) ? (print "yes") : (print "no");