[Bioperl-pipeline] Annotation+Transformers

Juguang Xiao juguang at fugu-sg.org
Thu Mar 20 10:00:56 EST 2003


>
>
> So either I over kill the problem by attaching an iohandler to the 
> Transformer and fetch the RawContig or attach a RawContigAdaptor to 
> the converter
> and fetch it using the original input id...any feelings?
>

I do not like this first way, since Transformer instance module should 
be biopipe independant, at least the converter is. In general, 
converter is just in charge of conversion, database information is 
necessary.

I also had such problem, Shawn, do you remember that I added 
get_all_Contig_name in RawContigAdaptor in  my local code, and never 
submit into ensembl because i am not sure if they like this 
no-harm-but-not-necessary-for-them sub.  I prefer to have  2 own 
module, rather than changing the ensembl code.

# My_EnsEMBL_DBSQL_DBAdaptor.pm
package My_EnsEMBL_DBSQL_DBAdaptor;
use strict;
use Bio::EnsEMBL::DBSQL::DBAdaptor;
use vars qw(@ISA);
@ISA = qw(Bio::EnsEMBL::DBSQL::DBAdaptor);

sub get_RawContigAdaptor{
     my ($self) = @_;
     return $self->_get_adaptor("My_EnsEMBL_DBSQL_RawContigAdaptor");

}
1;

# My_EnsEMBL_DBSQL_RawContigAdaptor.pm
package My_EnsEMBL_DBSQL_RawContigAdaptor;
use strict;
use vars qw(@ISA);
use Bio::EnsEMBL::DBSQL::RawContigAdaptor;
@ISA = qw(Bio::EnsEMBL::DBSQL::RawContigAdaptor);

=head2 get_all_Contig_name

  Title   : get_all_Contig_id
  Usage   :
     my @contig_names = $obj->get_all_Contig_name;
     my @contig_names = $obj->get_all_Contig_name(-limit => 5);
     my @contig_names = $obj->get_all_Contig_name(-where => 
$where_clause);

  Function: returns all the valid (live) Contig ids in the database
  Example :
  Returns : an array of RawContig objects.
  Args    :

=cut

sub get_all_Contig_name{
    my ($self, @args) = @_;
    my $sql = "select name from contig";
    my ($limit, $where) = $self->_rearrange([qw(LIMIT WHERE)], @args);

    $sql .= " where $where" if (defined $where);
    $sql .= " limit $limit" if(defined $limit && $limit =~ /^\d+$/);

    my $sth = $self->prepare($sql);
    my $res = $sth->execute;
    my @out;
    while( my $rowhash = $sth->fetchrow_hashref) {
        push(@out,$rowhash->{'name'});
    }

    return @out;
}
1;

Juguang


Juguang Xiao
Bioinformatics Engineer
Computational Biology
Temasek Life Sciences Laboratory
1 Research Link
National University of Singapore
Singapore 117604



More information about the bioperl-pipeline mailing list