[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.1, Mon Nov 27 18:32:56 2006 UTC revision 1.2, Tue Nov 28 17:00:05 2006 UTC
# Line 74  Line 74 
74      }      }
75  }  }
76    
77    
78    sub genes_in_region {
79        my($self,$genome,$contig,$beg,$end) = @_;
80    
81        my $fig     = $self->{_fig};
82        my $newG    = $self->{_genome};
83        my $newGdir = $self->{_orgdir};
84    
85        if ($genome ne $newG)
86        {
87            return $fig->genes_in_region($genome,$contig,$beg,$end);
88        }
89        else
90        {
91            &load_tbl($self);
92            my $tblH = $self->{_tbl};
93            my $maxV = 0;
94            my $minV = 1000000000;
95            my $genes = [];
96            while ( my($fid,$tuple) = each %$tblH)
97            {
98                if (($tuple->[0]->[0] =~ /^(\S+)_(\d+)_\d+$/) && ($1 eq $contig))
99                {
100                    my $beg1 = $2;
101                    my $last = @{$tuple->[0]} - 1;
102                    if (($tuple->[0]->[$last] =~ /^(\S+)_\d+_(\d+)$/) && ($1 eq $contig))
103                    {
104                        my $end1 = $2;
105                        if (&overlaps($beg,$end,$beg1,$end1))
106                        {
107                            $minV = &FIG::min($minV,$beg1,$end1);
108                            $maxV = &FIG::max($maxV,$beg1,$end1);
109                            push(@$genes,$fid);
110                        }
111                    }
112                }
113            }
114            return ($genes,$minV,$maxV);
115        }
116    }
117    
118    sub overlaps {
119        my($b1,$e1,$b2,$e2) = @_;
120    
121        if ($b1 > $e1) { ($b1,$e1) = ($e1,$b1) }
122        if ($b2 > $e2) { ($b2,$e2) = ($e2,$b2) }
123        return &FIG::between($b1,$b2,$e1) || &FIG::between($b2,$b1,$e2);
124    }
125    
126  sub feature_location {  sub feature_location {
127      my($self,$fid) = @_;      my($self,$fid) = @_;
128    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3