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

Annotation of /FigKernelScripts/make_timestamps.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3