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

Annotation of /FigKernelScripts/make_timestamps.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : overbeek 1.1 ########################################################################
2 :     use FIG;
3 :     my $fig = new FIG;
4 :    
5 :     $usage = "usage: make_timestamps SubsystemAssignments SubsystemConnections";
6 :    
7 :     (
8 :     ($assignF = shift @ARGV) && open(ASSIGN,">$assignF") &&
9 :     ($connF = shift @ARGV) && open(CONN,">$connF")
10 :     )
11 :     || die $usage;
12 :    
13 :     foreach $sub (grep { $fig->usable_subsystem($_) } $fig ->all_subsystems)
14 :     {
15 :     undef %pegH;
16 :     my $genomes = $fig->subsystem_genomes($sub);
17 :     foreach $role ($fig->subsystem_to_roles($sub))
18 :     {
19 :     foreach $genome (map { $_->[0] } @$genomes)
20 :     {
21 :     foreach $peg ($fig->pegs_in_subsystem_cell($sub,$genome,$role))
22 :     {
23 :     $pegH{$peg} = 1;
24 :     $curr_func = $fig->function_of($peg);
25 :     @annotations = $fig->feature_annotations($peg,"raw");
26 :     for ($i=$#annotations; ($i >= 0) && ($annotations[$i]->[3] !~ /^Set /); $i--) {}
27 :     if (($i >= 0) && ($annotations[$i]->[3] =~ /^Set master function to\n(\S.*\S)/s))
28 :     {
29 :     $ann_func = $1;
30 :     if (($curr_func eq $ann_func) && ($annotations[$i]->[2] !~ /auto|assign/i))
31 :     {
32 :     print ASSIGN join("\t",$annotations[$i]->[0],$annotations[$i]->[1],$annotations[$i]->[2],"assigned",$ann_func),"\n";
33 :     }
34 :     }
35 :     }
36 :     }
37 :     }
38 :     &process_ss($fig,$sub,\%pegH);
39 :     }
40 :    
41 :    
42 :     sub process_ss {
43 :     my($fig,$sub,$pegH) = @_;
44 :    
45 :     opendir(BACKUP,"$FIG_Config::data/Subsystems/$sub/Backup")
46 :     || return ();
47 :    
48 :     my $curator = $fig->subsystem_curator($sub);
49 :    
50 :     my @spreadsheets = sort { $b <=> $a }
51 :     map { $_ =~ /^spreadsheet.(\d+)/; $1 }
52 :     grep { $_ =~ /^spreadsheet/ }
53 :     readdir(BACKUP);
54 :     closedir(BACKUP);
55 :    
56 :     my $ts_last = time;
57 :     foreach my $ts (@spreadsheets)
58 :     {
59 :     my $hash = {};
60 :     my $file = "$FIG_Config::data/Subsystems/$sub/Backup/spreadsheet.$ts";
61 :     if (open(SS,"<$file"))
62 :     {
63 :     $/ = "//\n";
64 :     $_ = <SS>;
65 :     $_ = <SS>;
66 :     if (defined($_ = <SS>))
67 :     {
68 :     chomp;
69 :     @lines = split(/\n/,$_);
70 :     foreach $_ (@lines)
71 :     {
72 :     if ($_ =~ /^(\S+)\t\S+\t(.*)/)
73 :     {
74 :     my $genome = $1;
75 :     my @cells = split(/\t/,$2);
76 :     foreach my $cell (@cells)
77 :     {
78 :     foreach my $pegN (split(/,/,$cell))
79 :     {
80 :     my $peg = "fig|$genome.peg.$pegN";
81 :     if ($pegH->{$peg})
82 :     {
83 :     $hash->{$peg} = 1;
84 :     }
85 :     }
86 :     }
87 :     }
88 :     }
89 :    
90 :     foreach $peg_in (keys(%$pegH))
91 :     {
92 :     if (! $hash->{$peg_in})
93 :     {
94 :     print CONN join("\t",($peg_in,$ts_last,$curator,"connected",$sub)),"\n";
95 :     delete($pegH->{$pag_in});
96 :     }
97 :     }
98 :     }
99 :     close(SS);
100 :     }
101 :     $ts_last = $ts;
102 :     }
103 :    
104 :     foreach $peg_in (keys(%$pegH))
105 :     {
106 :     print CONN join("\t",($peg_in,$ts,$curator,"connected",$sub)),"\n";
107 :     }
108 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3