[ensembl-dev] Questions about Compara/Hive modules

Zhang Di aureliano.jz at gmail.com
Fri Dec 2 03:44:47 GMT 2011


Solved!

The problem is that subroutine CreateAlignmentNetsJobs cannot handle
DnaFragChunkSet class.

However, it is easy to solve: just use method 'get_all_DnaFragChunks'
(below).

-------------------------------
Replace:

  my $query_dna_list  = $self->{'collection'}->get_all_dna_objects;

To:

  my $query_dna_list_raw  = $self->{'collection'}->get_all_dna_objects;

  my $query_dna_list;

  for my $obj (@{$query_dna_list_raw}) {
    if ($obj->isa("Bio::EnsEMBL::Compara::Production::DnaFragChunkSet")) {
       push @{$query_dna_list}, @{$obj->get_all_DnaFragChunks};
    } else {
       push @{$query_dna_list}, $obj;
    }
  }


On Fri, Dec 2, 2011 at 9:24 AM, Zhang Di <aureliano.jz at gmail.com> wrote:

> Thank you,  Javier
>
> Sorry for not checking the subsequent output!
>
> The last line
> is Bio::EnsEMBL::Compara::Production::DnaFragChunkSet=HASH(0x1e16ed0)
>
> Seems that it works well
> with Bio::EnsEMBL::Compara::Production::DnaFragChunk, without any problem
> finding the method 'dnafrag' for it.
>
> I guess that the program died immediately after it met the first
> DnaFragChunkSet qy_dna_object.
>
> I'm using the version 64 API. checked out 2 mouth ago at a same time.
>
>
>
> On Fri, Dec 2, 2011 at 2:05 AM, Javier Herrero <jherrero at ebi.ac.uk> wrote:
>
>>  Dear Zhang
>>
>> As you mention, if the object is a
>> Bio::EnsEMBL::Compara::Production::DnaFragChunk, Perl should be looking for
>> the 'dnafrag' method in that module (or one of its parents).
>>
>> I have noticed that this call is made in a loop. Could you please check
>> that the $qy_dna_object is always a
>> Bio::EnsEMBL::Compara::Production::DnaFragChunk object? I am guessing that
>> in subsequent iterations, the variable is set to something different.
>>
>> Could also please tell us what version of the API you are using?
>>
>> Thanks
>>
>> Javier
>>
>>
>> On 01/12/11 08:14, Zhang Di wrote:
>>
>> Hi,
>>
>>
>>     I'm running the compara pipeline for 2x alignment (first run
>> PairAligner then Chain Net).
>>    The raw and chain steps works fine.
>>    the pipeline failed at the CreateAlignmentNetsJobs step complaining
>> that:
>>
>>  Job with id=8380 died in status 'RUN' for the following reason: Can't
>> locate object method "dnafrag" via package
>> "Bio::EnsEMBL::Compara::Production::DnaFragChunkSet" at
>> /data/ensembl/ensembl-compara/modules/Bio/EnsEMBL/Compara/Production/GenomicAlignBlock/CreateAlignmentNetsJobs.pm
>> line 200.
>>
>>
>>     After some  debug effort (just print "$qy_dna_object";), I found
>> that $qy_dna_object is an instance of
>> Bio::EnsEMBL::Compara::Production::DnaFragChunk, and this class has the
>> method 'dnafrag'.
>>
>>     I'm not very familiar with perl object-oriented system. why did it
>> try to find method 'dnafrag' via
>> package Bio::EnsEMBL::Compara::Production::DnaFragChunkSet while the data
>> is an instance of DnaFragChunk?
>>
>>  --
>> Zhang Di
>>
>>
>> _______________________________________________
>> Dev mailing list    Dev at ensembl.org
>> List admin (including subscribe/unsubscribe): http://lists.ensembl.org/mailman/listinfo/dev
>> Ensembl Blog: http://www.ensembl.info/
>>
>>
>> --
>> Javier Herrero, PhD
>> Ensembl Compara Project Leader
>> European Bioinformatics Institute (EMBL-EBI)
>> Wellcome Trust Genome Campus, Hinxton
>> Cambridge - CB10 1SD - UK
>>
>>
>
>
> --
> Zhang Di
>



-- 
Zhang Di
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ensembl.org/pipermail/dev_ensembl.org/attachments/20111202/9dc1ef10/attachment.html>


More information about the Dev mailing list