This class defines an abstract interface for basic residue-based meta
information. Examples of this kind of meta data are secondary
structures (RNA and protein), protein hydrophobicity assignments, or
other alternative alphabets for polypeptides, sequence quality data
and nucleotide alignments with translations.
The length of the meta data sequence is not dependent on the amount of
the meta information. The meta information always covers all the
residues, but a blank value is used to denote unavailable
information. If necessary the implementation quietly truncates or
extends meta information with blank values. Definition of blank is
implementation dependent. Gaps in MSAs should not have meta
information.
At this point a residue in a sequence object can have only one meta
value. If you need more, use multiple copies of the sequence object.
Meta data storage can be implemented in various ways, e.g: string,
array of scalars, array of hashes, array of objects.
If the implementation so chooses, there can be more then one meta
values associated to each residue. See
named_meta and
names_submeta. Note that use of arbitrary names is very prone to
typos leading to creation of additional copies of meta data sets.
Bio::Seq::Meta provides basic, pure perl implementation of sequences
with meta information. See
Bio::Seq::Meta. Application specific
implementations will override and add to these methods.
Character based meta data is read and set by method meta() and its
variants. These are the suffixes and prefixes used in the variants:
[named_] [sub] meta [_text]
_text
Suffix
_text guaranties that output is a string. Note that it does
not limit the input.
sub
Prefix
sub, like in subseq(), means that the method applies to sub
region of the sequence range and takes start and end as arguments.
Unlike subseq(), these methods are able to set values. If the range
is not defined, it defaults to the complete sequence.
named_
Prefix
named_ in method names allows the used to attach multiple
meta strings to one sequence by explicitly naming them. The name is
always the first argument to the method. The "unnamed" methods use the
class wide default name for the meta data and are thus special cases
"named" methods.
Note that internally names are keys in a hash and any misspelling of a
name will silently store the data under a wrong name. The used names
(keys) can be retrieved using method meta_names(). See
meta_names.
The rest of the documentation details each of the object methods.
Internal methods are usually preceded with a _
Implemeting classes will need to rewrite these Bio::PrimaryI methods.