[Bio] / FigKernelScripts / same_subsys.pl Repository:
ViewVC logotype

Annotation of /FigKernelScripts/same_subsys.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download) (as text)

1 : overbeek 1.1 # usage: same_subsys Subsystems < tuples > same 2> not_same
2 :    
3 :     use FIG;
4 :     my $fig = new FIG;
5 :    
6 :     ($subsystems = shift @ARGV)
7 :     || die "usage: same_subsys Subsystems < tuples > same 2> not_same";
8 :    
9 :     %all = map { $_ =~ /^(\S.*\S)/; $1 => 1 } `cat $subsystems`;
10 :    
11 :     $/ = "//\n";
12 :     my @rel = map { chomp; $_ } <DATA>;
13 :     $/ = "\n";
14 :    
15 :     foreach $_ (@rel)
16 :     {
17 :     ($s1,$s2) = split(/\n/,$_);
18 :     $rel{$s1}->{$s2} = 1;
19 :     $rel{$s2}->{$s1} = 1;
20 :     }
21 :     while (defined($_ = <STDIN>))
22 :     {
23 :     if (($_ =~ /^(\S+)\t(\S+)/) && &same($1,$2))
24 :     {
25 :     print $_;
26 :     }
27 :     else
28 :     {
29 :     print STDERR $_;
30 :     }
31 :     }
32 :    
33 :     sub same {
34 :     my($peg1,$peg2) = @_;
35 :     my($i,$j,$same);
36 :    
37 :     my @s1 = grep { $all{$_} } $fig->peg_to_subsystems($peg1);
38 :     my @s2 = grep { $all{$_} } $fig->peg_to_subsystems($peg2);
39 :     for ($i=0,$same=0; (! $same) && ($i < @s1); $i++)
40 :     {
41 :     for ($j=0; (! $same) && ($j < @s2); $j++)
42 :     {
43 :     if (($s1[$i] eq $s2[$j]) ||
44 :     $rel{$s1[$i]}->{$s2[$j]})
45 :     {
46 :     $same = 1;
47 :     }
48 :     }
49 :     }
50 :     return $same;
51 :     }
52 :    
53 :     __DATA__
54 :     Ribosome_LSU_bacterial
55 :     Ribosome_SSU_bacterial
56 :     //

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3