[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.3, Tue Nov 28 17:09:22 2006 UTC revision 1.4, Tue Nov 28 21:22:05 2006 UTC
# Line 24  Line 24 
24  use SproutFIG;  use SproutFIG;
25  use Tracer;  use Tracer;
26  use Data::Dumper;  use Data::Dumper;
27    use vars qw($AUTOLOAD);
28    
29  sub new {  sub new {
30      my($class,$org_dir,$low_level) = @_;      my($class,$org_dir,$low_level) = @_;
# Line 47  Line 48 
48      return bless $self, $class;      return bless $self, $class;
49  }  }
50    
51    #
52    # Redirect any method invocations that we don't implement out to the
53    # underlying FIG object.
54    #
55    sub AUTOLOAD
56    {
57        my($self, @args) = @_;
58    
59        my $meth = $AUTOLOAD;
60        $meth =~ s/.*:://;
61    
62        my $fig = $self->{_fig};
63        my $args = Dumper(\@args);
64        if (wantarray)
65        {
66            my @res = $fig->$meth(@args);
67            warn "FIGV invoke $meth($args) returns\n", Dumper(\@res);
68            return @res;
69        }
70        else
71        {
72            my $res = $fig->$meth(@args);
73            warn "FIGV invoke $meth($args) returns\n", Dumper($res);
74            return $res;
75        }
76    }
77    
78    
79  sub genomes {  sub genomes {
80      my($self,$complete) = @_;      my($self,$complete) = @_;
81      my $fig = $self->{_fig};      my $fig = $self->{_fig};
# Line 246  Line 275 
275      }      }
276  }  }
277    
278    sub translation_length
279    {
280        my($self, $peg) = @_;
281    
282        my $fig     = $self->{_fig};
283        my $newG    = $self->{_genome};
284        my $newGdir = $self->{_orgdir};
285    
286        if (($peg =~ /^fig\|(\d+\.\d+)/) && ($1 eq $newG))
287        {
288            &load_pseq($self);
289            return length($self->{_pseq}->{$peg});
290        }
291        else
292        {
293            return $fig->translation_length($peg);
294        }
295    }
296    
297    sub translatable
298    {
299        my($self, $peg) = @_;
300    
301        my $fig     = $self->{_fig};
302        my $newG    = $self->{_genome};
303        my $newGdir = $self->{_orgdir};
304    
305        if (($peg =~ /^fig\|(\d+\.\d+)/) && ($1 eq $newG))
306        {
307            &load_pseq($self);
308            return length($self->{_pseq}->{$peg}) > 0 ? 1 : 0;;
309        }
310        else
311        {
312            return $fig->translatable($peg);
313        }
314    }
315    
316    sub is_real_feature
317    {
318        my($self, $fid) = @_;
319    
320        if ($self->is_virtual_feature($fid))
321        {
322            return 1;
323        }
324        else
325        {
326            return $self->{_fig}->is_real_feature($fid);
327        }
328    
329    }
330    
331    sub is_virtual_feature
332    {
333        my($self, $peg) = @_;
334    
335        my $fig     = $self->{_fig};
336        my $newG    = $self->{_genome};
337        my $newGdir = $self->{_orgdir};
338    
339        if (($peg =~ /^fig\|(\d+\.\d+)/) && ($1 eq $newG))
340        {
341            &load_pseq($self);
342            return 1;
343        }
344        else
345        {
346            return 0;
347        }
348    }
349    
350  sub load_pseq {  sub load_pseq {
351      my($self) = @_;      my($self) = @_;
352    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3