[Bioperl-l] [BioSQL-l] Bio::Annotation issues with BioSQL
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
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
> 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:
I'll add it (but feel free to do so yourself, especially if you have
: Hilmar Lapp -:- Durham, NC -:- hlapp at gmx dot net :
More information about the Bioperl-l