GET genetree/id/:id

Retrieves a gene tree for a gene tree stable identifier

Parameters

Required

NameTypeDescriptionDefaultExample Values
id String An Ensembl genetree ID - ENSGT00390000003602

Optional

NameTypeDescriptionDefaultExample Values
aligned Boolean Return the aligned string if true. Otherwise, return the original sequence (no insertions) 0 -
callback String Name of the callback subroutine to be returned by the requested JSONP response. Required ONLY when using JSONP as the serialisation method. Please see the user guide. - randomlygeneratedname
cigar_line Boolean Return the aligned sequence encoded in CIGAR format 0 -
clusterset_id String Name of the gene-tree resource being queried. Common values are "default" for the standard multi-clade trees (which exclude all non-reference strains) and "murinae" for the trees spanning all mouse strains. By default, the most inclusive analysis will be selected - default
murinae
compara String Name of the compara database to use. Multiple comparas exist on a server for separate species divisions vertebrates vertebrates
nh_format Enum(full, display_label_composite, simple, species, species_short_name, ncbi_taxon, ncbi_name, njtree, phylip) The format of a NH (New Hampshire) request. simple -
prune_species String Prune the tree by species. Supports all species aliases. Will return a tree with only the species given - human
cow
prune_taxon Integer Prune the tree by taxon. Will return a tree with only the taxons given - 9606
10090
sequence Enum(none, cdna, protein) The type of sequence to bring back. Setting it to none results in no sequence being returned protein -

Example Requests

/genetree/id/ENSGT00390000003602?content-type=application/json


use strict;
use warnings;

use HTTP::Tiny;

my $http = HTTP::Tiny->new();

my $server = 'https://jan2020.rest.ensembl.org';
my $ext = '/genetree/id/ENSGT00390000003602?';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'application/json' }
});

die "Failed!\n" unless $response->{success};


use JSON;
use Data::Dumper;
if(length $response->{content}) {
  my $hash = decode_json($response->{content});
  local $Data::Dumper::Terse = 1;
  local $Data::Dumper::Indent = 1;
  print Dumper $hash;
  print "\n";
}

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/genetree/id/ENSGT00390000003602?"

r = requests.get(server+ext, headers={ "Content-Type" : "application/json"})

if not r.ok:
  r.raise_for_status()
  sys.exit()

decoded = r.json()
print repr(decoded)

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/genetree/id/ENSGT00390000003602?"

r = requests.get(server+ext, headers={ "Content-Type" : "application/json"})

if not r.ok:
  r.raise_for_status()
  sys.exit()

decoded = r.json()
print(repr(decoded))

require 'net/http'
require 'uri'

server='https://jan2020.rest.ensembl.org'
path = '/genetree/id/ENSGT00390000003602?'

url = URI.parse(server)
http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(path, {'Content-Type' => 'application/json'})

response = http.request(request)

if response.code != "200"
  puts "Invalid response: #{response.code}"
  puts response.body
  exit
end


require 'rubygems'
require 'json'
require 'yaml'

result = JSON.parse(response.body)
puts YAML::dump(result)

import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Reader;


public class EnsemblRest {

  public static void main(String[] args) throws Exception {
    String server = "https://jan2020.rest.ensembl.org";
    String ext = "/genetree/id/ENSGT00390000003602?";
    URL url = new URL(server + ext);

    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;
    
    httpConnection.setRequestProperty("Content-Type", "application/json");
    

    InputStream response = connection.getInputStream();
    int responseCode = httpConnection.getResponseCode();

    if(responseCode != 200) {
      throw new RuntimeException("Response code was not 200. Detected response was "+responseCode);
    }

    String output;
    Reader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
      StringBuilder builder = new StringBuilder();
      char[] buffer = new char[8192];
      int read;
      while ((read = reader.read(buffer, 0, buffer.length)) > 0) {
        builder.append(buffer, 0, read);
      }
      output = builder.toString();
    } 
    finally {
        if (reader != null) try {
          reader.close(); 
        } catch (IOException logOrIgnore) {
          logOrIgnore.printStackTrace();
        }
    }

    System.out.println(output);
  }
}

library(httr)
library(jsonlite)
library(xml2)

server <- "https://jan2020.rest.ensembl.org"
ext <- "/genetree/id/ENSGT00390000003602?"

r <- GET(paste(server, ext, sep = ""), content_type("application/json"))

stop_for_status(r)

# use this if you get a simple nested list back, otherwise inspect its structure
# head(data.frame(t(sapply(content(r),c))))
head(fromJSON(toJSON(content(r))))


