annotate 2.4/src/reduce_redundancy.pl @ 2:ceb6adffc4e2 draft

Uploaded
author plus91-technologies-pvt-ltd
date Wed, 04 Jun 2014 08:00:42 -0400
parents 00b9898b8510
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
1 open(BUFF,"$ARGV[0]") or die "no input file found\n";
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
2 $range="$ARGV[1]";
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
3 my %hash;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
4 my %store;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
5 $prev_chr="";
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
6 $next=0;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
7 while(<BUFF>)
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
8 {
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
9 chomp($_);
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
10 #print "$.\n";
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
11 if($_ !~ m/^#/)
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
12 {
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
13 @array=split("\t",$_);
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
14 $chr=$array[0];
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
15 $pos=$array[1];
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
16 $value=$array[@array-1];
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
17 if($prev_chr ne $chr )
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
18 {
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
19 if($prev_chr ne "")
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
20 {
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
21 foreach $key (sort {$hash{$b} <=> $hash{$a} } keys %hash)
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
22 {
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
23 print "$store{$key}\n";
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
24 last;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
25 }
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
26
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
27 }
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
28 $next = $pos+$range;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
29 undef(%hash);
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
30 undef(%store);
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
31 }
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
32 if($next< $pos)
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
33 {
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
34 foreach $key (sort {$hash{$b} <=> $hash{$a} } keys %hash)
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
35 {
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
36 print "$store{$key}\n";
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
37 last;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
38 }
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
39 $next = $pos+$range;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
40 undef(%hash);
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
41 undef(%store);
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
42
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
43 }
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
44 if($value eq "NA")
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
45 {
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
46 $hash{$chr." ".$pos." ".$.}=0;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
47 }
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
48 else
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
49 {
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
50 $hash{$chr." ".$pos." ".$.}=$value;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
51 }
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
52 $store{$chr." ".$pos." ".$.}=$_;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
53 }
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
54 else
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
55 {
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
56 print $_."\n";
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
57 }
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
58 $prev_chr = $chr;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
59 }
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
60 foreach $key (sort {$hash{$b} <=> $hash{$a} } keys %hash)
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
61 {
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
62 print "$store{$key}\n";
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
63 last;
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
64 }
00b9898b8510 Uploaded
plus91-technologies-pvt-ltd
parents:
diff changeset
65