File: genus_counter.pl

package info (click to toggle)
microbiomeutil 20101212%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 49,276 kB
  • sloc: perl: 4,878; ansic: 419; makefile: 98; sh: 27
file content (45 lines) | stat: -rw-r--r-- 624 bytes parent folder | download | duplicates (6)
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);