#!/usr/bin/perl -w
#use warnings;

my $patprotnumber=0;
my $newprotnumber=0;
my @pat=();
my @new=();


open PAT, "pat_firmicutes.txt";

while($pat=<PAT>){
	if ($pat =~m/RL1_(\w+)/){
	push @pat, $1;
	$patprotnumber++;}
}
close PAT;

open NEW, "newpat_bacteria.txt";

while($new=<NEW>){
	if ($new =~/RL1_(\w+)/){
	push @new, $1;
	$newprotnumber++;}
}
close NEW;

%seen_pat = (); 
%seen_new = (); 
@patonly = (); # уникальные элементы в массиве pattern_bacillales
@newonly = (); # уникальные элементы в массиве newpattern_bacteria
 
foreach $item (@new) { $seen_new{$item} = 1;} 
foreach $item (@pat) { $seen_pat{$item} = 1;} 
 
foreach $item (@pat) { push(@patonly, $item) unless $seen_new{$item} } 
foreach $item (@new) { push(@newonly, $item) unless $seen_pat{$item} }

$patonly=@patonly;
$newonly=@newonly;

if ($patonly > $newonly){
$dev=$patonly/$patprotnumber;}
else {$dev=$newonly/$patprotnumber;}

print "Всего белков нужно найти - $patprotnumber\n";
print "Всего найдено новым паттерном - $newprotnumber\n";

print "Ненайденные белки:\n";
foreach $i (@patonly){
print "RL1_$i\n";}
print "Всего ненайденных - $patonly\n";

print "Лишние белки:\n";
foreach $k (@newonly){
print "RL1_$k\n";}
print "Всего лишних - $newonly\n";

print "Отклонение: $dev\n";

