module EnsemblREST

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

Constants

SUPPOTEDFORMATS
VERSION

Public Instance Methods

connect(server) click to toggle source

Connect to Ensembl REST Service

@param [String] server Base Ensembl REST Service URL

# File lib/ensemblrest/connect.rb, line 44
def connect(server)
        @@url = URI.parse(server)
        @@http_connect = Net::HTTP.new(@@url.host, @@url.port)
end
get(get_path, options) click to toggle source

Do a get request

# File lib/ensemblrest/connect.rb, line 119
def get(get_path, options)
        parsed_options = EnsemblREST::parse_options(options)
        request = Net::HTTP::Get.new("#{get_path}#{parsed_options[:opts].empty? ? '' : "?#{parsed_options[:opts].join(';')}"}", parsed_options[:format])
        return EnsemblREST::parse_response(@@http_connect.request(request), parsed_options[:format]['content-type'])
end
parse_options(options) click to toggle source

Parse options use in the Module only

# File lib/ensemblrest/connect.rb, line 72
def parse_options(options)
        parsed_options = {opts: [], format: {}}
        options.each do |k, v|
                if k.to_s == 'format'
                        parsed_options[:format] = {'content-type' => EnsemblREST::SUPPOTEDFORMATS.has_key?(v) ? EnsemblREST::SUPPOTEDFORMATS[v] : v}
                elsif k.to_s == 'content-type'
                        parsed_options[:format] = {'content-type' => v}
                else
                        if v.is_a?(TrueClass)
                                parsed_options[:opts].push("#{k}=1")
                        elsif v.is_a?(FalseClass)
                                parsed_options[:opts].push("#{k}=0")
                        elsif v.is_a?(Array)
                                v.each {|member| parsed_options[:opts].push("#{k}=#{member}")}
                        else
                                parsed_options[:opts].push("#{k}=#{v}")
                        end
                end
                
        end
        return parsed_options
end
parse_response(response, type) click to toggle source

Parse responses use in the Module only

# File lib/ensemblrest/connect.rb, line 96
def parse_response(response, type)
        case response.code
        when '200'
                case type
                when 'application/json'
                        return JSON.parse(response.body)
                when 'ext/x-gff3'
                        return Bio::GFF::GFF3.new(response.body)
                when 'text/x-fasta'
                        return Bio::FastaFormat.new(response.body)
                when 'text/x-phyloxml+xml'
                        return Bio::PhyloXML::Parser.new(response.body)
                else
                        return response.body
                end
        when '404'
                raise EnsemblREST::ServiceNotFound, "Service not found"
        else
                raise EnsemblREST::InvalidResponse, "Invalid response: #{response.code}"
        end
end
post(post_path, request_body, options) click to toggle source

Do a post request

# File lib/ensemblrest/connect.rb, line 126
def post(post_path, request_body, options)
        parsed_options = EnsemblREST::parse_options(options)
        request = Net::HTTP::Post.new(post_path, parsed_options[:format].merge({'Accept' => 'application/json'}))
        request.body = request_body.to_json
        return EnsemblREST::parse_response(@@http_connect.request(request), parsed_options[:format]['content-type'])
end
use37() click to toggle source

Switch to use GRCh37 assembly version

# File lib/ensemblrest/connect.rb, line 56
def use37
        EnsemblREST::use_GRCh37
end
use38() click to toggle source

Switch to use GRCh38 assembly version

# File lib/ensemblrest/connect.rb, line 67
def use38
        EnsemblREST::use_GRCh38
end
use_GRCh37() click to toggle source

Switch to use GRCh37 assembly version

# File lib/ensemblrest/connect.rb, line 50
def use_GRCh37
        @@url = URI.parse('http://grch37.rest.ensembl.org/')
        @@http_connect = Net::HTTP.new(@@url.host, @@url.port)
end
use_GRCh38() click to toggle source

Switch to use GRCh38 assembly version

# File lib/ensemblrest/connect.rb, line 61
def use_GRCh38
        @@url = URI.parse('http://rest.ensembl.org/')
        @@http_connect = Net::HTTP.new(@@url.host, @@url.port)
end