curl 'https://jan2020.rest.ensembl.org/genetree/id/ENSGT00390000003602?' -H 'Content-type:application/json'

wget -q --header='Content-type:application/json' 'https://jan2020.rest.ensembl.org/genetree/id/ENSGT00390000003602?'  -O -

/genetree/id/ENSGT00390000003602?prune_species=cow;content-type=text/x-nh;prune_taxon=9526;nh_format=simple


use strict;
use warnings;

use HTTP::Tiny;

my $http = HTTP::Tiny->new();

my $server = 'https://jan2020.rest.ensembl.org';
my $ext = '/genetree/id/ENSGT00390000003602?nh_format=simple;prune_taxon=9526;prune_species=cow';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'text/x-nh' }
});

die "Failed!\n" unless $response->{success};


print "$response->{status} $response->{reason}\n";

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/genetree/id/ENSGT00390000003602?nh_format=simple;prune_taxon=9526;prune_species=cow"

r = requests.get(server+ext, headers={ "Content-Type" : "text/x-nh"})

if not r.ok:
  r.raise_for_status()
  sys.exit()


print r.text

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/genetree/id/ENSGT00390000003602?nh_format=simple;prune_taxon=9526;prune_species=cow"

r = requests.get(server+ext, headers={ "Content-Type" : "text/x-nh"})

if not r.ok:
  r.raise_for_status()
  sys.exit()


print(r.text)

require 'net/http'
require 'uri'

server='https://jan2020.rest.ensembl.org'
path = '/genetree/id/ENSGT00390000003602?nh_format=simple;prune_taxon=9526;prune_species=cow'

url = URI.parse(server)
http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(path, {'Content-Type' => 'text/x-nh'})

response = http.request(request)

if response.code != "200"
  puts "Invalid response: #{response.code}"
  puts response.body
  exit
end


puts response.body

import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Reader;


public class EnsemblRest {

  public static void main(String[] args) throws Exception {
    String server = "https://jan2020.rest.ensembl.org";
    String ext = "/genetree/id/ENSGT00390000003602?nh_format=simple;prune_taxon=9526;prune_species=cow";
    URL url = new URL(server + ext);

    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;
    
    httpConnection.setRequestProperty("Content-Type", "text/x-nh");
    

    InputStream response = connection.getInputStream();
    int responseCode = httpConnection.getResponseCode();

    if(responseCode != 200) {
      throw new RuntimeException("Response code was not 200. Detected response was "+responseCode);
    }

    String output;
    Reader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
      StringBuilder builder = new StringBuilder();
      char[] buffer = new char[8192];
      int read;
      while ((read = reader.read(buffer, 0, buffer.length)) > 0) {
        builder.append(buffer, 0, read);
      }
      output = builder.toString();
    } 
    finally {
        if (reader != null) try {
          reader.close(); 
        } catch (IOException logOrIgnore) {
          logOrIgnore.printStackTrace();
        }
    }

    System.out.println(output);
  }
}

library(httr)
library(jsonlite)
library(xml2)

server <- "https://jan2020.rest.ensembl.org"
ext <- "/genetree/id/ENSGT00390000003602?nh_format=simple;prune_taxon=9526;prune_species=cow"

r <- GET(paste(server, ext, sep = ""), content_type("text/x-nh"))

stop_for_status(r)


print(content(r))


curl 'https://jan2020.rest.ensembl.org/genetree/id/ENSGT00390000003602?nh_format=simple;prune_taxon=9526;prune_species=cow' -H 'Content-type:text/x-nh'

wget -q --header='Content-type:text/x-nh' 'https://jan2020.rest.ensembl.org/genetree/id/ENSGT00390000003602?nh_format=simple;prune_taxon=9526;prune_species=cow'  -O -

/genetree/id/ENSGT00390000003602?content-type=text/x-orthoxml%2Bxml


use strict;
use warnings;

use HTTP::Tiny;

my $http = HTTP::Tiny->new();

my $server = 'https://jan2020.rest.ensembl.org';
my $ext = '/genetree/id/ENSGT00390000003602?';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'text/x-orthoxml+xml' }
});

die "Failed!\n" unless $response->{success};


print "$response->{status} $response->{reason}\n";

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/genetree/id/ENSGT00390000003602?"

r = requests.get(server+ext, headers={ "Content-Type" : "text/x-orthoxml+xml"})

if not r.ok:
  r.raise_for_status()
  sys.exit()


