GET alignment/region/:species/:region

Retrieves genomic alignments as separate blocks based on a region and species

Parameters

Required

NameTypeDescriptionDefaultExample Values
region String Query region. A maximum of 10Mb is allowed to be requested at any one time - X:1000000..1000100:1
X:1000000..1000100:-1
X:1000000..1000100
species String Species name/alias - homo_sapiens
human

Optional

NameTypeDescriptionDefaultExample Values
aligned Boolean Return the aligned string if true. Otherwise, return the original sequence (no insertions) 1 -
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
compact Boolean Applicable to EPO_EXTENDED alignments. If true, concatenate the extended species sequences together to create a single sequence. Otherwise, separates out all sequences. 1 -
compara String Name of the compara database to use. Multiple comparas exist on a server for separate species divisions vertebrates vertebrates
display_species_set String Subset of species in the alignment to be displayed (multiple values). All the species in the alignment will be displayed if this is not set. Any valid alias may be used. - human
chimp
gorilla
mask Enum(hard,soft) Request the sequence masked for repeat sequences. Hard will mask all repeats as N's and soft will mask repeats as lowercased characters. - hard
method Enum(EPO, EPO_EXTENDED, PECAN, LASTZ_NET, BLASTZ_NET, TRANSLATED_BLAT_NET, CACTUS_HAL, CACTUS_HAL_PW) The alignment method EPO PECAN
species_set String The set of species used to define the pairwise alignment (multiple values). Should not be used with the species_set_group parameter. Use /info/compara/species_sets/:method with one of the methods listed above to obtain a valid list of species sets. Any valid alias may be used. - homo_sapiens
mus_musculus
species_set_group String The species set group name of the multiple alignment. Should not be used with the species_set parameter. Use /info/compara/species_sets/:method with one of the methods listed above to obtain a valid list of group names. mammals mammals, amniotes, fish, sauropsids, murinae

Example Requests

/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids;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 = '/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids';
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 = "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids"

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 = "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids"

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 = '/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids'

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 = "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids";
    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 <- "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids"

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/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids' -H 'Content-type:application/json'

wget -q --header='Content-type:application/json' 'https://jan2020.rest.ensembl.org/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids'  -O -

/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids;content-type=text/x-phyloxml


use strict;
use warnings;

use HTTP::Tiny;

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

my $server = 'https://jan2020.rest.ensembl.org';
my $ext = '/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids';
my $response = $http->get($server.$ext, {
  headers => { 'Content-type' => 'text/x-phyloxml' }
});

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


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

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids"

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

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


print r.text

import requests, sys

server = "https://jan2020.rest.ensembl.org"
ext = "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids"

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

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 = '/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids'

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

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

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 = "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids";
    URL url = new URL(server + ext);

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

    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 <- "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids"

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

stop_for_status(r)


print(content(r))


curl 'https://jan2020.rest.ensembl.org/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids' -H 'Content-type:text/x-phyloxml'

wget -q --header='Content-type:text/x-phyloxml' 'https://jan2020.rest.ensembl.org/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set_group=sauropsids'  -O -

/alignment/region/taeniopygia_guttata/3:106040329-106040379?content-type=application/json;species_set=taeniopygia_guttata;species_set=gallus_gallus;method=LASTZ_NET


use strict;
use warnings;

use HTTP::Tiny;

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

my $server = 'https://jan2020.rest.ensembl.org';
my $ext = '/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set=taeniopygia_guttata;species_set=gallus_gallus;method=LASTZ_NET';
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 = "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set=taeniopygia_guttata;species_set=gallus_gallus;method=LASTZ_NET"

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 = "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set=taeniopygia_guttata;species_set=gallus_gallus;method=LASTZ_NET"

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 = '/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set=taeniopygia_guttata;species_set=gallus_gallus;method=LASTZ_NET'

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 = "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set=taeniopygia_guttata;species_set=gallus_gallus;method=LASTZ_NET";
    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 <- "/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set=taeniopygia_guttata;species_set=gallus_gallus;method=LASTZ_NET"

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/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set=taeniopygia_guttata;species_set=gallus_gallus;method=LASTZ_NET' -H 'Content-type:application/json'

wget -q --header='Content-type:application/json' 'https://jan2020.rest.ensembl.org/alignment/region/taeniopygia_guttata/3:106040329-106040379?species_set=taeniopygia_guttata;species_set=gallus_gallus;method=LASTZ_NET'  -O -

Resource Information

MethodsGET
Response formatsjson
xml
phyloxml
jsonp