fungazid-
One thing to do is to clean up your /tmp directory.
Another thing to try is to specify the temporary directory where the tempfiles
are created according to the perldoc for
largefasta.pm:
This module handles very large sequence files by using the
Bio::Seq::LargePrimarySeq module to store all the sequence data in a
file. This can be a problem if you have limited disk space on your
computer because this will effectively cause 2 copies of the sequence
file to reside on disk for the life of the Bio::Seq::LargePrimarySeq
object. The default location for this is specified by the
File::Spec->tmpdir routine which is usually /tmp on UNIX. If a
sequence file is larger than the swap space (capacity of the /tmp dir)
this could cause problems for the machine. It is possible to set the
directory where the temporary file is located by adding the following
line to your code BEFORE calling next_seq. See
Bio::Seq::LargePrimarySeq for more information.
This will give you more control over where the big seqs are cached.
You also may be inadvertently creating tempfiles in your code somewhere on each
loop.
If a bug extremely irritates you, you may direct your irritation to
http://bugzilla.bioperl.org. Read
http://www.bioperl.org/wiki/Bugs#Submitting_Bugs before you do.
Thanks for using BioPerl, and have a great day.
Mark
----- Original Message -----
From: "fungazid" <fungazid at yahoo.com>
To: <Bioperl-l at lists.open-bio.org>
Sent: Friday, May 15, 2009 9:17 AM
Subject: [Bioperl-l] looks like a Bio::SeqIO error
>> Hello,
>> I hope this is the right address for bioperl programming issues. Bioperl
> saves me a lot of time (not to re-invent the wheel), but there are some
> extremely irritating problems (I would change the code myself if I knew
> how).
>> I am trying to read a file (~20MB) containing multiple fasta sequences:
>>a
> AGTAGTGAGTGCGCTGA.........
>>b
> GCGCTGAAGTAGTGAGT.......
>>c
> AGTAGTGAGTGCGCTGA.........
>>d...........
>> with the following lines:
>> my $seqin = Bio::SeqIO->new('-format'=>'largefasta','-file'=>$file1);
>> LOOP1: while ( my $seqobj1 = $seqin->next_seq())
>> {
> ......
> my $seq=$seqobj1->subseq(1,$seqobj1->length);
> .......
> }
>>> This works right for the first ~30000 contig sequences but then the
> following message appears:
>> Error in tempdir() using /tmp/XXXXXXXXXX: Could not create directory
> /tmp/6eS92VzVjm: Too many links at /usr/share/perl5/Bio/Root/IO.pm line 744
>> What to do ??? (this is only one of some different Bioperl related bugs that
> I'm experiencing)
>>>>> --
> View this message in context:
>http://www.nabble.com/looks-like-a-Bio%3A%3ASeqIO-error-tp23559474p23559474.html> Sent from the Perl - Bioperl-L mailing list archive at Nabble.com.
>> _______________________________________________
> Bioperl-l mailing list
>Bioperl-l at lists.open-bio.org>http://lists.open-bio.org/mailman/listinfo/bioperl-l>>