[Bioperl-l] How to check the validity of an accession number ?
Heikki Lehvaslaiho
heikki at nildram.co.uk
Sun Nov 9 10:24:43 EST 2003
On Sun, 2003-11-09 at 00:47, Damien Marsic wrote:
> Disregard my previous message. I found out how to correctly write the code
> and now it's working fine.
Yes, looking at the code, I seem to have left out semicolon (;) after
the eval block.
-Heikki
> Damien
>
> ----- Original Message -----
> From: "Damien Marsic" <damien at rael.org>
> To: <heikki at ebi.ac.uk>
> Cc: "Bioperl" <bioperl-l at bioperl.org>
> Sent: Saturday, November 08, 2003 6:05 PM
> Subject: Re: [Bioperl-l] How to check the validity of an accession number ?
>
>
> > Thank you for your help. However, when I try it says "Syntax error". Sorry
> I
> > am not very good at perl and I have never seen "$@" before so I don't know
> > how to use it. But it really seems that there is a spelling error in your
> > example. PLease help.
> >
> > Damien
> >
> > ----- Original Message -----
> > From: "Heikki Lehvaslaiho" <heikki at nildram.co.uk>
> > To: "Damien Marsic" <damien at rael.org>
> > Cc: "Bioperl" <bioperl-l at bioperl.org>
> > Sent: Saturday, November 08, 2003 3:10 AM
> > Subject: Re: [Bioperl-l] How to check the validity of an accession number
> ?
> >
> >
> > > Damien,
> > >
> > > The change is in the bioperl code. It was put in almost 11 months ago
> > > for the 1.2 release. As the error message indicates, line 177 in
> > > Bio::DB::WebDBSeqI now throws an error. You can catch it with eval
> > > statement, e.g:
> > >
> > > eval {
> > > $seq = $stream -> get_Seq_by_acc($an);
> > > }
> > > if ($@) {
> > > print STDERR "Not a valid accession [$an]\n";
> > > next;
> > > }
> > >
> > >
> > > The Web interface to the bioperl CVS repository can help you track
> > > whys, whens and hows of code changes:
> > >
> > >
> >
> http://cvs.bioperl.org/cgi-bin/viewcvs/viewcvs.cgi/bioperl-live/Bio/DB/WebDBSeqI.pm?cvsroot=bioperl
> > >
> > > Yours,
> > >
> > > -Heikki
> > >
> > >
> > > On Sat, 2003-11-08 at 05:02, Damien Marsic wrote:
> > > > Hello,
> > > >
> > > > I hope someone will be able to help. I wrote a program that does the
> > > > following:
> > > >
> > > > - opens a file containing sequences named with their Genbank accession
> > > > number if it exists (and an arbitrary name if the sequence is not in
> > > > Genbank)
> > > >
> > > > - reads each sequence name, looks in Genbank if it is an accession
> > number,
> > > > and if it is, retrieves the organism name and other information. If
> the
> > name
> > > > is not recognized as an accession number, the program says it and
> > proposes
> > > > to continue with the next sequences.
> > > >
> > > > My programs worked perfectly during the last 2 years or so. But for
> the
> > last
> > > > few months it does not work anymore, although I did not make any
> change
> > to
> > > > it. What is happening now is that when there is a sequence name that
> is
> > not
> > > > an accession number, the program crashes.
> > > >
> > > > The problem lies with this line:
> > > >
> > > > $seq = $stream -> get_Seq_by_acc($an);
> > > >
> > > > When $an was an invalid accession number, $seq used to be "undefined"
> > and
> > > > the program could go on (the program checks whether &seq in defined or
> > > > undefined and then goes to the appropriate step).
> > > >
> > > > But now, when $an is an invalid accession number, the program just
> > crashes
> > > > with the following message:
> > > >
> > > > ------------- EXCEPTION -------------
> > > > MSG: acc does not exist
> > > > STACK Bio::DB::WebDBSeqI::get_Seq_by_acc
> > > > /usr/lib/perl5/site_perl/5.6.1/Bio/DB/WebDBSeqI.pm:177
> > > > STACK Bio::DB::GenBank::get_Seq_by_acc
> > > > /usr/lib/perl5/site_perl/5.6.1/Bio/DB/GenBank.pm:216
> > > > STACK toplevel phylplus.pl:90
> > > > --------------------------------------
> > > >
> > > > Can someone helps me understand what is happening ? Were there some
> > changes
> > > > at Genbank that could explain why my program behaves differently ? Is
> > there
> > > > anything I can do to make it behave like it did before ?
> > > >
> > > > Is there any other way than "get_Seq_by_acc" to check if an accession
> > number
> > > > exists or not ?
> > > >
> > > > Thanks in advance for the replies.
> > > >
> > > > Damien
> > > >
> > > >
> > > > _______________________________________________
> > > > Bioperl-l mailing list
> > > > Bioperl-l at portal.open-bio.org
> > > > http://portal.open-bio.org/mailman/listinfo/bioperl-l
> > >
> >
> > _______________________________________________
> > Bioperl-l mailing list
> > Bioperl-l at portal.open-bio.org
> > http://portal.open-bio.org/mailman/listinfo/bioperl-l
> >
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
More information about the Bioperl-l
mailing list