[ensembl-dev] Homology

James Blackshaw jab250 at mrc-mbu.cam.ac.uk
Mon Nov 14 12:51:56 GMT 2011


Hi,
this still doesn't work, I get the error:
"Can't call method "fetch_by_source_stable_id" on an undefined value at 
homology_workshop_getAllHomologuesForGene.pl line 28."

I get the following error off the script for comparing all homologs 
between two species. A pity, as that is otherwise perfect for what I want.
"Can't call method "get_HomologyAdaptor" on an undefined value at 
homology_getAllHomologuesBetween2Species.pl line 24."

Is there anywhere I'd be able to check the version number of the API I have?

Regards,
-James

On 14/11/2011 12:02, Matthieu Muffato wrote:
> Hi James
>
> I just hope there is no misunderstanding with the line numbers. Your 
> script seems to work well, at least here, replacing the 
> $homology_adaptor->fetch_all_by_Member($member) line by 
> $homology_adaptor->fetch_all_by_Member($member->gene_member)
>
> I can have the "dbID" error message when applying both changes. They 
> are actually not compatible. Either you specify the gene ID in the 
> first place, and stick with 
> $homology_adaptor->fetch_all_by_Member($member), or you keep the 
> protein ID, and you add the "->gene_member"
>
> There is a script in the scripts/examples directory of the 
> ensembl-compara repository, named 
> homology_workshop_getAllHomologuesForGene.pl, that does the job if you 
> know the gene name.
>
> Regards,
> Matthieu
>
> On 14/11/11 11:41, James Blackshaw wrote:
>> Hi Matthieu,
>> Changing Line 16 doesn't help, I get the same error reported.
>> Changing line 25 gives me a new error though.
>> Can't call method "dbID" on an undefined value at
>> /usr/mbu/software/ensembl/ensembl-compara/modules/Bio/EnsEMBL/Compara/DBSQL/HomologyAdaptor.pm 
>>
>> line 37.
>>
>> What I'm trying to do is get the homologs for a list of proteins or
>> associated genes, either works. I'm surprised there's not already a
>> script about for it, but can't find on on the mailing list.
>>
>> -James
>>
>>
>> On 14/11/2011 11:25, Matthieu Muffato wrote:
>>> Hi James
>>>
>>> In Comparam the homologies are stored at the gene level. Because your
>>> Member object represents a peptide, the homology list that you
>>> retrieve is empty.
>>>
>>> You can either change the line 25 to
>>> my $homologies =
>>> $homology_adaptor->fetch_all_by_Member($member->gene_member);
>>>
>>> or change the line 16 to
>>> my $member = $member_adaptor->fetch_by_source_stable_id("ENSEMBLGENE",
>>> ****) with an Ensembl gene ID if you know it
>>>
>>> to have all the homologies of your favourite gene
>>>
>>> Hope this helps,
>>> Matthieu
>>>
>>> On 14/11/11 11:15, James Blackshaw wrote:
>>>> Hi,
>>>> I am using the code from the API installation page and that page talks
>>>> about version 64.
>>>> http://www.ensembl.org/info/docs/api/api_installation.html
>>>>
>>>> This is my output under verbose, looks like it is connecting.
>>>> Odd number of elements in hash assignment at
>>>> /usr/mbu/software/ensembl/ensembl/modules/Bio/EnsEMBL/Utils/Argument.pm 
>>>>
>>>> line 148.
>>>> Transcript:ENSDART00000112153 Gene:ENSDARG00000090113 Chr:19
>>>> Start:33519855 End:33522332
>>>> Can't call method "get_all_Member_Attribute" on an undefined value at
>>>> sandbox3.pl line 47.
>>>>
>>>> Regards,
>>>> James
>>>>
>>>>
>>>> On 11/11/2011 20:20, Javier Herrero wrote:
>>>>> Hi James
>>>>>
>>>>> This error is typical when you fail to connect to the database.
>>>>>
>>>>> I suspect you are using the HEAD code instead of the branch 64. The
>>>>> head code is already configured for connecting to the forthcoming
>>>>> database. Please switch your code to the 64 branch and try again:
>>>>>
>>>>> cvs up -r branch-ensembl-64
>>>>>
>>>>> Regards
>>>>>
>>>>> Javier
>>>>>
>>>>> On 11/11/11 19:29, Jan Vogel wrote:
>>>>>> Hi James,
>>>>>>
>>>>>> the first script from the powerpoint works for me w/o problems or
>>>>>> modifications. I've tried schema 62 and schema 64 API's.
>>>>>>
>>>>>>
>>>>>> The second one ( 'from the list' ) had some minor problems. It works
>>>>>> like this :
>>>>>>
>>>>>> my $member =
>>>>>> $member_adaptor->fetch_by_source_stable_id('ENSEMBLGENE','ENSG00000004059'); 
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> or
>>>>>>
>>>>>> my $member =
>>>>>> $member_adaptor->fetch_by_source_stable_id(undef,'ENSG00000004059');
>>>>>>
>>>>>> I did not try the zfish protein.
>>>>>>
>>>>>> Hth,
>>>>>> Jan
>>>>>>
>>>>>> On Nov 11, 2011, at 9:50 AM, James Blackshaw wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>> I've been trying to put together some scripts for finding the
>>>>>>> homolgies
>>>>>>> for some lists of genes I'm interested in, but I keep getting 
>>>>>>> errors
>>>>>>> with the "fetch" methods.
>>>>>>>
>>>>>>> "Can't call method "fetch_by_source_stable_id" on an undefined
>>>>>>> value at
>>>>>>> sandbox3.pl <http://sandbox3.pl/> line 15."
>>>>>>>
>>>>>>> I've used one script taken from a presentation by Stephen
>>>>>>> Fitzgerald at
>>>>>>> Edinburgh, and another from this maining list. I'm including both.
>>>>>>>
>>>>>>> From the powerpoint:
>>>>>>> use strict;
>>>>>>> use Bio::EnsEMBL::Registry;
>>>>>>> my $reg = "Bio::EnsEMBL::Registry";
>>>>>>>
>>>>>>> $reg->load_registry_from_db(
>>>>>>> -host=>"ensembldb.ensembl.org <http://ensembldb.ensembl.org/>",
>>>>>>> -user => "anonymous");
>>>>>>>
>>>>>>>
>>>>>>> my $ma = $reg->get_adaptor(
>>>>>>> "Multi", "compara", "Member");
>>>>>>> my $member = $ma->fetch_by_source_stable_id(
>>>>>>> "ENSEMBLGENE", "ENSG00000000971");
>>>>>>>
>>>>>>> my $homology_adaptor = $reg->get_adaptor(
>>>>>>> "Multi", "compara", "Homology");
>>>>>>>
>>>>>>> my $homologies = $homology_adaptor->
>>>>>>> fetch_all_by_Member($member);
>>>>>>>
>>>>>>> foreach my $this_homology (@$homologies) {
>>>>>>> print $this_homology->description, "\n";
>>>>>>> my $member_attributes = $this_homology->
>>>>>>> get_all_Member_Attribute();
>>>>>>> foreach my $this_mem_attr (@$member_attributes) {
>>>>>>> my ($this_member, $this_attribute) =
>>>>>>> @$this_mem_attr;
>>>>>>> print $this_member->genome_db->name, " ",
>>>>>>> $this_member->source_name, " ",
>>>>>>> $this_member->stable_id, "\n";
>>>>>>> }
>>>>>>> print "\n";
>>>>>>> }
>>>>>>>
>>>>>>> ==========================================
>>>>>>>
>>>>>>> From the list:
>>>>>>> use Bio::EnsEMBL::Registry;
>>>>>>> Bio::EnsEMBL::Registry->load_registry_from_db(
>>>>>>> -host => 'ensembldb.ensembl.org',
>>>>>>> -user => 'anonymous',
>>>>>>> -port => 5306);
>>>>>>> my $member_adaptor = Bio::EnsEMBL::Registry->get_adaptor(
>>>>>>> 'Multi','compara','Member');
>>>>>>>
>>>>>>> # fetch a Member
>>>>>>> # get the MemberAdaptor
>>>>>>> my $member_adaptor =
>>>>>>> Bio::EnsEMBL::Registry->get_adaptor('Multi','compara','Member');
>>>>>>>
>>>>>>> # fetch a Memmy $member =
>>>>>>> $member_adaptor->fetch_by_source_stable_id('ENSEMBLPROTEIN','ENSG00000004059'); 
>>>>>>>
>>>>>>>
>>>>>>> my $member =
>>>>>>> $member_adaptor->fetch_by_source_stable_id('ENSEMBLPEP','ENSDARP00000103634'); 
>>>>>>>
>>>>>>>
>>>>>>> # print out some information about the Member
>>>>>>> print $member->description, "\n";
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> my $homology_adaptor = Bio::EnsEMBL::Registry->get_adaptor('Multi',
>>>>>>> 'compara', 'Homology');
>>>>>>> my $homologies = $homology_adaptor->fetch_all_by_Member($member);
>>>>>>>
>>>>>>> # That will return a reference to an array with all
>>>>>>> homologies(orthologues in
>>>>>>> # other species and paralogues in the same one)
>>>>>>> # Then for each homology, you can get all the Members implicated
>>>>>>>
>>>>>>> foreach my $homology (@{$homologies}) {
>>>>>>> # You will find different kind of description
>>>>>>> # UBRH, MBRH, RHS, YoungParalogues
>>>>>>> # see ensembl-compara/docs/docs/schema_doc.html for more details
>>>>>>>
>>>>>>> print $homology->description," ", $homology->subtype,"\n";
>>>>>>> # And if they are defined dN and dS related values
>>>>>>> print " dn ", $homology->dn,"\n";
>>>>>>> print " ds ", $homology->ds,"\n";
>>>>>>> print " dnds_ratio ", $homology->dnds_ratio,"\n";
>>>>>>> }
>>>>>>>
>>>>>>> my $homology = $homologies->[0];
>>>>>>> # take one of the homologies and lookinto it
>>>>>>>
>>>>>>> foreach my $member_attribute
>>>>>>> (@{$homology->get_all_Member_Attribute}) {
>>>>>>>
>>>>>>> # for each Member, you get information on the Member specifically
>>>>>>> and in
>>>>>>> # relation to the homology relation via Attribute object
>>>>>>>
>>>>>>> my ($member, $attribute) = @{$member_attribute};
>>>>>>> print (join " ", map { $member->$_ } qw(stable_id taxon_id))."\n";
>>>>>>> print (join " ", map { $attribute->$_ } qw(perc_id
>>>>>>> perc_posperc_cov))."\n";
>>>>>>>
>>>>>>> }
>>>>>>> ====================================================
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> James Blackshaw
>>>>>>> PhD Student
>>>>>>> MRC Mitochondrial Biology Unit
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Dev mailing list Dev at ensembl.org <mailto:Dev at ensembl.org>
>>>>>>> List admin (including subscribe/unsubscribe):
>>>>>>> http://lists.ensembl.org/mailman/listinfo/dev
>>>>>>> Ensembl Blog: http://www.ensembl.info/
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing listDev at ensembl.org <mailto: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
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Dev mailing listDev at ensembl.org <mailto:Dev at ensembl.org>
>>>>> List admin (including
>>>>> subscribe/unsubscribe):http://lists.ensembl.org/mailman/listinfo/dev
>>>>> Ensembl Blog:http://www.ensembl.info/
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> 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/
>>>
>>>
>
>





More information about the Dev mailing list