[ensembl-dev] Homology

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


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