[Bioperl-l] Announce: Bio::Seq::Quality

Marc Logghe Marc.Logghe at devgen.com
Thu Jul 14 05:53:30 EDT 2005

Hi Heikki,

> I've left Bio::Seq::PrimaryQual for the next rewrite. Its 
> functionality is all in the Quality class (get and set id and 
> quality values), but you can not get the quality values from 
> a Bio::Seq::Quality object if you do not have the sequence 
> set. Usually qualities without residues do not make such 
> sense, but there is something in Bio::Assembly code or at 
> least in its tests that need plain qualities.
> >   The greatest difference to Bio::Seq::SeqWithQuality is 
> that in this
> >   implementation quality for all sequence residues are automatically
> >   assigned a value of '0' (zero) unless you set it to something
> >   else. Length of the quality array always equals the length of the
> >   sequence. Therefore, length() never returns "DIFFERENT".

When these to extracts of your mail are considered, am I correct in
thinking that the lengths of the sequence and quality array only are
identical when you pass a sequence in the construcor together with the
quality string ? But in all the other cases, how can one be sure that
the lengths are equal ?
E.g. you can first create the Bio::Seq::Quality object passing it the
quality and assign the sequence afterwards by calling $qual->seq($seq).
As you indicated, it is even possible not to set the sequence, so seq
length is zero while the quality is not.
Does it mean a user should check the lengths explicitely ?
BTW I am currently editing Bio::Assembly::IO::ace so that it also parses
CAP3 generated ACE files. You think it is OK also to set the contig
sequence for the quality object, e.g. not leaving the seq attribute
empty. I'll check the Bio::Assembly code why plain quality is needed to
pass the tests.

More information about the Bioperl-l mailing list