[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.30, Tue Jun 5 19:47:42 2007 UTC revision 1.31, Tue Jun 12 18:16:15 2007 UTC
# Line 253  Line 253 
253    
254      if ($genome eq $newG)      if ($genome eq $newG)
255      {      {
256            my @fnfiles = <$newGdir/proposed*functions>;
257            if (@fnfiles == 0)
258            {
259                @fnfiles = <$newGdir/assigned*functions>;
260            }
261    
262            if (@fnfiles == 0)
263            {
264                return [];
265            }
266          my %assign = map { ( $_ =~ /^(fig\|\d+\.\d+\.peg\.\d+)\t(\S.*\S)/) ? ($1 => $2) : () }          my %assign = map { ( $_ =~ /^(fig\|\d+\.\d+\.peg\.\d+)\t(\S.*\S)/) ? ($1 => $2) : () }
267                               `cat $newGdir/proposed*functions`;                               `cat @fnfiles`;
268          return [map { [$_,$assign{$_}] } sort { &FIG::by_fig_id($a,$b) } keys(%assign)];          return [map { [$_,$assign{$_}] } sort { &FIG::by_fig_id($a,$b) } keys(%assign)];
269      }      }
270      else      else
# Line 1764  Line 1774 
1774      return &FIG::taxonomic_groups($tree);      return &FIG::taxonomic_groups($tree);
1775  }  }
1776    
1777    =head2 Search Database
1778    
1779    Searches the database for objects that match the query string in some way.
1780    
1781    Returns a list of results if the query is ambiguous or an unique identifier
1782    otherwise.
1783    
1784    =cut
1785    
1786    sub search_database {
1787        # get parameters
1788        my ($self, $query, $options) = @_;
1789    
1790        my $fig     = $self->{_fig};
1791        my $newG    = $self->{_genome};
1792        my $newGdir = $self->{_orgdir};
1793    
1794        #
1795        # Check for local ids and genome.
1796        #
1797    
1798    
1799        if ($query eq $newG or lc($query) eq lc($self->genus_species($newG)))
1800        {
1801            return { type => 'organism', result => $newG };
1802        }
1803    
1804        if ($query =~ /^fig\|(\d+\.\d+)\.peg/ and $1 eq $newG)
1805        {
1806            return { type => 'feature', result => $query };
1807        }
1808    
1809        #
1810        # Match on functions
1811        #
1812    
1813        &load_functions($self);
1814    
1815        my @protlist;
1816        my $fn = $self->{_functions};
1817        for my $id (keys %$fn)
1818        {
1819            if ($fn->{$id} =~ /$query/i)
1820            {
1821                push @protlist, [$id, $fn->{$id}, $newG];
1822            }
1823        }
1824    
1825        #
1826        # Pull FIG lookups.
1827        #
1828    
1829        my $res = $fig->search_database($query, $options);
1830    
1831        #
1832        # And integrate our protein list
1833        #
1834    
1835        my $res_prot;
1836        if (ref($res) eq 'ARRAY')
1837        {
1838            for my $ent (@$res)
1839            {
1840                if ($ent->{type} eq 'proteins')
1841                {
1842                    $res_prot = $ent->{result};
1843                }
1844            }
1845            if (!$res_prot)
1846            {
1847                $res_prot = {type => 'proteins', result => \@protlist}
1848            }
1849            else
1850            {
1851                push(@$res_prot, @protlist);
1852            }
1853        }
1854    
1855        return $res;
1856    
1857    }
1858    
1859    
1860  =head3 model_directory  =head3 model_directory
1861    
1862  C<< FIG->model_directory($organism); >>  C<< FIG->model_directory($organism); >>

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3