<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    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 class="moz-txt-link-abbreviated" href="mailto:Dev@ensembl.org">Dev@ensembl.org</a>
List admin (including subscribe/unsubscribe): <a class="moz-txt-link-freetext" href="http://lists.ensembl.org/mailman/listinfo/dev">http://lists.ensembl.org/mailman/listinfo/dev</a>
Ensembl Blog: <a class="moz-txt-link-freetext" href="http://www.ensembl.info/">http://www.ensembl.info/</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>