[Biopython] User-defined SeqRecord annotations are trashed in INSDC formats?
Peter Cock
p.j.a.cock at googlemail.com
Tue Mar 22 15:30:46 UTC 2011
On Tue, Mar 22, 2011 at 3:08 PM, Uri Laserson <laserson at mit.edu> wrote:
>> You could stuff record level information into a source feature's
>> qualifier dictionary.
>
> What are the allowed types for the values of the qualifiers dictionary
> (that will be output correctly in INSDC)? Is it possible to have lists of
> strings?
As far as the current Biopython output goes, you can basically use any
(short) string as a qualifier key. Avoid keys with spaces in them (INSDC
use underscores) and other funny characters. For strict INSDC compliance
there is probably a white list of allowed feature types...
> What is the standard practice: a feature of type "source" that runs the
> entire length of the sequence? Or is it possible to have a SeqFeature with
> no position annotation? Ideally, if I slice the SeqFeature, I would like
> these annotations to stay with the slice no matter what.
If you did have a SeqFeature without a location, we couldn't write
it out in GenBank/EMBL format (the error handling here might be
improved).
If you have a SeqRecord with a (source) feature spanning the full
sequence, and you slice the SeqRecord to take a subsequence,
then that full length feature (and any other features not fully within
the subsequence) would be lost.
Using a source feature is really just a work around for the fact that
GenBank/EMBL do not support arbitrary record level annotation.
Do you have to use this as your output format? Would you not be
better off with using a database or something else instead?
Peter
More information about the Biopython
mailing list