[Bioperl-l] bioperl-db woes

Stefan Kirov stefan.kirov at bms.com
Thu Apr 17 15:28:42 UTC 2008


Hilmar,
I think I saw what happens with this adaptor-
In Bio::DB::BioSQL::DBAdaptor::_load_object_adaptor (call from 
create_persistent) there is request that this module is loaded:
Bio/DB/BioSQL/RichSeqAdaptor.pm
There is no such module... This always fails, but since it is evaled, 
there is no actual error- instead. Perhaps this is leftover...?
This got me fooled...

I guess Chris could be right-
  Bio::DB::BioSQL::AnnotationCollectionAdaptor::_annotation_map_key is 
being passed Bio::Annotation::Collection as a value for $obj->obj(). Or 
recursing too far?
Anyway, I am just guessing here- I do not know the architecture of 
bioperl-db...
Thanks again for the help...
Stefan

  On Thu, 17 Apr 2008, Hilmar Lapp wrote:

>
> On Apr 17, 2008, at 10:18 AM, Stefan Kirov wrote:
>> In any case I debugged and tracked that down to the RichSeq adaptor module 
>> missing.
>
>
> That almost can't be the problem. Every Bio::Seq::RichSeq is-a Bio::Seq and a 
> SeqAdaptor is present.
>
> I'm afraid it gets stuck somewhere else and frankly I didn't see the 
> RichSeqAdaptor failing to load in your stack trace:
>
>>       ------------- EXCEPTION: Bio::Root::Exception -------------
>>
>>    MSG: Annotation of class Bio::Annotation::Collection not
>>    type-mapped. Internal error?
>>    STACK: Error::throw
>>    STACK: Bio::Root::Root::throw
>>    /home/kirovs/bioperl-live/Bio/Root/Root.pm:357
>>    STACK:
>>    Bio::DB::BioSQL::AnnotationCollectionAdaptor::_annotation_map_key
>>    Bio/DB/BioSQL/AnnotationCollectionAdaptor.pm:695
>>    STACK: Bio::DB::BioSQL::AnnotationCollectionAdaptor::store_children
>>    Bio/DB/BioSQL/AnnotationCollectionAdaptor.pm:204
>>    STACK: Bio::DB::BioSQL::BasePersistenceAdaptor::create
>>    Bio/DB/BioSQL/BasePersistenceAdaptor.pm:214
>>    STACK: Bio::DB::BioSQL::BasePersistenceAdaptor::store
>>    Bio/DB/BioSQL/BasePersistenceAdaptor.pm:251
>>    STACK: Bio::DB::Persistent::PersistentObject::store
>>    Bio/DB/Persistent/PersistentObject.pm:271
>>    STACK: Bio::DB::BioSQL::SeqAdaptor::store_children
>>    Bio/DB/BioSQL/SeqAdaptor.pm:224
>>    STACK: Bio::DB::BioSQL::BasePersistenceAdaptor::create
>>    Bio/DB/BioSQL/BasePersistenceAdaptor.pm:214
>>    STACK: Bio::DB::Persistent::PersistentObject::create
>>    Bio/DB/Persistent/PersistentObject.pm:244
>>    STACK: t/04swiss.t:36
>>    -----------------------------------------------------------
>
> What that tells me is that when bioperl-db tries to store the annotation 
> bundle of the (SwissProt) sequence, one of the annotations that it encounters 
> is of type Bio::Annotation::Collection. At present bioperl-db doesn't know 
> what to do with it; i.e., bioperl-db can't yet handle hierarchical annotation 
> collections (collections within collections).
>
> I believe this is due to recent changes in how the GN line is parsed in 
> BioPerl - Chris does this ring the right bell? I thought though you had built 
> in a method would allow flattening out?
>
> It's worth noting that BioSQL itself can't really represent nested annotation 
> collections other than by using ontology terms and their hierarchy, which at 
> present I think isn't really appropriate, but I have to think through the 
> issue more. In other words, in BioSQL you can't directly tie together a bunch 
> of qualifier value pairs into a "bag" and then nest this bag within another. 
> The way to make this work with the current schema is to flatten out the 
> nesting.
>
> 	-hilmar
> -- 
> ===========================================================
> : Hilmar Lapp  -:-  Durham, NC  -:-  hlapp at gmx dot net :
> ===========================================================
>
>
>



More information about the Bioperl-l mailing list