Request multiple types of sequence by a stable identifier list.
No required parameters
Name | Type | Description | Default | Example Values |
---|---|---|---|---|
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 |
db_type | String | Restrict the search to a database other than the default. Useful if you need to use a DB other than core | - |
core |
end | Int | Trim the end of the sequence by this many basepairs. Trimming is relative to reading direction and in the coordinate system of the stable identifier. Parameter can not be used in conjunction with expand_5prime or expand_3prime. | - |
1000 |
expand_3prime | Int | Expand the sequence downstream of the sequence by this many basepairs. Only available when using genomic sequence type. | - |
1000 |
expand_5prime | Int | Expand the sequence upstream of the sequence by this many basepairs. Only available when using genomic sequence type. | - |
1000 |
format | Enum(fasta) | Format of the data | - |
fasta |
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. Only available when using genomic sequence type. | - |
hard |
mask_feature | Boolean | Mask features on the sequence. If sequence is genomic, mask introns. If sequence is cDNA, mask UTRs. Incompatible with the 'mask' option | 0 | - |
object_type | String | Filter by feature type | - |
gene |
species | String | Species name/alias | - |
homo_sapiens |
start | Int | Trim the start of the sequence by this many basepairs. Trimming is relative to reading direction and in the coordinate system of the stable identifier. Parameter can not be used in conjunction with expand_5prime or expand_3prime. | - |
1000 |
type | Enum(genomic,cds,cdna,protein) | Type of sequence. Defaults to genomic where applicable, i.e. not translations. cdna refers to the spliced transcript sequence with UTR; cds refers to the spliced transcript sequence without UTR. | genomic |
cds |
Content-type | Format | Example |
application/json | { "ids": array } | { "ids" : ["ENSG00000157764", "ENSG00000248378" ] } |
{ "ids" : ["ENSG00000157764", "ENSG00000248378" ] }
use strict; use warnings; use HTTP::Tiny; my $http = HTTP::Tiny->new(); my $server = 'https://grch37.rest.ensembl.org'; my $ext = '/sequence/id'; my $response = $http->request('POST', $server.$ext, { headers => { 'Content-type' => 'application/json', 'Accept' => 'application/json' }, content => '{ "ids" : ["ENSG00000157764", "ENSG00000248378" ] }' }); 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://grch37.rest.ensembl.org" ext = "/sequence/id" headers={ "Content-Type" : "application/json", "Accept" : "application/json"} r = requests.post(server+ext, headers=headers, data='{ "ids" : ["ENSG00000157764", "ENSG00000248378" ] }') if not r.ok: r.raise_for_status() sys.exit() decoded = r.json() print repr(decoded)
import requests, sys server = "https://grch37.rest.ensembl.org" ext = "/sequence/id" headers={ "Content-Type" : "application/json", "Accept" : "application/json"} r = requests.post(server+ext, headers=headers, data='{ "ids" : ["ENSG00000157764", "ENSG00000248378" ] }') if not r.ok: r.raise_for_status() sys.exit() decoded = r.json() print(repr(decoded))
require 'net/http' require 'uri' server='https://grch37.rest.ensembl.org' path = '/sequence/id' url = URI.parse(server) http = Net::HTTP.new(url.host, url.port) request = Net::HTTP::Post.new(path, {'Content-Type' => 'application/json', 'Accept' => 'application/json'}) request.body = '{ "ids" : ["ENSG00000157764", "ENSG00000248378" ] }' 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; import java.io.DataOutputStream; public class EnsemblRest { public static void main(String[] args) throws Exception { String server = "https://grch37.rest.ensembl.org"; String ext = "/sequence/id"; URL url = new URL(server + ext); URLConnection connection = url.openConnection(); HttpURLConnection httpConnection = (HttpURLConnection)connection; String postBody = "{ \"ids\" : [\"ENSG00000157764\", \"ENSG00000248378\" ] }"; httpConnection.setRequestMethod("POST"); httpConnection.setRequestProperty("Content-Type", "application/json"); httpConnection.setRequestProperty("Accept", "application/json"); httpConnection.setRequestProperty("Content-Length", Integer.toString(postBody.getBytes().length)); httpConnection.setUseCaches(false); httpConnection.setDoInput(true); httpConnection.setDoOutput(true); DataOutputStream wr = new DataOutputStream(httpConnection.getOutputStream()); wr.writeBytes(postBody); wr.flush(); wr.close(); 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://grch37.rest.ensembl.org" ext <- "/sequence/id" r <- POST(paste(server, ext, sep = ""), content_type("application/json"), accept("application/json"), body = '{ "ids" : ["ENSG00000157764", "ENSG00000248378" ] }') 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://grch37.rest.ensembl.org/sequence/id' -H 'Content-type:application/json' \ -H 'Accept:application/json' -X POST -d '{ "ids" : ["ENSG00000157764", "ENSG00000248378" ] }'
wget -q --header='Content-type:application/json' --header='Accept:application/json' \ --post-data='{ "ids" : ["ENSG00000157764", "ENSG00000248378" ] }' \ 'https://grch37.rest.ensembl.org/sequence/id' -O -
Methods | POST |
Response formats | json jsonp |
Maximum POST size | 50 |
Slice length | 1e7 |