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

Annotation of /FigKernelScripts/make_assignments_fit_initial_css.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : overbeek 1.1
2 :     use FIG;
3 :     my $fig = new FIG;
4 :    
5 :     $usage = "usage: make_assignments_fit_initial_css Prefix RecommenedAssignments Abbr1 Abbr2 ....";
6 :    
7 :     (
8 :     ($prefix = shift @ARGV) &&
9 : overbeek 1.3 ($assF = shift @ARGV) && open(ASSF,">$assF")
10 : overbeek 1.1 )
11 :     || die $usage;
12 :    
13 :     %change = map { $_ => 1 } @ARGV;
14 :    
15 :     $/ = "\n//\n";
16 :     $_ = <STDIN>;
17 :     print $_;
18 :    
19 :     ($roles = <STDIN>) || die "bad input file";
20 :     chomp $roles;
21 :     @roles = map { $_ =~ /^(\S+)\t(\S.*\S)/; [$1,$change{$1} ? "$prefix: $2" : $2] } split(/\n/,$roles);
22 :     for ($i=0; ($i < @roles); $i++)
23 :     {
24 :     ($abbr,$role) = @{$roles[$i]};
25 :     print "$abbr\t$role\n";
26 :     }
27 : overbeek 1.2 print "//\n";
28 :    
29 : overbeek 1.1 $/ = "\n";
30 :    
31 :     while (defined($_ = <STDIN>) && ($_ !~ /^\/\//))
32 :     {
33 :     print $_;
34 :     chop;
35 :     @flds = split(/\t/,$_);
36 :     $genome = $flds[0];
37 :    
38 :     undef %must_be;
39 :     for ($i=2; ($i < @flds); $i++)
40 :     {
41 :     if ($flds[$i])
42 :     {
43 :     foreach $peg (split(/,/,$flds[$i]))
44 :     {
45 :     push(@{$must_be{$peg}},$roles[$i-2]->[1]);
46 :     }
47 :     }
48 :     }
49 :    
50 :     foreach $pegN (keys(%must_be))
51 :     {
52 :     $peg = "fig|$genome.peg.$pegN";
53 :     $func = $fig->function_of($peg);
54 :     @funcs = split(/ [\@\/] |;\s+/,$func);
55 :     @needed = @{$must_be{$pegN}};
56 :    
57 :     for ($i=0,$ok=1; ($i < @needed) && $ok; $i++)
58 :     {
59 :     for ($j=0; ($j < @funcs) && ($funcs[$j] ne $needed[$i]); $j++) {}
60 :     $ok = ($j < @funcs);
61 :     }
62 :     if (! $ok)
63 :     {
64 :     print ASSF "$peg\t",join(" / ",@needed),"\n";
65 :     }
66 :     }
67 :     }
68 :     close(ASSF);

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3