[ensembl-dev] Homology

Matthieu Muffato muffato at ebi.ac.uk
Mon Nov 14 11:25:19 GMT 2011


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/


-- 
Matthieu Muffato, Ph.D.
Ensembl Developer - Comparative Genomics
European Bioinformatics Institute (EMBL-EBI)
Wellcome Trust Genome Campus, Hinxton
Cambridge, CB10 1SD, United Kingdom




More information about the Dev mailing list