[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