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

Annotation of /FigKernelScripts/update_fr2go.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : overbeek 1.1 ########################################################################
2 :    
3 :    
4 :     # usage: update_fr2go
5 :     #
6 :     # updates the Data/Ontologies/GO/fr2go file and reloads the GO dbs.
7 :    
8 :     use FIG;
9 :     my $fig = new FIG;
10 :    
11 :     open(FR2GO,"| sort -u > $FIG_Config::data/Ontologies/GO/fr2go")
12 :     || die "$FIG_Config::data/Ontologies/GO/fr2go";
13 :    
14 :     foreach $_ (`cat $FIG_Config::data/Ontologies/GO/ec2go`)
15 :     {
16 :     if ($_ =~ /^EC:(\d+\.\d+\.\d+\.\d+)\s+>\s+.*(GO:\d{7})/)
17 :     {
18 :     push(@{$ec2go{$1}},$2);
19 :     }
20 :     }
21 :    
22 :     foreach $subsys (grep { $fig->usable_subsystem($_) } $fig->all_subsystems)
23 :     {
24 :     @roles = $fig->subsystem_to_roles($subsys);
25 :     foreach $role (@roles)
26 :     {
27 :     @ecs = ($role =~ /\(EC \d+\.\d+\.\d+\.\d+\)/g);
28 :     if (@ecs > 0)
29 :     {
30 :     foreach $ec (@ecs)
31 :     {
32 :     if (($ec =~ /^\(EC (\d+\.\d+\.\d+\.\d+)\)/) && ($x = $ec2go{$1}))
33 :     {
34 :     foreach $go (@$x)
35 :     {
36 :     $fr2go{$role}->{$go} = 1;
37 :     }
38 :     }
39 :     }
40 :     }
41 :     }
42 :     }
43 :    
44 :     foreach $role (keys(%fr2go))
45 :     {
46 :     $x = $fr2go{$role};
47 :     foreach $go (keys(%$x))
48 :     {
49 :     print STDERR "$role\t$go\n";
50 :     print FR2GO "$role\t$go\n";
51 :     }
52 :     }
53 :    
54 :     open(PEG2GO,"<$FIG_Config::data/Ontologies/GO/peg2go")
55 :     || die "where is peg2go?";
56 :     while (defined($_ = <PEG2GO>))
57 :     {
58 :     if ($_ =~ /^(\S+)\t(\S+)/)
59 :     {
60 :     $peg = $1;
61 :     $go = $2;
62 :     $func = $fig->function_of($peg);
63 :     if (($func !~ / [\@\/] /) && ($func !~ /; /))
64 :     {
65 :     my @tmp = $fig->peg_to_roles_in_subsystems($peg);
66 :     if (@tmp > 0)
67 :     {
68 :     $role = $tmp[0]->[1];
69 :     if (! $fr2go{$role})
70 :     {
71 :     $fr_to_go_by_peg{$role}->{$go}++;
72 :     }
73 :     }
74 :     }
75 :     }
76 :     }
77 :     close(PEG2GO);
78 :    
79 :     foreach $role (keys(%fr_to_go_by_peg))
80 :     {
81 :     $x = $fr_to_go_by_peg{$role};
82 :     foreach $go (keys(%$x))
83 :     {
84 :     if ($x->{$go} > 1)
85 :     {
86 :     print STDERR "$role\t$go\n";
87 :     print FR2GO "$role\t$go\n";
88 :     }
89 :     }
90 :     }
91 :     close(FR2GO);
92 :    
93 :     system "$FIG_Config::bin/load_go";
94 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3