annotate rapsodyn/listfiltering.pl @ 15:56d328bce3a7 draft default tip

Uploaded
author mcharles
date Thu, 29 Jan 2015 08:54:06 -0500
parents d857538d9fea
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
d857538d9fea Uploaded
mcharles
parents:
diff changeset
1 #!/usr/bin/perl
d857538d9fea Uploaded
mcharles
parents:
diff changeset
2 # v1.0.1 added log, and two different type of filtering (common / specific)
d857538d9fea Uploaded
mcharles
parents:
diff changeset
3 use strict;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
4 use Getopt::Long;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
5
d857538d9fea Uploaded
mcharles
parents:
diff changeset
6 my $list1_file;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
7 my $list2_file;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
8 my $log_file;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
9 my $NB_COL=1;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
10 my $TYPE = "common";
d857538d9fea Uploaded
mcharles
parents:
diff changeset
11 my %header;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
12 my $nb_list1 = 0;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
13 my $nb_list2 = 0;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
14 my $nb_common = 0;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
15
d857538d9fea Uploaded
mcharles
parents:
diff changeset
16
d857538d9fea Uploaded
mcharles
parents:
diff changeset
17 GetOptions (
d857538d9fea Uploaded
mcharles
parents:
diff changeset
18 "list1_file=s" => \$list1_file,
d857538d9fea Uploaded
mcharles
parents:
diff changeset
19 "list2_file=s" => \$list2_file,
d857538d9fea Uploaded
mcharles
parents:
diff changeset
20 "log_file=s" => \$log_file,
d857538d9fea Uploaded
mcharles
parents:
diff changeset
21 "type=s" => \$TYPE,
d857538d9fea Uploaded
mcharles
parents:
diff changeset
22 "nb_col=i" => \$NB_COL
d857538d9fea Uploaded
mcharles
parents:
diff changeset
23 ) or die("Error in command line arguments\n");
d857538d9fea Uploaded
mcharles
parents:
diff changeset
24
d857538d9fea Uploaded
mcharles
parents:
diff changeset
25 open(L2, $list2_file) or die("Can't open $list2_file\n");
d857538d9fea Uploaded
mcharles
parents:
diff changeset
26 while (my $line=<L2>){
d857538d9fea Uploaded
mcharles
parents:
diff changeset
27 $nb_list2++;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
28 chomp($line);
d857538d9fea Uploaded
mcharles
parents:
diff changeset
29 my @fields = split(/\s+/,$line);
d857538d9fea Uploaded
mcharles
parents:
diff changeset
30 my $ref="";
d857538d9fea Uploaded
mcharles
parents:
diff changeset
31 my $compt=0;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
32 while ($compt<$NB_COL){
d857538d9fea Uploaded
mcharles
parents:
diff changeset
33 if ($ref){$ref.="\t";}
d857538d9fea Uploaded
mcharles
parents:
diff changeset
34 $ref.=$fields[$compt];
d857538d9fea Uploaded
mcharles
parents:
diff changeset
35 $compt++;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
36 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
37 $header{$ref}=$line;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
38 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
39 close (L2);
d857538d9fea Uploaded
mcharles
parents:
diff changeset
40
d857538d9fea Uploaded
mcharles
parents:
diff changeset
41
d857538d9fea Uploaded
mcharles
parents:
diff changeset
42 open(L1, $list1_file) or die("Can't open $list1_file\n");
d857538d9fea Uploaded
mcharles
parents:
diff changeset
43 while (my $line=<L1>){
d857538d9fea Uploaded
mcharles
parents:
diff changeset
44 $nb_list1++;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
45 my @fields = split(/\s+/,$line);
d857538d9fea Uploaded
mcharles
parents:
diff changeset
46 my $ref="";
d857538d9fea Uploaded
mcharles
parents:
diff changeset
47 my $compt=0;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
48 while ($compt<$NB_COL){
d857538d9fea Uploaded
mcharles
parents:
diff changeset
49 if ($ref){$ref.="\t";}
d857538d9fea Uploaded
mcharles
parents:
diff changeset
50 $ref.=$fields[$compt];
d857538d9fea Uploaded
mcharles
parents:
diff changeset
51 $compt++;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
52 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
53 # my $ref = "$fields[0]\t$fields[1]";
d857538d9fea Uploaded
mcharles
parents:
diff changeset
54
d857538d9fea Uploaded
mcharles
parents:
diff changeset
55 if ($header{$ref}){
d857538d9fea Uploaded
mcharles
parents:
diff changeset
56 $nb_common++;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
57 if ($TYPE eq "common"){
d857538d9fea Uploaded
mcharles
parents:
diff changeset
58 print $line;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
59 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
60 elsif ($TYPE eq "specific") {
d857538d9fea Uploaded
mcharles
parents:
diff changeset
61 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
62 else {
d857538d9fea Uploaded
mcharles
parents:
diff changeset
63 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
64 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
65 else {
d857538d9fea Uploaded
mcharles
parents:
diff changeset
66 if ($TYPE eq "common"){
d857538d9fea Uploaded
mcharles
parents:
diff changeset
67 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
68 elsif ($TYPE eq "specific") {
d857538d9fea Uploaded
mcharles
parents:
diff changeset
69 print $line;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
70 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
71 else {
d857538d9fea Uploaded
mcharles
parents:
diff changeset
72 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
73 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
74
d857538d9fea Uploaded
mcharles
parents:
diff changeset
75 }
d857538d9fea Uploaded
mcharles
parents:
diff changeset
76 my $nb_list1_only = $nb_list1 - $nb_common;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
77 my $nb_list2_only = $nb_list2 - $nb_common;
d857538d9fea Uploaded
mcharles
parents:
diff changeset
78
d857538d9fea Uploaded
mcharles
parents:
diff changeset
79 close(L1);
d857538d9fea Uploaded
mcharles
parents:
diff changeset
80 open (LF,">$log_file") or die("Can't open $log_file\n");
d857538d9fea Uploaded
mcharles
parents:
diff changeset
81 print LF "\n####\t List Filtering \n";
d857538d9fea Uploaded
mcharles
parents:
diff changeset
82 print LF "#List 1 :\t$nb_list1 ($nb_list1_only)\n";
d857538d9fea Uploaded
mcharles
parents:
diff changeset
83 print LF "#List 2 :\t$nb_list2 ($nb_list2_only)\n";
d857538d9fea Uploaded
mcharles
parents:
diff changeset
84 print LF "#Common :\t$nb_common\n";
d857538d9fea Uploaded
mcharles
parents:
diff changeset
85 close (LF);
d857538d9fea Uploaded
mcharles
parents:
diff changeset
86