<div dir="ltr">Thanks very much for the useful answer.<div><br></div><div>I noticed that cross ref also maps to genes from organisms other than that of the query gene ID. Any comment on that?<br><div><br></div><div>Related to the previous question, I use the following Rest python code to do id lookup for particular Ensembl IDs:</div>
<div><br></div><div><div>pref= "/lookup/id/"</div><div>ext = "?"</div><div><br></div><div>for line in inputfile1:</div><div>        geneid= line.rstrip('\n')</div><div><br></div><div>        resp, content = http.request(server+pref+geneid+ext, method="GET", headers={"Content-Type":"application/json"})</div>
<div><br></div><div>        if not resp.status == 200:</div><div>                print "%s\t%s\t%s" %  (geneid, "Invalid response:", resp.status)</div><div>                continue</div><div>                #sys.exit()</div>
<div>        print "%s\t%s" % (geneid,content)</div></div><div><br></div><div><br></div><div>And I get this output:</div><div><br></div><div><div>ENSG00000223972<span class="" style="white-space:pre">    </span>{"source":"ensembl_havana","object_type":"Gene","logic_name":"ensembl_havana_gene","species":"homo_sapiens","description":"DEAD/H (Asp-Glu-Ala-Asp/His) box helicase 11 like 1 [Source:HGNC Symbol;Acc:37102]","display_name":"DDX11L1","biotype":"pseudogene","end":14412,"seq_region_name":"1","db_type":"core","strand":1,"id":"ENSG00000223972","start":11869}</div>
</div><div><br></div><div>What would be the classes/attributes to use under the Perl API to get that? i.e:</div><div><br></div><div>source</div><div>object_type</div><div>logic_name</div><div>species</div><div>description</div>
<div>display_name</div><div>biotype</div><div>end</div><div>seq_region_name<br></div><div>db_type</div><div>strand</div><div>id</div><div>start</div><div><br></div><div>Thanks,</div><div><br></div><div>G.</div></div></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On 27 February 2014 11:39, mag <span dir="ltr"><<a href="mailto:mr6@ebi.ac.uk" target="_blank">mr6@ebi.ac.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    Hi Genomeo,<br>
    <br>
    The REST server only display the current/latest release.<br>
    The release version can be found with this endpoint:<br>
    <a href="http://beta.rest.ensembl.org/documentation/info/software" target="_blank">http://beta.rest.ensembl.org/documentation/info/software</a><br>
    <br>
    To get more details with the Ensembl API, you only need to update
    the print_DBEntries method to display all the attributes you are
    looking for.<br>
    Compared to the output from REST, we have the following:<br>
    - display_id is $dbe->display_id()<br>
    - primary_id is $dbe->primary_id()<br>
    - version is $dbe->version()<br>
    - description is $dbe->description()<br>
    - dbname is $dbe->dbname()<br>
    - synonyms is $dbe->get_all_synonyms()<br>
    - info_type is $dbe->info_type()<br>
    - info_text is $dbe->info_text()<br>
    - db_display_name is $dbe->db_display_name()<br>
    <br>
    You can chose what format the REST will output.<br>
    Details of all formats can be found in our user guide:<br>
    <a href="http://beta.rest.ensembl.org/documentation/user_guide" target="_blank">http://beta.rest.ensembl.org/documentation/user_guide</a><br>
    For tab-delimited output, content_type=text/x-gff3 is used, but it
    is only available for the /feature endpoint.<br>
    <br>
    There is no file in the Ensembl ftp dumps that contains all the
    external references produced.<br>
    <br>
    <br>
    Regards,<br>
    Magali<div><div class="h5"><br>
    <br>
    <div>On 27/02/2014 11:20, Genomeo Dev wrote:<br>
    </div>
    </div></div><blockquote type="cite"><div><div class="h5">
      <div dir="ltr">
        <div><font color="#000000" face="arial, helvetica, sans-serif"><span style="line-height:18px;white-space:pre-wrap">Hi,</span></font></div>
        <div><font color="#000000" face="arial, helvetica, sans-serif"><span style="line-height:18px;white-space:pre-wrap"><br>
            </span></font></div>
        <div><span style="line-height:18px;white-space:pre-wrap;font-family:arial,helvetica,sans-serif">I
            am interested in getting wide cross references to ensembl
            gene IDs. I found two programmatic ways to do that which
            give consistent results but different amount of details.
            Using ENSG00000223972 as an example:</span><br>
        </div>
        <div><font color="#000000" face="arial, helvetica, sans-serif"><span style="line-height:18px;white-space:pre-wrap">(1)</span></font></div>
        <div><font color="#000000" face="arial, helvetica, sans-serif"><span style="line-height:18px;white-space:pre-wrap">Using this
              rest API Endpoint python code (<a href="http://beta.rest.ensembl.org/documentation/info/xref_id" target="_blank">http://beta.rest.ensembl.org/documentation/info/xref_id</a>)</span></font></div>
        <div><br>
        </div>
        <ol>
          <li style="line-height:18px;list-style-type:decimal;color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,136)">import</span><span style="color:rgb(0,0,0)"> httplib2</span><span style="color:rgb(102,102,0)">,</span><span style="color:rgb(0,0,0)"> sys</span></li>

          <li style="line-height:18px;list-style-type:decimal;background-color:rgb(238,238,238);color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,0)"> </span></li>
          <li style="line-height:18px;list-style-type:decimal;color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,0)">http </span><span style="color:rgb(102,102,0)">=</span><span style="color:rgb(0,0,0)"> httplib2</span><span style="color:rgb(102,102,0)">.</span><span style="color:rgb(102,0,102)">Http</span><span style="color:rgb(102,102,0)">(</span><span style="color:rgb(0,136,0)">".cache"</span><span style="color:rgb(102,102,0)">)</span></li>

          <li style="line-height:18px;list-style-type:decimal;background-color:rgb(238,238,238);color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,0)"> </span></li>
          <li style="line-height:18px;color:rgb(190,190,197);list-style-type:decimal;padding-left:12px"><span style="color:rgb(0,0,0)">server </span><span style="color:rgb(102,102,0)">=</span><span style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,136,0)">"<a href="http://beta.rest.ensembl.org" target="_blank">http://beta.rest.ensembl.org</a>"</span></li>

          <li style="line-height:18px;list-style-type:decimal;background-color:rgb(238,238,238);color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,0)">ext </span><span style="color:rgb(102,102,0)">=</span><span style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,136,0)">"/xrefs/id/ENSG00000157764?"</span></li>

          <li style="line-height:18px;list-style-type:decimal;color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,0)">resp</span><span style="color:rgb(102,102,0)">,</span><span style="color:rgb(0,0,0)"> content </span><span style="color:rgb(102,102,0)">=</span><span style="color:rgb(0,0,0)"> http</span><span style="color:rgb(102,102,0)">.</span><span style="color:rgb(0,0,0)">request</span><span style="color:rgb(102,102,0)">(</span><span style="color:rgb(0,0,0)">server</span><span style="color:rgb(102,102,0)">+</span><span style="color:rgb(0,0,0)">ext</span><span style="color:rgb(102,102,0)">,</span><span style="color:rgb(0,0,0)"> method</span><span style="color:rgb(102,102,0)">=</span><span style="color:rgb(0,136,0)">"GET"</span><span style="color:rgb(102,102,0)">,</span><span style="color:rgb(0,0,0)"> headers</span><span style="color:rgb(102,102,0)">={</span><span style="color:rgb(0,136,0)">"Content-Type"</span><span style="color:rgb(102,102,0)">:</span><span style="color:rgb(0,136,0)">"application/json"</span><span style="color:rgb(102,102,0)">})</span></li>

          <li style="line-height:18px;list-style-type:decimal;background-color:rgb(238,238,238);color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,0)"> </span></li>
          <li style="line-height:18px;list-style-type:decimal;color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,136)">if</span><span style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,0,136)">not</span><span style="color:rgb(0,0,0)"> resp</span><span style="color:rgb(102,102,0)">.</span><span style="color:rgb(0,0,0)">status </span><span style="color:rgb(102,102,0)">==</span><span style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,102,102)">200</span><span style="color:rgb(102,102,0)">:</span></li>

          <li style="line-height:18px;background-color:rgb(238,238,238);color:rgb(190,190,197);list-style-type:decimal;padding-left:12px"><span style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,0,136)">print</span><span style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,136,0)">"Invalid response: "</span><span style="color:rgb(102,102,0)">,</span><span style="color:rgb(0,0,0)"> resp</span><span style="color:rgb(102,102,0)">.</span><span style="color:rgb(0,0,0)">status</span></li>

          <li style="line-height:18px;list-style-type:decimal;color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,0)"> sys</span><span style="color:rgb(102,102,0)">.</span><span style="color:rgb(0,0,136)">exit</span><span style="color:rgb(102,102,0)">()</span></li>

          <li style="line-height:18px;list-style-type:decimal;background-color:rgb(238,238,238);color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,136)">import</span><span style="color:rgb(0,0,0)"> json</span></li>

          <li style="line-height:18px;list-style-type:decimal;color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,0)"> </span></li>
          <li style="line-height:18px;list-style-type:decimal;background-color:rgb(238,238,238);color:rgb(190,190,197);padding-left:12px"><span style="color:rgb(0,0,0)">decoded </span><span style="color:rgb(102,102,0)">=</span><span style="color:rgb(0,0,0)"> json</span><span style="color:rgb(102,102,0)">.</span><span style="color:rgb(0,0,0)">loads</span><span style="color:rgb(102,102,0)">(</span><span style="color:rgb(0,0,0)">content</span><span style="color:rgb(102,102,0)">)</span></li>

          <li style="line-height:18px;color:rgb(190,190,197);list-style-type:decimal;padding-left:12px"><span style="color:rgb(0,0,136)">print</span><span style="color:rgb(0,0,0)"> repr</span><span style="color:rgb(102,102,0)">(</span><span style="color:rgb(0,0,0)">decoded</span><span style="color:rgb(102,102,0)">)</span></li>

        </ol>
        <div><br>
        </div>
        <div>I get:</div>
        <div><br>
        </div>
        <div>
          <div>{"display_id":"OTTHUMG00000000961","primary_id":"OTTHUMG00000000961","version":"2","description":null,"dbname":"OTTG","synonyms":[],"info_type":"NONE","info_text":"","db_display_name":"Havana
            gene"}</div>
          <div><br>
          </div>
          <div>{"primary_id":"Hs.714157","dbname":"UniGene","ensembl_identity":98,"synonyms":[],"ensembl_start":6,"xref_start":1,"xref_end":1639,"db_display_name":"UniGene","display_id":"Hs.714157","ensembl_end":1657,"version":"0","score":8055,"cigar_line":"1200M1D299M12D140M","description":"DEAD/H
            (Asp-Glu-Ala-Asp/His) box helicase 11 like
1","xref_identity":97,"evalue":null,"info_text":"","info_type":"SEQUENCE_MATCH"}</div>
          <div><br>
          </div>
          <div>{"primary_id":"Hs.618434","dbname":"UniGene","ensembl_identity":58,"synonyms":[],"ensembl_start":669,"xref_start":1,"xref_end":974,"db_display_name":"UniGene","display_id":"Hs.618434","ensembl_end":1655,"version":"0","score":4757,"cigar_line":"537M1D299M12D138M","description":"Similar
            to DEAD/H (Asp-Glu-Ala-Asp/His) box polypeptide 11 isoform
            1, mRNA (cDNA clone
IMAGE:6103207)","xref_identity":96,"evalue":null,"info_text":"","info_type":"SEQUENCE_MATCH"}</div>
          <div><br>
          </div>
          <div>{"display_id":"DDX11L1","primary_id":"37102","version":"0","description":"DEAD/H
            (Asp-Glu-Ala-Asp/His) box helicase 11 like
            1","dbname":"HGNC","synonyms":[],"info_type":"DIRECT","info_text":"Generated
            via ensembl_manual","db_display_name":"HGNC Symbol"}</div>
          <div><br>
          </div>
          <div>{"display_id":"DDX11L5","primary_id":"100287596","version":"0","description":"DEAD/H
            (Asp-Glu-Ala-Asp/His) box helicase 11 like
5","dbname":"EntrezGene","synonyms":[],"info_type":"DEPENDENT","info_text":"","db_display_name":"EntrezGene"}</div>
          <div><br>
          </div>
          <div>{"display_id":"DDX11L1","primary_id":"100287102","version":"0","description":"DEAD/H
            (Asp-Glu-Ala-Asp/His) box helicase 11 like
1","dbname":"EntrezGene","synonyms":[],"info_type":"DEPENDENT","info_text":"","db_display_name":"EntrezGene"}</div>
          <div><br>
          </div>
          <div>{"display_id":"ENSG00000223972","primary_id":"ENSG00000223972","version":"0","description":"","dbname":"ArrayExpress","synonyms":[],"info_type":"DIRECT","info_text":"","db_display_name":"ArrayExpress"}</div>

          <div><br>
          </div>
          <div>{"display_id":"DDX11L5","primary_id":"100287596","version":"0","description":"DEAD/H
            (Asp-Glu-Ala-Asp/His) box helicase 11 like
5","dbname":"WikiGene","synonyms":[],"info_type":"DEPENDENT","info_text":"","db_display_name":"WikiGene"}</div>
          <div><br>
          </div>
          <div>{"display_id":"DDX11L1","primary_id":"100287102","version":"0","description":"DEAD/H
            (Asp-Glu-Ala-Asp/His) box helicase 11 like
1","dbname":"WikiGene","synonyms":[],"info_type":"DEPENDENT","info_text":"","db_display_name":"WikiGene"}]</div>
          <div><br>
          </div>
        </div>
        <div>(2)</div>
        <div><br>
        </div>
        <div>Using this perl API code (based on <a href="http://www.ensembl.org/info/docs/api/core/core_tutorial.html" target="_blank">http://www.ensembl.org/info/docs/api/core/core_tutorial.html</a>):</div>
        <div><br>
        </div>
        <div>
          <pre style="margin-top:0px;margin-bottom:16px;border:1px solid rgb(204,204,204);background-color:rgb(240,240,240);padding:8px!important"><font color="#555555" face="courier new, monospace"><span style="line-height:16px"># Define a helper subroutine to print DBEntries
sub print_DBEntries
{
    my $db_entries = shift;

    foreach my $dbe ( @{$db_entries} ) {
        printf "\tXREF %s (%s)\n", $dbe->display_id(), $dbe->dbname();
    }
}

my $genes = $gene_adaptor->fetch_all_by_stable_id_list([@gene_list]);</span></font></pre>
          <pre style="margin-top:0px;margin-bottom:16px;border:1px solid rgb(204,204,204);background-color:rgb(240,240,240);line-height:16px;color:rgb(85,85,85);padding:8px!important"><font face="courier new, monospace">
...</font></pre>
          <pre style="margin-top:0px;margin-bottom:16px;border:1px solid rgb(204,204,204);background-color:rgb(240,240,240);line-height:16px;color:rgb(85,85,85);padding:8px!important"><font face="courier new, monospace">
print "GENE ", $gene->stable_id(), "\n";
print_DBEntries( $gene->get_all_DBEntries() );</font></pre>
        </div>
        <div>
          <div><span style="white-space:pre-wrap">I get:</span></div>
          <div><span style="white-space:pre-wrap"> </span></div>
          <div>XREF OTTHUMG00000000961 (OTTG)</div>
          <div>XREF ENSG00000223972 (ArrayExpress)</div>
          <div>XREF DDX11L1 (EntrezGene)</div>
          <div>XREF DDX11L5 (EntrezGene)</div>
          <div>XREF DDX11L1 (HGNC)</div>
          <div>XREF Hs.618434 (UniGene)</div>
          <div>XREF Hs.714157 (UniGene)</div>
          <div>
            XREF DDX11L1 (WikiGene)</div>
          <div>XREF DDX11L5 (WikiGene)</div>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Questions:</div>
        <div><br>
        </div>
        <div>1. am I correct in saying that the Rest code uses the
          latest Ensembl release while the API code uses the Ensembl
          release currently installed as part of the VM (I am using
          release 74)?</div>
        <div><br>
        </div>
        <div>2. Rest code gives more extensive details (which I like)
          compared to the perl API code. Could you suggest a simple way
          to use the API to get the same details?</div>
        <div><br>
        </div>
        <div>3. The Rest code output format. Is tab separated text
          supported?<br>
        </div>
        <div><br>
        </div>
        <div>4. Is there a  file in the Ensembl ftp area which contains
          pre generated detailed cross ref mappings for all current
          Ensembl genes?</div>
        -- 
        <div><br>
        </div>
        <div>Thanks,</div>
        <div><br>
          <div dir="ltr">
            G.</div>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
Dev mailing list    <a href="mailto:Dev@ensembl.org" target="_blank">Dev@ensembl.org</a>
Posting guidelines and subscribe/unsubscribe info: <a href="http://lists.ensembl.org/mailman/listinfo/dev" target="_blank">http://lists.ensembl.org/mailman/listinfo/dev</a>
Ensembl Blog: <a href="http://www.ensembl.info/" target="_blank">http://www.ensembl.info/</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
Dev mailing list    <a href="mailto:Dev@ensembl.org">Dev@ensembl.org</a><br>
Posting guidelines and subscribe/unsubscribe info: <a href="http://lists.ensembl.org/mailman/listinfo/dev" target="_blank">http://lists.ensembl.org/mailman/listinfo/dev</a><br>
Ensembl Blog: <a href="http://www.ensembl.info/" target="_blank">http://www.ensembl.info/</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">G.</div>
</div>