[Bio] / FigKernelPackages / FIGV.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/FIGV.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.33, Tue Jun 26 20:29:33 2007 UTC revision 1.34, Thu Jun 28 22:04:24 2007 UTC
# Line 119  Line 119 
119             @fids;             @fids;
120  }  }
121    
122    sub get_basic_statistics
123    {
124        my($self, $genome) = @_;
125    
126        my $fig     = $self->{_fig};
127        my $newG    = $self->{_genome};
128        my $newGdir = $self->{_orgdir};
129    
130        if ($genome ne $newG)
131        {
132            return $fig->get_basic_statistics($genome);
133        }
134    
135        #
136        # Check cache.
137        #
138    
139        my $cache = "$newGdir/cache.basic_statistics";
140        my $fh = new FileHandle($cache);
141        if ($fh)
142        {
143            my $stats = {};
144            while (<$fh>)
145            {
146                chomp;
147                my($k, $v) = split(/\t/);
148                $stats->{$k} = $v;
149            }
150            close($fh);
151            return $stats;
152        }
153    
154    
155        my $subsystem_data = $self->get_genome_subsystem_data($genome);
156    
157        my %sscount = map { $_->[0] => 1 } @$subsystem_data;
158        my $nss=scalar(keys(%sscount));
159    
160        my $statistics = {
161            num_subsystems => $nss,
162            num_contigs    => scalar($self->all_contigs($genome)),
163            num_basepairs  => $self->genome_szdna($genome),
164            genome_name    => $self->genus_species($genome),
165            genome_domain  => $self->genome_domain($genome),
166            genome_pegs    => $self->genome_pegs($genome),
167            genome_rnas    => $self->genome_rnas($genome),
168            genome_version => $self->genome_version($genome)
169            };
170    
171        $fh = new FileHandle(">$cache");
172        if ($fh)
173        {
174            while (my($k, $v) = each %$statistics)
175            {
176                print $fh join("\t", $k, $v), "\n";
177            }
178            close($fh);
179        }
180    
181        return $statistics;
182    }
183    
184    
185    sub get_peg_statistics {
186        my ($self, $genome) = @_;
187    
188        my $fig     = $self->{_fig};
189        my $newG    = $self->{_genome};
190        my $newGdir = $self->{_orgdir};
191    
192        if ($genome ne $newG)
193        {
194            return $fig->get_peg_statistics($genome);
195        }
196    
197        #
198        # Check cache.
199        #
200    
201        my $cache = "$newGdir/cache.peg_statistics";
202        my $fh = new FileHandle($cache);
203        if ($fh)
204        {
205            my $stats = {};
206            while (<$fh>)
207            {
208                chomp;
209                my($k, $v) = split(/\t/);
210                $stats->{$k} = $v;
211            }
212            close($fh);
213            return $stats;
214        }
215    
216    
217        my $subsystem_data = $self->get_genome_subsystem_data($genome);
218        my $assignment_data = $self->get_genome_assignment_data($genome);
219    
220        my $hypo_sub = 0;
221        my $hypo_nosub = 0;
222        my $nothypo_sub = 0;
223        my $nothypo_nosub = 0;
224        my %in = map { $_->[2] => 1 } @$subsystem_data;
225        my $in = keys(%in);
226    
227        my %sscount = map { $_->[0] => 1 } @$subsystem_data;
228    
229        foreach $_ (@$assignment_data)
230        {
231            my($peg,$func) = @$_;
232            my $is_hypo = &FIG::hypo($func);
233    
234            if    ($is_hypo && $in{$peg})           { $hypo_sub++ }
235            elsif ($is_hypo && ! $in{$peg})         { $hypo_nosub++ }
236            elsif ((! $is_hypo) && (! $in{$peg}))   { $nothypo_nosub++ }
237            elsif ((! $is_hypo) && $in{$peg})       { $nothypo_sub++ }
238        }
239        my $tot = $hypo_sub + $nothypo_sub + $hypo_nosub + $nothypo_nosub;
240    
241        my ($fracHS, $fracNHS, $fracHNS, $fracNHNS);
242    
243        if ($tot == 0) {
244            $fracHS = sprintf "%.2f", 0.0;
245            $fracNHS = sprintf "%.2f", 0.0;
246            $fracHNS = sprintf "%.2f", 0.0;
247            $fracNHNS = sprintf "%.2f", 0.0;
248        } else {
249            $fracHS = sprintf "%.2f", $hypo_sub / $tot * 100;
250            $fracNHS = sprintf "%.2f", $nothypo_sub / $tot * 100;
251            $fracHNS = sprintf "%.2f", $hypo_nosub / $tot * 100;
252            $fracNHNS = sprintf "%.2f", $nothypo_nosub / $tot * 100;
253        }
254    
255        my $statistics = {
256            hypothetical_in_subsystem => $hypo_sub,
257            hypothetical_not_in_subsystem => $hypo_nosub,
258            non_hypothetical_in_subsystem => $nothypo_sub,
259            non_hypothetical_not_in_subsystem => $nothypo_nosub,
260            hypothetical_in_subsystem_percent => $fracHS,
261            hypothetical_not_in_subsystem_percent => $fracHNS,
262            non_hypothetical_in_subsystem_percent => $fracNHS,
263            non_hypothetical_not_in_subsystem_percent => $fracNHNS
264            };
265    
266        $fh = new FileHandle(">$cache");
267        if ($fh)
268        {
269            while (my($k, $v) = each %$statistics)
270            {
271                print $fh join("\t", $k, $v), "\n";
272            }
273            close($fh);
274        }
275    
276        return $statistics;
277    }
278    
279  #  #
280  # To retrieve a subsystem in FIGV, we create the subsystem as normal via $fig->get_subsystem,  # To retrieve a subsystem in FIGV, we create the subsystem as normal via $fig->get_subsystem,
281  # then insert the row for the virtual org dir we are processing.  # then insert the row for the virtual org dir we are processing.
# Line 1085  Line 1242 
1242          chomp;          chomp;
1243          my($sname, $role, $peg) = split(/\t/);          my($sname, $role, $peg) = split(/\t/);
1244    
1245          my $genome = &FIG::genome_of($peg);          my($genome) = ($peg =~ /fig\|(\d+\.\d+)/);
1246    
1247            # my $genome = &FIG::genome_of($peg);
1248    
1249          push(@{$bindings->{$sname}->{$role}}, $peg);          push(@{$bindings->{$sname}->{$role}}, $peg);
1250          push(@{$peg_index->{$peg}}, [$sname, $role]);          push(@{$peg_index->{$peg}}, [$sname, $role]);

Legend:
Removed from v.1.33  
changed lines
  Added in v.1.34

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3