[Bioperl-l] Memory leak in Bio::Root::Root?

Mike Muratet muratem at eng.uah.edu
Thu Dec 15 17:06:12 EST 2005



On Fri, 16 Dec 2005, Torsten Seemann wrote:

> Mike,
>
>> By commenting out various portions of the methods I have discovered that
>> the (a?) single offending line is is:
>> I'm off trying to understand why this keeps sucking up memory
>>
>> ($polyn = $tempseq)  =~ s/^\w{$lcount}(\w)\w*$/$1/;
>
> You could try replacing those lines with:
>
> $polyn = $tempseq;
> my $minw = $lcount+1;
> if ($polyn =~ m/^\w{$minw,}$/) {
>  $polyn = substr($polyn, $lcount, 1);
> }
>
> and see if it chnages the behaviour?
>
> (And please correct my logic if it is wrong :-)
>

Thanks to Jason, Stefan and Torsen for the help.

I can't see anything wrong with the regular expression, either, except 
that it is inefficient as noted above and by Jason. I'll take the issue 
over to the perl lists and see if anybody has anything to say. In any 
event, Torsten's logic above is similar to that in a script I found by 
Google at stein.cshl.org as part of a perl course. It seems to me that you 
should be able to write a regular expression which would just find the 
longest repeat (because it's greedy) and I've seen some posts that do 
things like /(.)[^\1]+\1/ but I can't seem to get anything like this to 
work the way I expect or need. So, I'll use the loop to find the longest 
repeat.

Thanks

Mike


> --
> Torsten Seemann <torsten.seemann at infotech.monash.edu.au>
> Victorian Bioinformatics Consortium
>
>


More information about the Bioperl-l mailing list