[ensembl-dev] Homology

James Blackshaw jab250 at mrc-mbu.cam.ac.uk
Wed Nov 16 18:13:53 GMT 2011


Hello,

Just a bit of a bump on this as I can't get the script to work and I've 
checked that I am using version 64 of Homologene. I could really do with 
a decent way to get homologs for a given species out of Ensembl for a 
list of genes. Sadly Biomart isn't much use as I cant get homologs from 
yeast or mouse to plants, they're on separate filters. Does anyone on 
this list have a similar script they might be willing to send me to see 
if I can get it to return anything?

Regards,
James
>>> 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/
>>>>>>
>>>>
>>>
>>> _______________________________________________
>>> 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/
>> ---
>> Andrew Yates                   Ensembl Core Software Project Leader
>> EMBL-EBI                       Tel: +44-(0)1223-492538
>> Wellcome Trust Genome Campus   Fax: +44-(0)1223-494468
>> Cambridge CB10 1SD, UK         http://www.ensembl.org/
>>
>





More information about the Dev mailing list