[Bioperl-l] Zombie processes with GenBank get_Seq_by_acc()
Chris Fields
cjfields at illinois.edu
Thu May 12 16:38:10 UTC 2011
At one point the latest version of perl was to have strictures automatically turned on, but I don't think this is implemented yet.
Re: strictures, I've answered too many emails on list where a simple 'use strict' revealed bugs. That should always be on, along with 'use warnings'.
chris
On May 12, 2011, at 10:49 AM, Roy Chaudhuri wrote:
> That's not really true. Turning on strict just makes it a compile time error if you don't declare the scope of a variable. "my" and "our" will still work without turning on strict, but they are not mandatory. Of course, you should always use strict, it's there to help you.
>
> @lines[$i] is valid syntax, although you will get the message "Scalar value @lines[$i] better written as $lines[$i]" if warnings are switched on (again, this should always be the case).
>
> Roy.
>
> On 12/05/2011 16:20, Kevin Brown wrote:
>> Utilizing keywords like "my", "our", etc... is only useful in perl if
>> you also "use strict;" in your script. This forces perl to deal with
>> variable scope and should cause those threads to die when the parent
>> object goes out of scope. Instead they aren't dying because their parent
>> object never gets destroyed.
>>
>> In fact, going through your code showed that you had a large number of
>> errors such as @lines[$i] is NOT how you get something out of an array.
>> $lines[$i] is.
>>
>> http://pastebin.com/vx9Y0GW7
>>
>> Kevin Brown
>> Center for Innovations in Medicine
>> Biodesign Institute
>> Arizona State University
>>
>>> -----Original Message-----
>>> From: bioperl-l-bounces at lists.open-bio.org [mailto:bioperl-l-
>>> bounces at lists.open-bio.org] On Behalf Of O'car Campos
>>> Sent: Thursday, May 12, 2011 6:57 AM
>>> To: Dave Messina
>>> Cc: bioperl-l at bioperl.org
>>> Subject: Re: [Bioperl-l] Zombie processes with GenBank
>> get_Seq_by_acc()
>>>
>>> Dave:
>>>
>>> Thanks for checking the code, I tried with what you said,
>> adding
>>> a
>>> "my" to line 18 but I still get the zombies. I was exaggerating with
>>> the
>>> 8000 genbank codes, also I didn't know about those other tools I will
>>> check
>>> them, thanks for the tip. So I'm still in a zombieland.
>>>
>>> Cheers.
>>>
>>> O'car
>>>
>>>
>>> On 12 May 2011 03:22, Dave Messina<David.Messina at sbc.su.se> wrote:
>>>
>>>> Thanks for posting the code, O'car.
>>>>
>>>> I haven't tried running it, but one thing that occurs to me is that
>>> on line
>>>> 18 when you create your Bio::DB::Genbank object, there's no 'my', so
>>> those
>>>> objects may be hanging around longer than you expect. The zombies
>> may
>>> be
>>>> those objects' forked processes for connecting to Genbank. Similar
>> to
>>> what
>>>> Kevin said earlier.
>>>>
>>>> But that's all speculation.
>>>>
>>>> The other thing I'll say as a general comment is that fetching
>>> thousands of
>>>> records from Genbank this way (or really fetching any more than 100)
>>> is
>>>> inefficient and probably slow also.
>>>>
>>>> Instead you might try using Genbank's own fetching tools,
>> EUtilities,
>>>> either directly or via the two BioPerl interfaces to them
>>>> (Bio::DB::EUtilities and Bio::DB::SoapEUtilities).
>>>>
>>>>
>>>> Dave
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, May 12, 2011 at 00:16, O'car Johann Campos
>>> <ocarnorsk138 at gmail.com
>>>>> wrote:
>>>>
>>>>> Kevin Brown<Kevin.M.Brown<at> asu.edu> writes:
>>>>>
>>>>>>
>>>>>> Seeing your code might help. They could just be forked children
>>> waiting
>>>>>> for the script to exit before they go away or something else
>>> forked them
>>>>>> and failed to clean up before quitting.
>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: bioperl-l-bounces<at> lists.open-bio.org
>> [mailto:bioperl-
>>> l-
>>>>>>> bounces<at> lists.open-bio.org] On Behalf Of Belaid MOA
>>>>>>> Sent: Tuesday, May 10, 2011 1:41 PM
>>>>>>> To: bioperl-l<at> lists.open-bio.org
>>>>>>> Subject: [Bioperl-l] Zombie processes with GenBank
>>> get_Seq_by_acc()
>>>>>>>
>>>>>>>
>>>>>>> Dear All,
>>>>>>> I installed the latest version of BioPerl and I ran a very
>>> simple
>>>>>>> code: it goes through each line (an ACC) in a file and uses
>>> GenBank to
>>>>>>> get the sequence
>>>>>>> via get_Seq_by_acc(). A look at ps shows that there were a lot
>>> of
>>>>>>> zombie processes (with<defunct> attribute) created. The list
>>> grows
>>>>>>> with the time.
>>>>>>> This means that Bio:DB:GenBank is forking and not cleaning the
>>>>>>> children. Is there any way to overcome the issue? Moreover, is
>>> there
>>>>>>> any way
>>>>>>> to specify the number of forked processes?
>>>>>>>
>>>>>>> With best regards,
>>>>>>> -Belaid.
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Bioperl-l mailing list
>>>>>>> Bioperl-l<at> lists.open-bio.org
>>>>>>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>>>>>
>>>>>
>>>>> Kevin, Belaid, All:
>>>>>
>>>>> Recently I've been working with genbank too and ran a code
>> to
>>> get
>>>>> Genbank info from accession numbers, I also noticed the weird
>>> behavior and
>>>>> the
>>>>> zombie processes that are in the background, altough the code works
>>> and I
>>>>> get
>>>>> the info I need there are a lot of zombie processes in the
>>> background and
>>>>> for
>>>>> example running this task with 8000 accession numbers would be a
>>> pain
>>>>> where you
>>>>> all know. I'm not a bioperl expert and I may be missing some piece
>>> of code
>>>>> to
>>>>> quit the forked children as may be happening to belaid, so this is
>>> my
>>>>> piece of
>>>>> code in case any get and idea why is this happening.
>>>>>
>>>>> http://pastebin.com/Zq88cpwb
>>>>>
>>>>> Thanks in advance.
>>>>> Cheers.
>>>>>
>>>>> O'car.
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Bioperl-l mailing list
>>>>> Bioperl-l at lists.open-bio.org
>>>>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>>>>
>>>>
>>>>
>>> _______________________________________________
>>> Bioperl-l mailing list
>>> Bioperl-l at lists.open-bio.org
>>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioperl-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l
More information about the Bioperl-l
mailing list