print r.text

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/genetree/id/ENSGT00390000003602?"

r = requests.get(server+ext, headers={ "Content-Type" : "text/x-orthoxml+xml"})

if not r.ok:
  r.raise_for_status()
  sys.exit()


print(r.text)

require 'net/http'
require 'uri'

server='https://jan2020.rest.ensembl.org'
path = '/genetree/id/ENSGT00390000003602?'

url = URI.parse(server)
http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(path, {'Content-Type' => 'text/x-orthoxml+xml'})

response = http.request(request)

if response.code != "200"
  puts "Invalid response: #{response.code}"
  puts response.body
  exit
end


puts response.body

import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Reader;


public class EnsemblRest {

  public static void main(String[] args) throws Exception {
    String server = "https://jan2020.rest.ensembl.org";
    String ext = "/genetree/id/ENSGT00390000003602?";
    URL url = new URL(server + ext);

    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;
    
    httpConnection.setRequestProperty("Content-Type", "text/x-orthoxml+xml");
    

    InputStream response = connection.getInputStream();
    int responseCode = httpConnection.getResponseCode();

    if(responseCode != 200) {
      throw new RuntimeException("Response code was not 200. Detected response was "+responseCode);
    }

    String output;
    Reader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
      StringBuilder builder = new StringBuilder();
      char[] buffer = new char[8192];
      int read;
      while ((read = reader.read(buffer, 0, buffer.length)) > 0) {
        builder.append(buffer, 0, read);
      }
      output = builder.toString();
    } 
    finally {
        if (reader != null) try {
          reader.close(); 
        } catch (IOException logOrIgnore) {
          logOrIgnore.printStackTrace();
        }
    }

    System.out.println(output);
  }
}

library(httr)
library(jsonlite)
library(xml2)

server <- "https://jan2020.rest.ensembl.org"
ext <- "/genetree/id/ENSGT00390000003602?"

r <- GET(paste(server, ext, sep = ""), content_type("text/x-orthoxml+xml"))

stop_for_status(r)


print(content(r))


curl 'https://jan2020.rest.ensembl.org/genetree/id/ENSGT00390000003602?' -H 'Content-type:text/x-orthoxml+xml'

wget -q --header='Content-type:text/x-orthoxml+xml' 'https://jan2020.rest.ensembl.org/genetree/id/ENSGT00390000003602?'  -O -

/genetree/id/ENSGT00390000003602?content-type=text/x-phyloxml%2Bxml


use strict;
use warnings;

use HTTP::Tiny;

my $http = HTTP::Tiny->new();

my $server = 'https://jan2020.rest.ensembl.org';
my $ext = '/genetree/id/ENSGT00390000003602?';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'text/x-phyloxml+xml' }
});

die "Failed!\n" unless $response->{success};


print "$response->{status} $response->{reason}\n";

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/genetree/id/ENSGT00390000003602?"

r = requests.get(server+ext, headers={ "Content-Type" : "text/x-phyloxml+xml"})

if not r.ok:
  r.raise_for_status()
  sys.exit()


print r.text

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/genetree/id/ENSGT00390000003602?"

r = requests.get(server+ext, headers={ "Content-Type" : "text/x-phyloxml+xml"})

if not r.ok:
  r.raise_for_status()
  sys.exit()


print(r.text)

require 'net/http'
require 'uri'

server='https://jan2020.rest.ensembl.org'
path = '/genetree/id/ENSGT00390000003602?'

url = URI.parse(server)
http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(path, {'Content-Type' => 'text/x-phyloxml+xml'})

response = http.request(request)

if response.code != "200"
  puts "Invalid response: #{response.code}"
  puts response.body
  exit
end


puts response.body

import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Reader;


public class EnsemblRest {

  public static void main(String[] args) throws Exception {
    String server = "https://jan2020.rest.ensembl.org";
    String ext = "/genetree/id/ENSGT00390000003602?";
    URL url = new URL(server + ext);

    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;
    
    httpConnection.setRequestProperty("Content-Type", "text/x-phyloxml+xml");
    

    InputStream response = connection.getInputStream();
    int responseCode = httpConnection.getResponseCode();

    if(responseCode != 200) {
      throw new RuntimeException("Response code was not 200. Detected response was "+responseCode);
    }

    String output;
    Reader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
      StringBuilder builder = new StringBuilder();
      char[] buffer = new char[8192];
      int read;
      while ((read = reader.read(buffer, 0, buffer.length)) > 0) {
        builder.append(buffer, 0, read);
      }
      output = builder.toString();
    } 
    finally {
        if (reader != null) try {
          reader.close(); 
        } catch (IOException logOrIgnore) {
          logOrIgnore.printStackTrace();
        }
    }

