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

Diff of /FigKernelPackages/FIG.pm

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

revision 1.447, Sun Mar 19 21:30:55 2006 UTC revision 1.448, Tue Mar 21 15:53:30 2006 UTC
# Line 5343  Line 5343 
5343      return wantarray() ? @aliases : join(",",@aliases);      return wantarray() ? @aliases : join(",",@aliases);
5344  }  }
5345    
5346    sub feature_aliases_bulk {
5347        my($self,$id_list,$no_del_check) = @_;
5348        my($rdbH,$relational_db_response,@aliases,$aliases,%aliases,$x);
5349    
5350        my(@ids);
5351    
5352        if ($no_del_check)
5353        {
5354            @ids = @$id_list;
5355        }
5356        else
5357        {
5358            @ids = grep { not $self->is_deleted_fid($_) } @$id_list;
5359        }
5360    
5361        my $cond = join(" or ", map { "id = '$_'" } @ids);
5362    
5363        $rdbH = $self->db_handle;
5364    
5365        my $res = $rdbH->SQL(qq(SELECT id, aliases
5366                                FROM features
5367                                WHERE ( $cond )));
5368    
5369        my %aliases;
5370        for my $ent (@$res)
5371        {
5372            my($id, $aliases) = @$ent;
5373            map { $aliases{$id}->{$_} = 1 }  split(/,/,$aliases);
5374        }
5375    
5376        my $res = $rdbH->SQL(qq(SELECT id, alias
5377                                FROM ext_alias
5378                                WHERE ( $cond )));
5379    
5380        for my $ent (@$res)
5381        {
5382            my($id, $alias) = @$ent;
5383            $aliases{$id}->{$alias} = 1;
5384        }
5385    
5386        my $out = {};
5387    
5388        for my $id (keys(%aliases))
5389        {
5390            $out->{$id} = [sort grep { not /^xxx\d+$/ } keys(%{$aliases{$id}})];
5391        }
5392    
5393        return $out;
5394    }
5395    
5396    #
5397    # Uniprot aliases show up in the external aliases.
5398    #
5399    sub uniprot_aliases_bulk {
5400        my($self,$id_list,$no_del_check) = @_;
5401        my(@ids);
5402    
5403        if ($no_del_check)
5404        {
5405            @ids = @$id_list;
5406        }
5407        else
5408        {
5409            @ids = grep { not $self->is_deleted_fid($_) } @$id_list;
5410        }
5411    
5412        my $cond = join(" or ", map { "id = '$_'" } @ids);
5413    
5414        my $rdbH = $self->db_handle;
5415    
5416        my $res = $rdbH->SQL(qq(SELECT id, alias
5417                                FROM ext_alias
5418                                WHERE ( $cond ) AND alias like 'uni|%'));
5419    
5420        my %aliases;
5421        for my $ent (@$res)
5422        {
5423            my($id, $alias) = @$ent;
5424            $aliases{$id}->{$alias} = 1;
5425        }
5426    
5427        my $out = {};
5428    
5429        for my $id (keys(%aliases))
5430        {
5431            $out->{$id} = [sort grep { not /^xxx\d+$/ } keys(%{$aliases{$id}})];
5432        }
5433    
5434        return $out;
5435    }
5436    
5437  =head3 by_alias  =head3 by_alias
5438    
5439  usage: $peg = $fig->by_alias($alias)  usage: $peg = $fig->by_alias($alias)
# Line 6353  Line 6444 
6444      return $wantarray ? () : "";      return $wantarray ? () : "";
6445  }  }
6446    
6447    sub function_of_bulk {
6448        my($self,$id_list, $no_del_check) = @_;
6449        my($relational_db_response,@tmp,$entry,$i);
6450        my $wantarray = wantarray();
6451        my $rdbH = $self->db_handle;
6452    
6453        my(@ids);
6454    
6455        if ($no_del_check)
6456        {
6457            @ids = @$id_list;
6458        }
6459        else
6460        {
6461            @ids = grep { not $self->is_deleted_fid($_) } @$id_list;
6462        }
6463    
6464        my $cond = join(" or ", map { "prot = '$_'" } @ids);
6465    
6466        my $res = $rdbH->SQL(qq(SELECT prot, assigned_function
6467                                FROM assigned_functions
6468                                WHERE ( ( $cond ) AND made_by = 'master' )));
6469    
6470        my $out = {};
6471        map { $out->{$_->[0]} = $_->[1] } @$res;
6472        return($out);
6473    }
6474    
6475  =head3 translated_function_of  =head3 translated_function_of
6476    
6477  usage: $function  = $fig->translated_function_of($peg,$user)  usage: $function  = $fig->translated_function_of($peg,$user)
# Line 14172  Line 14291 
14291          $x = $self->{_deleted_fids} = {};          $x = $self->{_deleted_fids} = {};
14292      }      }
14293    
14294      if (defined($y = $x->{$fid})) { return $y }      if (defined($y = $x->{$fid}))
14295      if (! $self->is_genome(&genome_of($fid)))  { $x->{$fid} = 1; return 1 }      {
14296            return $y;
14297        }
14298        if (! $self->is_genome(&genome_of($fid)))
14299        {
14300            $x->{$fid} = 1;
14301            return 1;
14302        }
14303    
14304        #
14305        # If we've loaded the table, and it's not there, it's not deleted.
14306        #
14307        if ($self->{_deleted_fids_loaded})
14308        {
14309            return 0;
14310        }
14311    
14312      my $dbh = $self->db_handle();      my $dbh = $self->db_handle();
14313      if (! $self->table_exists('deleted_fids'))      if (! $self->table_exists('deleted_fids'))
# Line 14199  Line 14333 
14333          }          }
14334      }      }
14335    
14336        #
14337        # Cache the whole darn deleted table.
14338        #
14339    
14340        $self->{_deleted_fids_loaded} = 1;
14341        my $res = $dbh->SQL("SELECT fid FROM deleted_fids");
14342        map { $x->{$_->[0] } = 1 } @$res;
14343    
14344        return $x->{$fid};
14345    
14346      my $res = $dbh->SQL("SELECT fid FROM deleted_fids WHERE fid = '$fid'");      my $res = $dbh->SQL("SELECT fid FROM deleted_fids WHERE fid = '$fid'");
14347      my $deleted = (@$res > 0);      my $deleted = (@$res > 0);
14348      $x->{$fid} = $deleted;      $x->{$fid} = $deleted;

Legend:
Removed from v.1.447  
changed lines
  Added in v.1.448

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3