[Bioperl-l] LocusLink IO
Hilmar Lapp
hlapp@gnf.org
Mon, 2 Dec 2002 01:31:20 -0800
Maybe an end of file (recognition-) problem. Could be pretty simple.
If you visit the end of your offending input file, are there strange
things or excessive empty lines? Does it terminate with a record
delimiter (>>)?
I may not get a chance to investigate this before Wednesday. Can you
submit it as a bug report to make sure it's in the queue?
-hilmar
On Friday, November 29, 2002, at 02:52 PM, Paul Boutros wrote:
> Hi again,
>
> I don't encounter any problems parsing the test file:
> t\data\LL-sample.seq
>
> If I run the LocusLink test
> c:\perl\bioperl-live> perl -w t\LocusLink.t
> 1..23
> ok 1
> ok 2
> Use of uninitialized value in pattern match (m//) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 384, <GEN0> line 2.
> Use of uninitialized value in transliteration (tr///) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 600, <GEN0> line 2.
> Use of uninitialized value in transliteration (tr///) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 603, <GEN0> line 2.
> Use of uninitialized value in transliteration (tr///) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 604, <GEN0> line 2.
> Use of uninitialized value in transliteration (tr///) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 605, <GEN0> line 2.
> Use of uninitialized value in transliteration (tr///) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 606, <GEN0> line 2.
> Use of uninitialized value in length at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm
> line 618, <GEN0> line 2.
> Use of uninitialized value in substr at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm
> line 633, <GEN0> line 2.
> Use of uninitialized value in pattern match (m//) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 384, <GEN0> line 3.
> Use of uninitialized value in transliteration (tr///) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 600, <GEN0> line 3.
> Use of uninitialized value in transliteration (tr///) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 603, <GEN0> line 3.
> Use of uninitialized value in transliteration (tr///) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 604, <GEN0> line 3.
> Use of uninitialized value in transliteration (tr///) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 605, <GEN0> line 3.
> Use of uninitialized value in transliteration (tr///) at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm line 606, <GEN0> line 3.
> Use of uninitialized value in length at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm
> line 618, <GEN0> line 3.
> Use of uninitialized value in substr at
> C:/Perl/site/lib/Bio\SeqIO\embl.pm
> line 633, <GEN0> line 3.
> ok 3
>
> and okay through the rest of the tests.
>
> Visually the two files look very similar, and there are no obvious
> formatting differences. And it does take quite a few seconds of
> running
> before the two "Deep Recursion" warnings come up, then a few more
> before I
> get the exception.
>
> When I run:
>
> use Bio::SeqIO;
> use strict;
> my $file = $ARGV[0];
> my $seqio = Bio::SeqIO->new(
> -format => 'locuslink',
> -file => $file
> );
>
> while (my $seq = $seqio->next_seq()) {
> my $acc = $seq->annotation();
> print $seq->accession(), "\n";
> }
>
> The two deep recursion warnings come as:
>
> 15601
> Deep recursion on subroutine "Bio::SeqIO::locuslink::next_seq" at
> C:/Perl/site/lib/Bio\SeqIO\locuslink.pm line 456, <GEN0> chunk 15465.
> 15731
> Deep recursion on subroutine "Bio::SeqIO::locuslink::next_seq" at
> C:/Perl/site/lib/Bio\SeqIO\locuslink.pm line 456, <GEN0> chunk 15595.
> 15874
> 15890
>
> And the exception is thrown as:
> 24785
> 24786
> 24787
>
> ------------- EXCEPTION -------------
> MSG: No LOCUSID in first line of record. Not LocusLink in my book.
> STACK Bio::SeqIO::locuslink::next_seq
> C:/Perl/site/lib/Bio\SeqIO\locuslink.pm:435
> STACK toplevel testLL.pl:11
>
> --------------------------------------
>
> On Fri, 29 Nov 2002, Hilmar Lapp wrote:
>
>> I will check what's happening. There is a test case and a sample
>> file in the repository; while you're at it, do you see what the
>> fundamental difference is between the sample and the your input
>> file? (Or does the test fail as well for you?)
>>
>> -hilmar
>>
>>> -----Original Message-----
>>> From: Paul Boutros [mailto:pcboutro@engmail.uwaterloo.ca]
>>> Sent: Friday, November 29, 2002 9:21 AM
>>> To: Hilmar Lapp
>>> Cc: bioperl-l@bioperl.org
>>> Subject: Re: [Bioperl-l] LocusLink IO
>>>
>>>
>>> I tried again on today's (11/29/2002) LL_tmpl file and same error:
>>>
>>> C:\paul\dev\LocusLink>perl -w testLL.pl
>>> Deep recursion on subroutine "Bio::SeqIO::locuslink::next_seq" at
>>> C:/Perl/site/lib/Bio\SeqIO\locuslink.pm line 456, <GEN0> chunk 15465.
>>> Deep recursion on subroutine "Bio::SeqIO::locuslink::next_seq" at
>>> C:/Perl/site/lib/Bio\SeqIO\locuslink.pm line 456, <GEN0> chunk 15595.
>>>
>>> ------------- EXCEPTION -------------
>>> MSG: No LOCUSID in first line of record. Not LocusLink in my book.
>>> STACK Bio::SeqIO::locuslink::next_seq
>>> C:/Perl/site/lib/Bio\SeqIO\locuslink.pm:435
>>> STACK toplevel testLL.pl:8
>>>
>>> --------------------------------------
>>>
>>>
>>> On Thu, 28 Nov 2002, Hilmar Lapp wrote:
>>>
>>>> The input file needs to be the LL_tmpl or in that format. Does your
>>>> input file satisfy this? (NCBI releases several files for LL. Many
>>>> are in tab-format; the LL_tmpl format is a tagged-line format.)
>>>>
>>>> -hilmar
>>>>
>>>> On Thursday, November 28, 2002, at 03:05 PM, Paul Boutros wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> I'm using the LocusLink SeqIO parser with a download of
>>> LocusLink from
>>>>> NCBI today (LL3_021128.txt). When I just parse through
>>> the file doing
>>>>> nothing except for checking the organism annotation with:
>>>>>
>>>>> use Bio::SeqIO;
>>>>>
>>>>> my $seqio = Bio::SeqIO->new(
>>>>> -format => 'locuslink',
>>>>> -file => 'LL3_021128.txt'
>>>>> );
>>>>>
>>>>> while (my $acc = $seqio->next_seq()->annotation()) {
>>>>> if ($acc->get_Annotations('ORGANISM') =~ /rattus norvegicus/i) {
>>>>> print "Rat!\n";
>>>>> }
>>>>> }
>>>>>
>>>>> I get:
>>>>>
>>>>> Deep recursion on subroutine "Bio::SeqIO::locuslink::next_seq" at
>>>>> C:/Perl/site/lib/Bio\SeqIO\locuslink.pm line 456, <GEN0>
>>> chunk 15465.
>>>>> Deep recursion on subroutine "Bio::SeqIO::locuslink::next_seq" at
>>>>> C:/Perl/site/lib/Bio\SeqIO\locuslink.pm line 456, <GEN0>
>>> chunk 15595.
>>>>>
>>>>>
>>>>> ------------- EXCEPTION -------------
>>>>> MSG: No LOCUSID in first line of record. Not LocusLink in my book.
>>>>> STACK Bio::SeqIO::locuslink::next_seq
>>>>> C:/Perl/site/lib/Bio\SeqIO\locuslink.pm:435
>>>>> STACK toplevel testLL.pl:10
>>>>> --------------------------------------
>>>>>
>>>>> Interestingly enough I also don't get any output from the
>>> ORGANISM
>>>>> check,
>>>>> so I must be doing that wrong, too. I notice that the thing
>>>>> processes a
>>>>> fair chunk of time before spitting out the two "Deep recursion"
>>>>> warnings,
>>>>> and then a fair bit longer before hitting the exception.
>>>>>
>>>>> Any ideas if I'm doing something unusual, or if maybe I should
>>>>> submit this
>>>>> as a bug report?
>>>>>
>>>>> Paul
>>>>>
>>>>> OS: Win XP SP 1 and Win2K SP2
>>>>> Perl: 5.8.0 and 5.6.1
>>>>> BioPerl: CVS yesterday
>>>>>
>>>>> _______________________________________________
>>>>> Bioperl-l mailing list
>>>>> Bioperl-l@bioperl.org
>>>>> http://bioperl.org/mailman/listinfo/bioperl-l
>>>>>
>>>> --
>>>> -------------------------------------------------------------
>>>> Hilmar Lapp email: lapp at gnf.org
>>>> GNF, San Diego, Ca. 92121 phone: +1-858-812-1757
>>>> -------------------------------------------------------------
>>>>
>>>
>>>
>>
>
>
>
--
-------------------------------------------------------------
Hilmar Lapp email: lapp at gnf.org
GNF, San Diego, Ca. 92121 phone: +1-858-812-1757
-------------------------------------------------------------