[Bioperl-l] remote location support in BioSQL (bioperl-db) /Oracle

Hilmar Lapp hlapp at gmx.net
Tue Dec 6 11:44:41 EST 2005


Good point. No there is no such module, i.e., one that would implement 
RandomAccessI for BioSQL. Shouldn't be hard to write though; would you 
be inclined to volunteer?

	-hilmar

On Dec 5, 2005, at 10:27 AM, Razvan Sultana wrote:

> Hi !
> I have a question regarding the bioperl-db implementation in Oracle.
> I have created a BioSQL schema in Oracle and populated with the latest 
> version of Genbank.
> I used the "bleeding edge" version of bioperl, bioperl-db and 
> bioperl-schema from the CVS repository.
>
> When I try to extract the spliced sequences of the CDS features of 
> entries that have remote locations (e.g., for AF327267: 
> join(4..190,AF327268.1:89..275,AF327268.1:780..930,
>                     AF327268.1:1049..1196,AF327269.1:63..229,
>                     AF327269.1:522..659,AF327269.1:784..917,
>                     AF327269.1:1461..1582,AF327270.1:100..173,
>                     AF327270.1:349..417)
> the appended  code complains that it
> Can't locate object method "get_Seq_by_acc" via package 
> "Bio::DB::BioSQL::DBAdaptor"
> and rightly so, because the above object doesn't implement the 
> Bio::DB::RandomAccessI interface.
> If I omit $db from the spliced_seq() method call, I obviously get the 
> message:
> MSG: cannot get remote location for AF327268.1 without a valid 
> Bio::DB::RandomAccessI database handle (like Bio::DB::GenBank)
>
> My question is: is there an object to the BioSQL schema that 
> implements Bio::DB::RandomAccessI ?
> If there is, how do I get a handle to it?
> If there isn't, I would be willing to help implementing it.
>
> Thank you,
> Razvan Sultana
>
> #!/usr/local/bin/perl
> use strict;
> use Bio::DB::BioDB;
> use Bio::Seq::RichSeq;
> use Bio::DB::Query::BioQuery;
> use Getopt::Long;
>
> my $host = 'kevin';
> my $dbuser = 'biosql';
> my $dbpass;
> my $dbname = 'biocompd';
> my $driver = 'Oracle';
> my $acc;
> my $biodbname = 'genbank';
>
> &GetOptions( 'host=s' => \$host,
>             'driver=s' => \$driver,
>         'dbuser=s' => \$dbuser,
>         'dbpass=s' => \$dbpass,
>         'dbname=s' => \$dbname,
>         'accession=s' => \$acc);
> $acc = 'AF327270' unless $acc;
>
> my $db = Bio::DB::BioDB->new(-database => "biosql",
>                 -host     => $host,
>                 -dbname   => $dbname,
>                 -driver   => $driver,
>                 -user     => $dbuser,
>                 -pass     => $dbpass,
>                 );
>
> my $seqadaptor = $db->get_object_adaptor('Bio::SeqI');
> my $query = Bio::DB::Query::BioQuery->new(-datacollections => 
> ['Bio::PrimarySeqI e',
>                                                               
> 'BioNamespace=>Bio::PrimarySeqI db'],
>                                          -where => 
> ["e.accession_number = '$acc'",
>                                                     "db.namespace= 
> '$biodbname'"]);
> my $seq_object = Bio::Seq::RichSeq->new();
> my $query_result = $seqadaptor->find_by_query($query);
>
> while ($seq_object = $query_result->next_object()) {
>  for my $feature ($seq_object->get_SeqFeatures()) {
>    my $full_sequence = $seq_object->seq();
>    my $cds_seq = $feature->spliced_seq($db)->seq() if 
> ($feature->primary_tag() eq 'CDS');
>  }
> }
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
>
>
-- 
-------------------------------------------------------------
Hilmar Lapp                            email: lapp at gnf.org
GNF, San Diego, Ca. 92121              phone: +1-858-812-1757
-------------------------------------------------------------




More information about the Bioperl-l mailing list