annotate rapsodyn/listfiltering.pl @ 29:7b8646f46010 draft

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