1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
#!/usr/bin/perl
use strict;
use warnings;
my %genus_counter;
while (<>) {
if (/^>/) {
my $line = $_;
chomp $line;
my @x = split(/\t/, $line);
my $taxons = pop @x;
my @taxa = split(/;\s/, $taxons);
my $genus = pop @taxa;
my $phylum = $taxa[1];
#print "$phylum\t$genus\n";
$genus_counter{$phylum}->{$genus}++;
}
}
foreach my $phylum (keys %genus_counter) {
my $count = 0;
foreach my $genus (keys %{$genus_counter{$phylum}}) {
if ( (my $count = $genus_counter{$phylum}->{$genus}) > 1) {
print "$phylum\t$genus\t$count\n";
}
}
#print $phylum . "\t$count\n";
}
exit(0);
|