Bioperl: Re: Bioperl-guts: seq/primarySeq/seqFeature

James Gilbert jgrg@sanger.ac.uk
Thu, 18 May 2000 21:02:24 +0100 (BST)




Bradley,

I think this may be a bug in Bio::Seq::add_SeqFeature


   if( $feat->can("seq") ) {
       $fseq = $feat->seq;
       $aseq = $self->seq;

       if( defined $aseq ) {
	   if( defined $fseq ) {
	       if( $aseq ne $fseq ) {
		   $self->warn("$feat has an attached sequence which is not in this annseq. I worry about this");
	       }
	   } else {
	       if( $feat->can("attach_seq") ) {
		   # attach it 
		   $feat->attach_seq($aseq);

I think this last line should be:

             $feat->attach_seq($self->primary_seq);

Because $aseq is actually the sequence string.  
Also, I don't think it can ever have not show a
warning, because $fseq will always be the sequence
of the feature itself.  Maybe we want to do
something like this:

   # entire_seq appears to return the PrimarySeq
   # object attatched to the feature.  Maybe we
   # need a primary_seq method?
   if( $feat->can("entire_seq") ) {
       $fseq = $feat->entire_seq;
       $aseq = $self->primary_seq;

       if( defined $aseq ) {
	   if( defined $fseq ) {
	       if( $aseq != $fseq ) {
		   $self->warn("$feat has an attached sequence which is not in this annseq. I worry about this");
	       }
	   } else {
	       if( $feat->can("attach_seq") ) {
		   # attach it 
		   $feat->attach_seq($aseq);

The comparison $aseq != $fseq now tests to see if
the two primary_seq objects are the same object
(it in effect compares memory addresses).  

I've CC'd this to Ewan.  Am I dazed and confused
Ewan?

	James

PS: I've posted this to bioperl, because
bioperl-guts is supposed to be for boring
JitterBug messages etc...

On Thu, 18 May 2000, Bradley Marshall wrote:

> 
> So I'm working on parsing game features into bioperl
> features, but I'm having some issues with the best way
> to create a sequence with features.
> 
> The documentation just says this:
> 
>    $feat = new Bio::SeqFeature::Generic ( -start =>
> 10, -end => 100);
> 
>    # add it to an annotated sequence
> 
>    $annseq->add_SeqFeature($feat);
> 
> This doesn't work and throws this error:
> 
> -------------------- EXCEPTION --------------------
> MSG: Must attach Bio::PrimarySeqI objects to
> SeqFeatures
> CONTEXT: Error in object Bio::SeqFeature::Generic
> "anonymous Bio::SeqFeature::Generic"
> SCRIPT: seqFeature.pl
> STACK: 
> Bio::SeqFeature::Generic::attach_seq(521)
> Bio::Seq::add_SeqFeature(591)
> main::seqFeature.pl(22)
> ---------------------------------------------------
> 
> If I attach the feature to the seq first, it works,
> but it 1) looks a little odd and 2) throws a warning:
> 
> 
> $feat = new Bio::SeqFeature::Generic ( -start => 5,
> -end => 10);
> 
> $feat->attach_seq($annseq);
> 
> $annseq->add_SeqFeature($feat);
> 
> -------------------- WARNING --------------------
> MSG: Bio::SeqFeature::Generic=HASH(0x8232c90) has an
> attached sequence which is not in this annseq. I worry
> about this
> -------------------------------------------------
> 
> Is there a better way?
> 
> Thanks
> Brad
> 
> __________________________________________________
> Do You Yahoo!?
> Send instant messages & get email alerts with Yahoo! Messenger.
> http://im.yahoo.com/
> =========== Bioperl Project Mailing List Message Footer =======
> Project URL: http://bio.perl.org
> For info about how to (un)subscribe, where messages are archived, etc:
> http://www.techfak.uni-bielefeld.de/bcd/Perl/Bio/vsns-bcd-perl-guts.html
> ====================================================================
> 

James G.R. Gilbert
The Sanger Centre
Wellcome Trust Genome Campus
Hinxton
Cambridge                        Tel: 01223 494906
CB10 1SA                         Fax: 01223 494919

=========== Bioperl Project Mailing List Message Footer =======
Project URL: http://bio.perl.org/
For info about how to (un)subscribe, where messages are archived, etc:
http://www.techfak.uni-bielefeld.de/bcd/Perl/Bio/vsns-bcd-perl.html
====================================================================