[BioSQL-l] Storing "per letter" annotation?
Hilmar Lapp
hlapp at gmx.net
Sat May 24 20:16:31 EDT 2008
Comments below.
On May 24, 2008, at 8:21 AM, Peter wrote:
> This is a BioSQL related query - but first a little background:
>
> One topic that has recently come up on the Biopython developers
> mailing list is extending our sequence classes to deal with "per
> letter" annotation. This annotation should then survive splicing the
> sequence into sub-strings for example.
>
> For example, with nucleotide sequences, each base-pair may have an
> associated quality score (one float per bp). Or perhaps you might
> have a contig region where for each bp you want to record the number
> of fragments it is supported by (one integer per bp).
>
> Similarly, for proteins, you might know the secondary structure (for
> example held as a character per amino acid, a = alpha helix etc). For
> a PDB file, you might want to have an object for each residue holding
> an associated set of atomic coordinates, or may just the C-alpha back
> bone coordinates (three floats per residue). One final motivating
> example, you might want to hold the solvent accessibility of each
> residue (one float per residue).
>
> First of all, have any of the other Bio* project implemented anything
> like this? If so, I'd like to have a look at the relevant
> documentation (and depending on the language, even the
> implementation). And secondly, how would you go about storing it in
> BioSQL? As far as I can see, there isn't anything in BioSQL at the
> moment suitable (other than abusing the sequence features).
It sounds like in essence you want to store alternative sequences in
other alphabets for a sequence?
In BioPerl we have Bio::Seq::SeqWithQuality and the more generic
Bio::Seq::MetaI. However, BioSQL in v1.0 really only supports a 1-1
relationship between Bioentry and Biosequence, i.e., a bioentry can
only have a single sequence, and hence additional sequences (quality
values, secondary structure, etc) would need to be stored as a flat
annotation value, or through a the biosequence of a second bioentry
that is linked to the first through a bioentry_relationship.
(Biosequence in principle allows any alphabet.)
Neither of those kludges (in fact, quite bad hacks) seem particularly
attractive, so this would actually be another use case in favor of
relaxing the 1-1 cardinality constraint to one that's 1-n. (Feel free
to add this to the roadmap on the wiki.)
As you say, you could indeed do this using seqfeatures too, but
that'd be an abuse.
-hilmar
--
===========================================================
: Hilmar Lapp -:- Durham, NC -:- hlapp at gmx dot net :
===========================================================
More information about the BioSQL-l
mailing list