[Bioperl-l] Bio::DB::SeqFeature

Lincoln Stein lincoln.stein at gmail.com
Thu Oct 5 18:32:40 UTC 2006


Hi Daniel,

The warnings you are seeing are occurring because
Bio::SeqFeature::Gene::GeneStructure contains a CODE reference. I
think it must be registering a cleanup method via its Bio::Root::Root
ancestor. When Storable serializes the object, it complains that it
can't serialize the CODE reference and instead converts it into the
string "CODE(0xXXXXX)". Then, after you thaw the object,
Bio::Root::Root is complaining that the CODE reference is invalid
because it is a string, not a reference.

Yuck. I think, however, that I can fix this by setting some magic
variables in Storable version 2.05 that will decompile and compile the
CODE references. I will try this and send you a note when the code is
in CVS.

GBrowse does run off Bio::DB::SeqFeature::Store and is noticeably
faster than the original Bio::DB::GFF adaptor. Nothing really changes
except that you set the db_adaptor option to
Bio::DB::SeqFeature::Store. I haven't tried it using
Bio::SeqFeature::Gene::GeneStructure, so no guarantees, but I am
hopeful that it will work.

Lincoln



On 10/5/06, Daniel Lang <daniel.lang at biologie.uni-freiburg.de> wrote:
> Hi,
>
> we are storing Bio::SeqFeature::Gene::GeneStructure objects (with
> multiple transcripts) using Bio::DB::SeqFeature::Store in a mysql db
> (latest bioperl-live checkout).
>
> The Bio::SeqFeature::Gene::GeneStructure's are generated from scratch
> out of a database.
>
> The first observation is that is seems to work (fetched objects behave
> like Bio::SeqFeature::Gene::GeneStructure's) despite the fact that we
> get these warnings:
>
> Can't store item CODE(0x113db10) at lib/Storable.pm (autosplit into
> lib/auto/Storable/_freeze.al) line 287, <STDIN> line 1.
> Can't store item CODE(0x11786f0) at lib/Storable.pm (autosplit into
> lib/auto/Storable/_freeze.al) line 287, <STDIN> line 1.
>         (in cleanup) Not a CODE reference at
> /home/lang/bioperl/bioperl-live//Bio/Root/Root.pm line 438, <STDIN> line 1.
> prepare_cached(SELECT f.id,f.object
>   FROM feature as f
>   WHERE (   f.seqid=?
>    AND   f.end>=? AND f.start<=? AND ((f.tier=? AND f.bin between ? AND ?)
>          OR (f.tier=? AND f.bin between ? AND ?)
>          OR (f.tier=? AND f.bin between ? AND ?)
>          OR (f.tier=? AND f.bin between ? AND ?)
>          OR (f.tier=? AND f.bin between ? AND ?)
>          OR (f.tier=? AND f.bin between ? AND ?)
>          OR (f.tier=? AND f.bin between ? AND ?))
> )
>
> ) statement handle DBI::st=HASH(0x1c317cf0) still Active at
> /home/lang/bioperl/bioperl-live//Bio/DB/SeqFeature/Store/DBI/mysql.pm
> line 1422
>         (in cleanup) Not a CODE reference at
> /home/lang/bioperl/bioperl-live//Bio/Root/Root.pm line 438, <STDIN> line 1.
>
> Is this something serious? Does this mean that the stored object doesn't
> have everything it had before freezing? Or are we using
> Bio::DB::SeqFeature inappropriately?
>
> The other question would be, if we can visualize these stored feature
> objects easily using gbrowse? I didn't find a hint mentioning
> Bio::DB::SeqFeature as being supported by gbrowse on the gmod pages...
> Is it working already? Will it?
>
> Thanks in advance,
> Daniel
>
> --
>
> Daniel Lang
> University of Freiburg, Plant Biotechnology
> Schaenzlestr. 1, D-79104 Freiburg
> fax: +49 761 203 6945
> phone: +49 761 203 6974
> homepage:  http://www.plant-biotech.net/
> e-mail: daniel.lang at biologie.uni-freiburg.de
>
> #################################################
> My software never has bugs.
> It just develops random features.
> #################################################
>
>
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>


-- 
Lincoln D. Stein
Cold Spring Harbor Laboratory
1 Bungtown Road
Cold Spring Harbor, NY 11724
(516) 367-8380 (voice)
(516) 367-8389 (fax)
FOR URGENT MESSAGES & SCHEDULING,
PLEASE CONTACT MY ASSISTANT,
SANDRA MICHELSEN, AT michelse at cshl.edu



More information about the Bioperl-l mailing list