Uses a list of variant identifiers (e.g. rsID) to return the variation features including optional genotype, phenotype and population data
Name | Type | Description | Default | Example Values |
---|---|---|---|---|
species | String | Species name/alias for the whole batch of symbols | - |
homo_sapiens human |
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 |
genotypes | Boolean(0,1) | Include individual genotypes | 0 | - |
phenotypes | Boolean(0,1) | Include phenotypes | 0 | - |
pops | Boolean(0,1) | Include population allele frequencies | 0 | - |
population_genotypes | Boolean(0,1) | Include population genotype frequencies | 0 | - |
Content-type | Format | Example |
application/json | { "ids": array } | { "ids" : ["rs116035550", "COSM476", "__VAR(sv_id)__" ] } |
{ "ids" : ["rs116035550", "COSM476", "__VAR(sv_id)__" ] }
use strict; use warnings; use HTTP::Tiny; my $http = HTTP::Tiny->new(); my $server = 'https://grch37.rest.ensembl.org'; my $ext = '/variation/homo_sapiens'; my $response = $http->request('POST', $server.$ext, { headers => { 'Content-type' => 'application/json', 'Accept' => 'application/json' }, content => '{ "ids" : ["rs116035550", "COSM476", "__VAR(sv_id)__" ] }' }); 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 = "/variation/homo_sapiens" headers={ "Content-Type" : "application/json", "Accept" : "application/json"} r = requests.post(server+ext, headers=headers, data='{ "ids" : ["rs116035550", "COSM476", "__VAR(sv_id)__" ] }') 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 = "/variation/homo_sapiens" headers={ "Content-Type" : "application/json", "Accept" : "application/json"} r = requests.post(server+ext, headers=headers, data='{ "ids" : ["rs116035550", "COSM476", "__VAR(sv_id)__" ] }') 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 = '/variation/homo_sapiens' 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" : ["rs116035550", "COSM476", "__VAR(sv_id)__" ] }' 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 = "/variation/homo_sapiens"; URL url = new URL(server + ext); URLConnection connection = url.openConnection(); HttpURLConnection httpConnection = (HttpURLConnection)connection; String postBody = "{ \"ids\" : [\"rs116035550\", \"COSM476\", \"__VAR(sv_id)__\" ] }"; 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 <- "/variation/homo_sapiens" r <- POST(paste(server, ext, sep = ""), content_type("application/json"), accept("application/json"), body = '{ "ids" : ["rs116035550", "COSM476", "__VAR(sv_id)__" ] }') 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/variation/homo_sapiens' -H 'Content-type:application/json' \ -H 'Accept:application/json' -X POST -d '{ "ids" : ["rs116035550", "COSM476", "__VAR(sv_id)__" ] }'
wget -q --header='Content-type:application/json' --header='Accept:application/json' \ --post-data='{ "ids" : ["rs116035550", "COSM476", "__VAR(sv_id)__" ] }' \ 'https://grch37.rest.ensembl.org/variation/homo_sapiens' -O -
Methods | POST |
Response formats | json xml jsonp |
Maximum POST size | 200 |