    System.out.println(output);
  }
}

library(httr)
library(jsonlite)
library(xml2)

server <- "https://jan2020.rest.ensembl.org"
ext <- "/genetree/id/ENSGT00390000003602?"

r <- GET(paste(server, ext, sep = ""), content_type("text/x-phyloxml+xml"))

stop_for_status(r)


print(content(r))


curl 'https://jan2020.rest.ensembl.org/genetree/id/ENSGT00390000003602?' -H 'Content-type:text/x-phyloxml+xml'

wget -q --header='Content-type:text/x-phyloxml+xml' 'https://jan2020.rest.ensembl.org/genetree/id/ENSGT00390000003602?'  -O -

/genetree/id/ENSGT00390000003602?content-type=text/x-phyloxml%2Bxml;sequence=cdna;aligned=1


use strict;
use warnings;

use HTTP::Tiny;

my $http = HTTP::Tiny->new();

my $server = 'https://jan2020.rest.ensembl.org';
my $ext = '/genetree/id/ENSGT00390000003602?aligned=1;sequence=cdna';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'text/x-phyloxml+xml' }
});

die "Failed!\n" unless $response->{success};


print "$response->{status} $response->{reason}\n";

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/genetree/id/ENSGT00390000003602?aligned=1;sequence=cdna"

r = requests.get(server+ext, headers={ "Content-Type" : "text/x-phyloxml+xml"})

if not r.ok:
  r.raise_for_status()
  sys.exit()


print r.text

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/genetree/id/ENSGT00390000003602?aligned=1;sequence=cdna"

r = requests.get(server+ext, headers={ "Content-Type" : "text/x-phyloxml+xml"})

if not r.ok:
  r.raise_for_status()
  sys.exit()


print(r.text)

require 'net/http'
require 'uri'

server='https://jan2020.rest.ensembl.org'
path = '/genetree/id/ENSGT00390000003602?aligned=1;sequence=cdna'

url = URI.parse(server)
http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(path, {'Content-Type' => 'text/x-phyloxml+xml'})

response = http.request(request)

if response.code != "200"
  puts "Invalid response: #{response.code}"
  puts response.body
  exit
end


puts response.body

import java.net.URL;
import java.net.URLConnection;
import java.net.HttpURLConnection;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.Reader;


public class EnsemblRest {

  public static void main(String[] args) throws Exception {
    String server = "https://jan2020.rest.ensembl.org";
    String ext = "/genetree/id/ENSGT00390000003602?aligned=1;sequence=cdna";
    URL url = new URL(server + ext);

    URLConnection connection = url.openConnection();
    HttpURLConnection httpConnection = (HttpURLConnection)connection;
    
    httpConnection.setRequestProperty("Content-Type", "text/x-phyloxml+xml");
    

    InputStream response = connection.getInputStream();
    int responseCode = httpConnection.getResponseCode();

    if(responseCode != 200) {
      throw new RuntimeException("Response code was not 200. Detected response was "+responseCode);
    }

    String output;
    Reader reader = null;
    try {
      reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));
      StringBuilder builder = new StringBuilder();
      char[] buffer = new char[8192];
      int read;
      while ((read = reader.read(buffer, 0, buffer.length)) > 0) {
        builder.append(buffer, 0, read);
      }
      output = builder.toString();
    } 
    finally {
        if (reader != null) try {
          reader.close(); 
        } catch (IOException logOrIgnore) {
          logOrIgnore.printStackTrace();
        }
    }

    System.out.println(output);
  }
}

library(httr)
library(jsonlite)
library(xml2)

server <- "https://jan2020.rest.ensembl.org"
ext <- "/genetree/id/ENSGT00390000003602?aligned=1;sequence=cdna"

r <- GET(paste(server, ext, sep = ""), content_type("text/x-phyloxml+xml"))

stop_for_status(r)


print(content(r))


curl 'https://jan2020.rest.ensembl.org/genetree/id/ENSGT00390000003602?aligned=1;sequence=cdna' -H 'Content-type:text/x-phyloxml+xml'

wget -q --header='Content-type:text/x-phyloxml+xml' 'https://jan2020.rest.ensembl.org/genetree/id/ENSGT00390000003602?aligned=1;sequence=cdna'  -O -

Resource Information

MethodsGET
Response formatsphyloxml
orthoxml
nh
json
jsonp