use strict; use warnings; use Bio::EnsEMBL::Registry; ## Load the registry automatically my $reg = "Bio::EnsEMBL::Registry"; $reg->load_registry_from_url('mysql://anonymous@ensembldb.ensembl.org'); ## Get the human gene adaptor my $human_gene_adaptor = $reg->get_adaptor('Homo sapiens', 'core', 'Gene'); ## Get the compara member adaptor my $member_adaptor = $reg->get_adaptor('Compara', 'compara', 'Member'); ## Get the compara homology adaptor my $homology_adaptor = $reg->get_adaptor ('Multi', 'compara', 'MethodLinkSpeciesSet'); my @BreastCANgenes = ('ABCA3','ABCB10','ABCB8'); open ('archivo', '>homologos.txt'); my $gen; foreach $gen (@BreastCANgenes) { ## Get all existing gene object my $ctdp1_genes = $human_gene_adaptor->fetch_all_by_external_name($gen); ## For each of these genes... foreach my $ctdp1_gene (@$ctdp1_genes) { ## Get the compara member my $member = $member_adaptor->fetch_by_source_stable_id( "ENSEMBLGENE", $ctdp1_gene->stable_id); ## Get all the orthologues my $all_homologies = $homology_adaptor->fetch_all_by_MethodLinkSpeciesSet_orthology_type_subtype($member,'ortholog_one2one','Mammalia'); ## For each homology foreach my $this_homology (@$all_homologies) { ## print the description (type of homology) and the ## subtype (taxonomy level of the event: duplic. or speciation) print $this_homology->description, " [", $this_homology->subtype, "]\n"; print archivo $this_homology->description, " [", $this_homology->subtype, "]\n"; ## print the members in this homology my $members = $this_homology->get_all_Members(); foreach my $this_member (@$members) { print archivo $this_member->source_name, " ", $this_member->stable_id, " (", $this_member->genome_db->name, ")\n" } print "\n"; } } } close ('archivo');