<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi Jason<br>
    <br>
    You are right, the API will return all the paralogues. It seems you
    are only interested in the in-paralogues. Defining in-paralogues
    require you to define the boundary between an in-paralogue and an
    out-paralogue. That boundary is typically set by an additional
    species, mouse in your case. In other words, you want all the human
    paralogues that are closer to your query gene than the closest mouse
    orthologue.<br>
    <br>
    Our API doesn't currently support that kind of query. I would have
    suggested to look at the taxonomic annotation of the ancestral node
    linking the paralogues. I haven't tested it, but it seems you have
    find an alternative that works for you.<br>
    <br>
    Kind regards<br>
    <br>
    Javier<br>
    <br>
    On 13/02/12 17:57, Jason Merkin wrote:
    <blockquote
cite="mid:CANirNQu=2P7E=FvNTu5f74x+dnKKBfXA9ka+huC+sand3rFi3w@mail.gmail.com"
      type="cite">
      <div class="gmail_quote">
        <p>Hi Javier</p>
        <p>Correct me if I am wrong but won't the paralog query give you
          the three sets of genes in hsap? I would like to, for
          instance, get hsap1 without getting hsap2, hsap2', or hsap3. </p>
        <p>I wrote the following script to recursively get all
          homologies of all types except paralog that I think should get
          and print out all of the members of the gene family. </p>
        <p>$stable = shift;</p>
        <p>my %these_species;</p>
        <p>foreach (9606, 10090){</p>
        <p>        $these_species{$_} = 1;</p>
        <p>}</p>
        <p>my %relationships;</p>
        <p>foreach ("ortholog_one2one", "ortholog_one2many",
          "ortholog_many2one", </p>
        <p>        "ortholog_many2many", "possible_ortholog",
          "apparent_ortholog_one2one"){</p>
        <p>        $relationships{$_} = 1;</p>
        <p>}</p>
        <p><br>
        </p>
        <p>my $homology_adaptor = $reg->get_adaptor("Compara",
          "compara", "Homology");</p>
        <p>my $member_adaptor = $reg->get_adaptor('Multi', 'compara',
          'Member');</p>
        <p>my %these_genes;</p>
        <p>my %query_used;</p>
        <p>single_gene($stable, \%relationships, \%these_species,
          $member_adaptor, $homology_adaptor, \%query_used);</p>
        <p>while ( my ($key, $value) = each(%these_genes) ) {</p>
        <p>                print "$key => $value\n";</p>
        <p>                            }</p>
        <p><br>
        </p>
        <p>sub single_gene</p>
        <p>{</p>
        <p>        #($stable, %relationships, %these_species,
          $member_adaptor, $homology_adaptor)</p>
        <p>        my $this_stable = @_[0];</p>
        <p>        if ($query_used{$this_stable}){</p>
        <p>                return;</p>
        <p>        }</p>
        <p>        $query_used{$this_stable} = 1;</p>
        <p><br>
        </p>
        <p>        my $member =
          $member_adaptor->fetch_by_source_stable_id("ENSEMBLGENE",
          $this_stable);</p>
        <p>        if (defined $member){</p>
        <p>                my $all_homologies =
          $homology_adaptor->fetch_by_Member($member);</p>
        <p>                foreach my $homology (@{$all_homologies}) {</p>
        <p>                        if
          ($relationships{$homology->description}){</p>
        <p>                                foreach my $attr
          (@{$homology->get_all_Member_Attribute}) {</p>
        <p>                                        my ($member,
          $attribute) = @{$attr};</p>
        <p>                                        if
          ($these_species{$member->taxon_id}){</p>
        <p>                                                my
          $new_stable = $member->stable_id;</p>
        <p>                                               
          $these_genes{$new_stable} = 1;</p>
        <p>                                               
          single_gene($new_stable, \%relationships, \%these_species, </p>
        <p>                                                       
          $member_adaptor, $homology_adaptor, \%query_used);</p>
        <p><br>
        </p>
        <p>                                        }</p>
        <p>                                }</p>
        <p>                        }</p>
        <p>                }</p>
        <p>        }</p>
        <p>        return;</p>
        <div>
          <div>
            <p>}</p>
            <div><br>
            </div>
            <div class="gmail_quote">On Feb 13, 2012 6:48 AM, "Javier
              Herrero" <<a moz-do-not-send="true"
                href="mailto:jherrero@ebi.ac.uk" target="_blank">jherrero@ebi.ac.uk</a>>
              wrote:<br type="attribution">
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">
                <div bgcolor="#FFFFFF" text="#000000"> Hi Jason<br>
                  <br>
                  You can use the HomologyAdaptor (<a
                    moz-do-not-send="true"
href="http://www.ensembl.org/info/docs/Doxygen/compara-api/classBio_1_1EnsEMBL_1_1Compara_1_1DBSQL_1_1HomologyAdaptor.html"
                    target="_blank">http://www.ensembl.org/info/docs/Doxygen/compara-api/classBio_1_1EnsEMBL_1_1Compara_1_1DBSQL_1_1HomologyAdaptor.html</a>)
                  to get these relationships. You can try either the
                  fetch_all_by_Member_paired_species or the
                  fetch_all_by_Member_paired_species methods. For
                  instance,<br>
                  <br>
                  $homology_adaptor->fetch_all_by_Member_paired_species($hsap1_member,


                  "mus_musculus", "ENSEMBL_ORTHOLOGUES");<br>
                  <br>
                  will return [$mmus1_member], and<br>
                  <br>
                  $homology_adaptor->fetch_all_by_Member_paired_species($hsap2_member,


                  "mus_musculus", "ENSEMBL_ORTHOLOGUES");<br>
                  <br>
                  will return [$mmus2_member, $mmus2'_member]. If you
                  want to get the intra-species paralogues as well, you
                  can add:<br>
                  <br>
                  $homology_adaptor->fetch_all_by_Member_paired_species($hsap2_member,


                  "homo_sapiens", "ENSEMBL_PARALOGUES");<br>
                  <br>
                  I hope this helps<br>
                  <br>
                  Javier<br>
                  <br>
                  On 12/02/12 01:24, Jason Merkin wrote:
                  <blockquote type="cite">Hello. I am trying to identify
                    duplications that have occured within a group of
                    species. I have gone through the tutorial and the
                    mailing list archives and couldn't find anything on
                    it. I will use the example on the webpage that
                    explains the homology definitions (<a
                      moz-do-not-send="true"
href="http://ensembl.genomics.org.cn:8058/info/docs/compara/homology_method.html"
                      target="_blank">http://ensembl.genomics.org.cn:8058/info/docs/compara/homology_method.html</a>)
                    to illustrate what I am trying to do. Using just
                    human and mouse, as on the diagram, I would like to
                    query with Hsap1 and get the set of (Hsap1, Mmus1);
                    query with Hsap2 and get (Hsap2, Hsap2', Mmus2,
                    Mmus2'); and query with Hsap3 and get (Hsap3, Mmus3,
                    Mmus3'). Is there a way to specify the homology type
                    and, more importantly, restrict the species to be
                    considered for definining the homology? <br
                      clear="all">
                    <br>
                    Thanks for any help,<br>
                    Jason Merkin<br>
                    <br>
                    <br>
                    <fieldset></fieldset>
                    <br>
                    <pre>_______________________________________________
Dev mailing list    <a moz-do-not-send="true" href="mailto:Dev@ensembl.org" target="_blank">Dev@ensembl.org</a>
List admin (including subscribe/unsubscribe): <a moz-do-not-send="true" href="http://lists.ensembl.org/mailman/listinfo/dev" target="_blank">http://lists.ensembl.org/mailman/listinfo/dev</a>
Ensembl Blog: <a moz-do-not-send="true" href="http://www.ensembl.info/" target="_blank">http://www.ensembl.info/</a>
</pre>
                  </blockquote>
                  <br>
                  <pre cols="72">-- 
Javier Herrero, PhD
Ensembl Coordinator and Ensembl Compara Project Leader
European Bioinformatics Institute (EMBL-EBI)
Wellcome Trust Genome Campus, Hinxton
Cambridge - CB10 1SD - UK</pre>
                </div>
                <br>
                _______________________________________________<br>
                Dev mailing list    <a moz-do-not-send="true"
                  href="mailto:Dev@ensembl.org" target="_blank">Dev@ensembl.org</a><br>
                List admin (including subscribe/unsubscribe): <a
                  moz-do-not-send="true"
                  href="http://lists.ensembl.org/mailman/listinfo/dev"
                  target="_blank">http://lists.ensembl.org/mailman/listinfo/dev</a><br>
                Ensembl Blog: <a moz-do-not-send="true"
                  href="http://www.ensembl.info/" target="_blank">http://www.ensembl.info/</a><br>
                <br>
              </blockquote>
            </div>
          </div>
        </div>
      </div>
      <br>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Javier Herrero, PhD
Ensembl Coordinator and Ensembl Compara Project Leader
European Bioinformatics Institute (EMBL-EBI)
Wellcome Trust Genome Campus, Hinxton
Cambridge - CB10 1SD - UK</pre>
  </body>
</html>