[Bioperl-l] [BioSQL-l] Bio::Annotation issues with BioSQL
Hilmar Lapp
hlapp at gmx.net
Tue Aug 19 13:56:42 EDT 2008
On Aug 18, 2008, at 4:53 PM, Mark Johnson wrote:
> I'm presently refactoring an in-house protein annotation pipeline
> and converting it to use BioSQL as a data store. I've noticed some
> slightly screwy behavior with regard to how some of the
> Bio::Annotation classes are handled:
>
> -Instances of Bio::Annotation::SimpleValue and
> Bio::Annotation::StructuredValue attached to the annotation collection
> for a sequence feature (Bio::SeqFeature::Generic) are converted to
> tags/values on the feature.
>
> -Instances of Bio::Annotation::DBLink with attached comments loose
> the comment.
> [...]
> $query->where(["s.display_id like DEBUG%'"]);
There's a single quote missing here, but I'm assuming that's a result
of copy/paste editing?
> [...]
> Is bioperl-db / BioSQL trying to tell me that I shouldn't be using
> Bio::Annotation::SimpleValue and Bio::Annotation::StructuredValue?
Your example code doesn't contain an example for where you are getting
the B::A::StructuredValue object from. If you didn't create that
yourself, it would be good to know what you did to end up with that.
Chris Fields has written B::A::Tagtree which would be way forward, and
if you created the object yourself, can you take a look at that and
see whether that class wouldn't serve your purpose as well or even
better?
In order to be stored in BioSQL structured (hierarchical, nested)
annotation is flattened into a string representation, because BioSQL
can't store nested annotation collections natively. Right now if I am
not mistaken upon retrieval this is not converted back into a
B::A::Tagtree object but rather left flat. This is being worked on
though, we've just discussed some issues connected with that.
I could make B::A::StructuredValue work the same way, but I'm not sure
what it provides that B::A::Tagtree doesn't. The latter uses
Data::Stag under the hood, which is much cleaner, and more extensible
in the future.
As for SimpleValue annotation versus tag/value annotation for
seqfeatures, yes right now these are treated interchangeably for the
purposes of BioSQL and Bioperl-db. You can do this easily too on your
end by using Bio::SeqFeature::AnnotationAdaptor.
> Is there even a place in the BioSQL schema for a comment to be
> attached
> to a DBLink?
No there isn't. I thought it is but it turns out that this isn't yet
one of the desirable extensions to BioSQL from 1.1.x onwards, as
documented on the wiki:
http://www.biosql.org/wiki/Enhancement_Requests
I'll add it (but feel free to do so yourself, especially if you have
other enhancmenets).
-hilmar
--
===========================================================
: Hilmar Lapp -:- Durham, NC -:- hlapp at gmx dot net :
===========================================================
More information about the Bioperl-l
mailing list