<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi James<br>
    <br>
    I am glad it works for you now. Yes, starting from a new session is
    key as you were  probably using an old environment.<br>
    <br>
    To get the homologues to a particular species, you can use the <a
      class="el"
href="http://www.ensembl.org/info/docs/Doxygen/compara-api/classBio_1_1EnsEMBL_1_1Compara_1_1DBSQL_1_1HomologyAdaptor.html#abe833d3aacdf6854e9db032295c7da25">fetch_all_by_Member_paired_species</a>($member,
    "mus_musculus") method instead of fetch_all_by_Member().<br>
    <br>
    I hope this helps<br>
    <br>
    Javier<br>
    <br>
    On 17/11/11 15:28, James Blackshaw wrote:
    <blockquote cite="mid:4EC52814.2080900@mrc-mbu.cam.ac.uk"
      type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      Hello Javier,<br>
      I'm unsure why, but it works now. It may be because I was trying
      to run it in an SSH session I started before I installed the
      ensembl package. all I need to do now is work out how to put in a
      filter to only look for homologs in the two species I'm interested
      in. <br>
      <br>
      Thank you for the advice,<br>
      -James<br>
      <br>
      On 16/11/2011 19:33, Javier Herrero wrote:
      <blockquote cite="mid:4EC40FEE.2000707@ebi.ac.uk" type="cite">
        <meta content="text/html; charset=ISO-8859-1"
          http-equiv="Content-Type">
        Hi James<br>
        <br>
        Sorry, I thought BioMart would have solved your problem. I guess
        it would be easier it we stick to just one script rather than
        the two you mentioned in an earlier email. I think I would opt
        for the first one (slides) as the other ones seems a little
        outdated (from the list).<br>
        <br>
        So, the script from the slides works out of the box (copy &
        paste from your email) for me, using e64 API.<br>
        <br>
        It also works if I substitute the gene stable ID by
        ENSDARG00000090113. However, if I use a non-existent gene stable
        ID or anything different from the gene stable ID, I get the
        error you reported in another email:<br>
        <i>Can't call method "dbID" on an undefined value at
          ~/ensembl-compara/modules/Bio/EnsEMBL/Compara/DBSQL/HomologyAdaptor.pm
          line 37.</i><br>
        <br>
        Please, use that script and check that it works (with the
        original gene identifier). Then change the identifier to get the
        data for your gene of interest and check that it still works.<br>
        <br>
        If you get a failure with the original script, there is
        something wrong with your setup (API installation, access to the
        database, etc). If you get a failure using a different gene
        identifier, then you are using a invalid gene identifier.<br>
        <br>
        I hope this helps<br>
        <br>
        Javier<br>
        <br>
        On 16/11/11 18:13, James Blackshaw wrote:
        <blockquote cite="mid:4EC3FD61.10607@mrc-mbu.cam.ac.uk"
          type="cite">Hello, <br>
          <br>
          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? <br>
          <br>
          Regards, <br>
          James <br>
          <blockquote type="cite">
            <blockquote type="cite">
              <blockquote type="cite">Hi, <br>
                this still doesn't work, I get the error: <br>
                "Can't call method "fetch_by_source_stable_id" on an
                undefined value at
                homology_workshop_getAllHomologuesForGene.pl line 28." <br>
                <br>
                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. <br>
                "Can't call method "get_HomologyAdaptor" on an undefined
                value at homology_getAllHomologuesBetween2Species.pl
                line 24." <br>
                <br>
                Is there anywhere I'd be able to check the version
                number of the API I have? <br>
                <br>
                Regards, <br>
                -James <br>
                <br>
                On 14/11/2011 12:02, Matthieu Muffato wrote: <br>
                <blockquote type="cite">Hi James <br>
                  <br>
                  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)
                  <br>
                  <br>
                  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" <br>
                  <br>
                  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. <br>
                  <br>
                  Regards, <br>
                  Matthieu <br>
                  <br>
                  On 14/11/11 11:41, James Blackshaw wrote: <br>
                  <blockquote type="cite">Hi Matthieu, <br>
                    Changing Line 16 doesn't help, I get the same error
                    reported. <br>
                    Changing line 25 gives me a new error though. <br>
                    Can't call method "dbID" on an undefined value at <br>
                    /usr/mbu/software/ensembl/ensembl-compara/modules/Bio/EnsEMBL/Compara/DBSQL/HomologyAdaptor.pm


                    <br>
                    line 37. <br>
                    <br>
                    What I'm trying to do is get the homologs for a list
                    of proteins or <br>
                    associated genes, either works. I'm surprised
                    there's not already a <br>
                    script about for it, but can't find on on the
                    mailing list. <br>
                    <br>
                    -James <br>
                    <br>
                    <br>
                    On 14/11/2011 11:25, Matthieu Muffato wrote: <br>
                    <blockquote type="cite">Hi James <br>
                      <br>
                      In Comparam the homologies are stored at the gene
                      level. Because your <br>
                      Member object represents a peptide, the homology
                      list that you <br>
                      retrieve is empty. <br>
                      <br>
                      You can either change the line 25 to <br>
                      my $homologies = <br>
                      $homology_adaptor->fetch_all_by_Member($member->gene_member);


                      <br>
                      <br>
                      or change the line 16 to <br>
                      my $member =
                      $member_adaptor->fetch_by_source_stable_id("ENSEMBLGENE",
                      <br>
                      ****) with an Ensembl gene ID if you know it <br>
                      <br>
                      to have all the homologies of your favourite gene
                      <br>
                      <br>
                      Hope this helps, <br>
                      Matthieu <br>
                      <br>
                      On 14/11/11 11:15, James Blackshaw wrote: <br>
                      <blockquote type="cite">Hi, <br>
                        I am using the code from the API installation
                        page and that page talks <br>
                        about version 64. <br>
                        <a moz-do-not-send="true"
                          class="moz-txt-link-freetext"
                          href="http://www.ensembl.org/info/docs/api/api_installation.html">http://www.ensembl.org/info/docs/api/api_installation.html</a>
                        <br>
                        <br>
                        This is my output under verbose, looks like it
                        is connecting. <br>
                        Odd number of elements in hash assignment at <br>
                        /usr/mbu/software/ensembl/ensembl/modules/Bio/EnsEMBL/Utils/Argument.pm


                        <br>
                        line 148. <br>
                        Transcript:ENSDART00000112153
                        Gene:ENSDARG00000090113 Chr:19 <br>
                        Start:33519855 End:33522332 <br>
                        Can't call method "get_all_Member_Attribute" on
                        an undefined value at <br>
                        sandbox3.pl line 47. <br>
                        <br>
                        Regards, <br>
                        James <br>
                        <br>
                        <br>
                        On 11/11/2011 20:20, Javier Herrero wrote: <br>
                        <blockquote type="cite">Hi James <br>
                          <br>
                          This error is typical when you fail to connect
                          to the database. <br>
                          <br>
                          I suspect you are using the HEAD code instead
                          of the branch 64. The <br>
                          head code is already configured for connecting
                          to the forthcoming <br>
                          database. Please switch your code to the 64
                          branch and try again: <br>
                          <br>
                          cvs up -r branch-ensembl-64 <br>
                          <br>
                          Regards <br>
                          <br>
                          Javier <br>
                          <br>
                          On 11/11/11 19:29, Jan Vogel wrote: <br>
                          <blockquote type="cite">Hi James, <br>
                            <br>
                            the first script from the powerpoint works
                            for me w/o problems or <br>
                            modifications. I've tried schema 62 and
                            schema 64 API's. <br>
                            <br>
                            <br>
                            The second one ( 'from the list' ) had some
                            minor problems. It works <br>
                            like this : <br>
                            <br>
                            my $member = <br>
                            $member_adaptor->fetch_by_source_stable_id('ENSEMBLGENE','ENSG00000004059');


                            <br>
                            <br>
                            <br>
                            <br>
                            or <br>
                            <br>
                            my $member = <br>
                            $member_adaptor->fetch_by_source_stable_id(undef,'ENSG00000004059');


                            <br>
                            <br>
                            I did not try the zfish protein. <br>
                            <br>
                            Hth, <br>
                            Jan <br>
                            <br>
                            On Nov 11, 2011, at 9:50 AM, James Blackshaw
                            wrote: <br>
                            <br>
                            <blockquote type="cite">Hi, <br>
                              I've been trying to put together some
                              scripts for finding the <br>
                              homolgies <br>
                              for some lists of genes I'm interested in,
                              but I keep getting errors <br>
                              with the "fetch" methods. <br>
                              <br>
                              "Can't call method
                              "fetch_by_source_stable_id" on an
                              undefined <br>
                              value at <br>
                              sandbox3.pl<a moz-do-not-send="true"
                                class="moz-txt-link-rfc2396E"
                                href="http://sandbox3.pl/"><http://sandbox3.pl/></a> 
                              line 15." <br>
                              <br>
                              I've used one script taken from a
                              presentation by Stephen <br>
                              Fitzgerald at <br>
                              Edinburgh, and another from this maining
                              list. I'm including both. <br>
                              <br>
                               From the powerpoint: <br>
                              use strict; <br>
                              use Bio::EnsEMBL::Registry; <br>
                              my $reg = "Bio::EnsEMBL::Registry"; <br>
                              <br>
                              $reg->load_registry_from_db( <br>
                              -host=>"ensembldb.ensembl.org<a
                                moz-do-not-send="true"
                                class="moz-txt-link-rfc2396E"
                                href="http://ensembldb.ensembl.org/"><http://ensembldb.ensembl.org/></a>",


                              <br>
                              -user =>  "anonymous"); <br>
                              <br>
                              <br>
                              my $ma = $reg->get_adaptor( <br>
                              "Multi", "compara", "Member"); <br>
                              my $member =
                              $ma->fetch_by_source_stable_id( <br>
                              "ENSEMBLGENE", "ENSG00000000971"); <br>
                              <br>
                              my $homology_adaptor =
                              $reg->get_adaptor( <br>
                              "Multi", "compara", "Homology"); <br>
                              <br>
                              my $homologies = $homology_adaptor-> <br>
                              fetch_all_by_Member($member); <br>
                              <br>
                              foreach my $this_homology (@$homologies) {
                              <br>
                              print $this_homology->description,
                              "\n"; <br>
                              my $member_attributes =
                              $this_homology-> <br>
                              get_all_Member_Attribute(); <br>
                              foreach my $this_mem_attr
                              (@$member_attributes) { <br>
                              my ($this_member, $this_attribute) = <br>
                              @$this_mem_attr; <br>
                              print $this_member->genome_db->name,
                              " ", <br>
                              $this_member->source_name, " ", <br>
                              $this_member->stable_id, "\n"; <br>
                              } <br>
                              print "\n"; <br>
                              } <br>
                              <br>
                              ==========================================
                              <br>
                              <br>
                               From the list: <br>
                              use Bio::EnsEMBL::Registry; <br>
                              Bio::EnsEMBL::Registry->load_registry_from_db(


                              <br>
                              -host =>  'ensembldb.ensembl.org', <br>
                              -user =>  'anonymous', <br>
                              -port =>  5306); <br>
                              my $member_adaptor =
                              Bio::EnsEMBL::Registry->get_adaptor( <br>
                              'Multi','compara','Member'); <br>
                              <br>
                              # fetch a Member <br>
                              # get the MemberAdaptor <br>
                              my $member_adaptor = <br>
                              Bio::EnsEMBL::Registry->get_adaptor('Multi','compara','Member');


                              <br>
                              <br>
                              # fetch a Memmy $member = <br>
                              $member_adaptor->fetch_by_source_stable_id('ENSEMBLPROTEIN','ENSG00000004059');


                              <br>
                              <br>
                              my $member = <br>
                              $member_adaptor->fetch_by_source_stable_id('ENSEMBLPEP','ENSDARP00000103634');


                              <br>
                              <br>
                              # print out some information about the
                              Member <br>
                              print $member->description, "\n"; <br>
                              <br>
                              <br>
                              <br>
                              my $homology_adaptor =
                              Bio::EnsEMBL::Registry->get_adaptor('Multi',
                              <br>
                              'compara', 'Homology'); <br>
                              my $homologies =
                              $homology_adaptor->fetch_all_by_Member($member);
                              <br>
                              <br>
                              # That will return a reference to an array
                              with all <br>
                              homologies(orthologues in <br>
                              # other species and paralogues in the same
                              one) <br>
                              # Then for each homology, you can get all
                              the Members implicated <br>
                              <br>
                              foreach my $homology (@{$homologies}) { <br>
                              # You will find different kind of
                              description <br>
                              # UBRH, MBRH, RHS, YoungParalogues <br>
                              # see
                              ensembl-compara/docs/docs/schema_doc.html
                              for more details <br>
                              <br>
                              print $homology->description," ",
                              $homology->subtype,"\n"; <br>
                              # And if they are defined dN and dS
                              related values <br>
                              print " dn ", $homology->dn,"\n"; <br>
                              print " ds ", $homology->ds,"\n"; <br>
                              print " dnds_ratio ",
                              $homology->dnds_ratio,"\n"; <br>
                              } <br>
                              <br>
                              my $homology = $homologies->[0]; <br>
                              # take one of the homologies and lookinto
                              it <br>
                              <br>
                              foreach my $member_attribute <br>
                              (@{$homology->get_all_Member_Attribute})

                              { <br>
                              <br>
                              # for each Member, you get information on
                              the Member specifically <br>
                              and in <br>
                              # relation to the homology relation via
                              Attribute object <br>
                              <br>
                              my ($member, $attribute) =
                              @{$member_attribute}; <br>
                              print (join " ", map { $member->$_ }
                              qw(stable_id taxon_id))."\n"; <br>
                              print (join " ", map { $attribute->$_ }
                              qw(perc_id <br>
                              perc_posperc_cov))."\n"; <br>
                              <br>
                              } <br>
                              ====================================================


                              <br>
                              <br>
                              <br>
                              <br>
                              James Blackshaw <br>
                              PhD Student <br>
                              MRC Mitochondrial Biology Unit <br>
                              <br>
                              <br>
                              _______________________________________________


                              <br>
                              Dev mailing list <a
                                moz-do-not-send="true"
                                class="moz-txt-link-abbreviated"
                                href="mailto:Dev@ensembl.org">Dev@ensembl.org</a><a
                                moz-do-not-send="true"
                                class="moz-txt-link-rfc2396E"
                                href="mailto:Dev@ensembl.org"><mailto:Dev@ensembl.org></a>
                              <br>
                              List admin (including
                              subscribe/unsubscribe): <br>
                              <a moz-do-not-send="true"
                                class="moz-txt-link-freetext"
                                href="http://lists.ensembl.org/mailman/listinfo/dev">http://lists.ensembl.org/mailman/listinfo/dev</a>
                              <br>
                              Ensembl Blog: <a moz-do-not-send="true"
                                class="moz-txt-link-freetext"
                                href="http://www.ensembl.info/">http://www.ensembl.info/</a>
                              <br>
                            </blockquote>
                            <br>
                            <br>
                            _______________________________________________


                            <br>
                            Dev mailing <a moz-do-not-send="true"
                              class="moz-txt-link-abbreviated"
                              href="mailto:listDev@ensembl.org">listDev@ensembl.org</a><a
                              moz-do-not-send="true"
                              class="moz-txt-link-rfc2396E"
                              href="mailto:Dev@ensembl.org"><mailto:Dev@ensembl.org></a>
                            <br>
                            List admin (including <br>
                            subscribe/unsubscribe):<a
                              moz-do-not-send="true"
                              class="moz-txt-link-freetext"
                              href="http://lists.ensembl.org/mailman/listinfo/dev">http://lists.ensembl.org/mailman/listinfo/dev</a>
                            <br>
                            Ensembl Blog:<a moz-do-not-send="true"
                              class="moz-txt-link-freetext"
                              href="http://www.ensembl.info/">http://www.ensembl.info/</a>
                            <br>
                          </blockquote>
                          -- <br>
                          Javier Herrero, PhD <br>
                          Ensembl Compara Project Leader <br>
                          European Bioinformatics Institute (EMBL-EBI) <br>
                          Wellcome Trust Genome Campus, Hinxton <br>
                          Cambridge - CB10 1SD - UK <br>
                          <br>
                          <br>
                          _______________________________________________

                          <br>
                          Dev mailing <a moz-do-not-send="true"
                            class="moz-txt-link-abbreviated"
                            href="mailto:listDev@ensembl.org">listDev@ensembl.org</a><a
                            moz-do-not-send="true"
                            class="moz-txt-link-rfc2396E"
                            href="mailto:Dev@ensembl.org"><mailto:Dev@ensembl.org></a>
                          <br>
                          List admin (including <br>
                          subscribe/unsubscribe):<a
                            moz-do-not-send="true"
                            class="moz-txt-link-freetext"
                            href="http://lists.ensembl.org/mailman/listinfo/dev">http://lists.ensembl.org/mailman/listinfo/dev</a>
                          <br>
                          Ensembl Blog:<a moz-do-not-send="true"
                            class="moz-txt-link-freetext"
                            href="http://www.ensembl.info/">http://www.ensembl.info/</a>
                          <br>
                        </blockquote>
                        <br>
                        <br>
                        _______________________________________________
                        <br>
                        Dev mailing list <a moz-do-not-send="true"
                          class="moz-txt-link-abbreviated"
                          href="mailto:Dev@ensembl.org">Dev@ensembl.org</a>
                        <br>
                        List admin (including subscribe/unsubscribe): <br>
                        <a moz-do-not-send="true"
                          class="moz-txt-link-freetext"
                          href="http://lists.ensembl.org/mailman/listinfo/dev">http://lists.ensembl.org/mailman/listinfo/dev</a>
                        <br>
                        Ensembl Blog: <a moz-do-not-send="true"
                          class="moz-txt-link-freetext"
                          href="http://www.ensembl.info/">http://www.ensembl.info/</a>
                        <br>
                      </blockquote>
                      <br>
                    </blockquote>
                  </blockquote>
                  <br>
                </blockquote>
                <br>
                _______________________________________________ <br>
                Dev mailing list    <a moz-do-not-send="true"
                  class="moz-txt-link-abbreviated"
                  href="mailto:Dev@ensembl.org">Dev@ensembl.org</a> <br>
                List admin (including subscribe/unsubscribe): <a
                  moz-do-not-send="true" class="moz-txt-link-freetext"
                  href="http://lists.ensembl.org/mailman/listinfo/dev">http://lists.ensembl.org/mailman/listinfo/dev</a>
                <br>
                Ensembl Blog: <a moz-do-not-send="true"
                  class="moz-txt-link-freetext"
                  href="http://www.ensembl.info/">http://www.ensembl.info/</a>
                <br>
              </blockquote>
              --- <br>
              Andrew Yates                   Ensembl Core Software
              Project Leader <br>
              EMBL-EBI                       Tel: +44-(0)1223-492538 <br>
              Wellcome Trust Genome Campus   Fax: +44-(0)1223-494468 <br>
              Cambridge CB10 1SD, UK         <a moz-do-not-send="true"
                class="moz-txt-link-freetext"
                href="http://www.ensembl.org/">http://www.ensembl.org/</a>
              <br>
              <br>
            </blockquote>
            <br>
          </blockquote>
          <br>
          <br>
          _______________________________________________ <br>
          Dev mailing list    <a moz-do-not-send="true"
            class="moz-txt-link-abbreviated"
            href="mailto:Dev@ensembl.org">Dev@ensembl.org</a> <br>
          List admin (including subscribe/unsubscribe): <a
            moz-do-not-send="true" class="moz-txt-link-freetext"
            href="http://lists.ensembl.org/mailman/listinfo/dev">http://lists.ensembl.org/mailman/listinfo/dev</a>
          <br>
          Ensembl Blog: <a moz-do-not-send="true"
            class="moz-txt-link-freetext"
            href="http://www.ensembl.info/">http://www.ensembl.info/</a>
          <br>
          <br>
        </blockquote>
        <br>
        <pre class="moz-signature" cols="72">-- 
Javier Herrero, PhD
Ensembl Compara Project Leader
European Bioinformatics Institute (EMBL-EBI)
Wellcome Trust Genome Campus, Hinxton
Cambridge - CB10 1SD - UK</pre>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
Dev mailing list    <a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:Dev@ensembl.org">Dev@ensembl.org</a>
List admin (including subscribe/unsubscribe): <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.ensembl.org/mailman/listinfo/dev">http://lists.ensembl.org/mailman/listinfo/dev</a>
Ensembl Blog: <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://www.ensembl.info/">http://www.ensembl.info/</a>
</pre>
      </blockquote>
      <br>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Javier Herrero, PhD
Ensembl Compara Project Leader
European Bioinformatics Institute (EMBL-EBI)
Wellcome Trust Genome Campus, Hinxton
Cambridge - CB10 1SD - UK</pre>
  </body>
</html>