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

Annotation of /FigKernelScripts/find_bad_conflicts.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : overbeek 1.1 use FIG;
2 :     my $fig = new FIG;
3 :    
4 :     # usage: find_bad_conflicts < close.strain.sets > good.sets 2> bad.sets
5 :    
6 :     $line = <STDIN>;
7 :     while ($line && ($line =~ /^(\S+)/))
8 :     {
9 :     $curr = $1;
10 :     @set = ();
11 :     while ($line && ($line =~ /^(\S+)\t(\S+)/) && ($1 eq $curr))
12 :     {
13 :     push(@set,$line);
14 :     $line = <STDIN>;
15 :     }
16 :     &process_set($fig,\@set);
17 :     }
18 :    
19 :     sub process_set {
20 :     my($fig,$set) = @_;
21 :    
22 :     my @in_sub = ();
23 :     foreach my $line (@$set)
24 :     {
25 :     $line =~ /^\S+\t(\S+)/;
26 :     my $peg = $1;
27 :     my @subs = grep { $fig->usable_subsystem($_) } $fig->peg_to_subsystems($peg);
28 :     if (@subs > 0)
29 :     {
30 :     push(@in_sub,$peg);
31 :     }
32 :     }
33 :    
34 :     my $ok = 1;
35 :     if (@in_sub > 1)
36 :     {
37 :     my $func = $fig->function_of($in_sub[0]);
38 :     my $i;
39 :     for ($i=1; ($i < @in_sub) && ($fig->function_of($in_sub[$i]) eq $func); $i++) {}
40 :     $ok = ($i == @in_sub);
41 :     }
42 :    
43 :     foreach my $line (@$set)
44 :     {
45 :     if ($ok) { print $line }
46 :     else { print STDERR $line }
47 :     }
48 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3