Class: Bio::Ensembl

Inherits:
Object show all
Defined in:
lib/bio/io/ensembl.rb,
lib/bio/io/ensembl.rb

Overview

Codes for backward-compatibility.

Defined Under Namespace

Classes: Base, Human, Mouse

Constant Summary collapse

ENSEMBL_URL =
'http://www.ensembl.org'
EBIServerURI =
ENSEMBL_URL

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(organism, server = nil) ⇒ Ensembl

Returns a new instance of Ensembl.



73
74
75
76
77
# File 'lib/bio/io/ensembl.rb', line 73

def initialize(organism, server = nil)
  @server = server || ENSEMBL_URL
  @organism = organism
  @uri = [ @server.chomp('/'), @organism ].join('/')
end

Instance Attribute Details

#organismObject (readonly)

Organism name. (ex. ‘Homo_sapiens’).



71
72
73
# File 'lib/bio/io/ensembl.rb', line 71

def organism
  @organism
end

#serverObject (readonly)

Server URL (ex. ‘www.ensembl.org’)



68
69
70
# File 'lib/bio/io/ensembl.rb', line 68

def server
  @server
end

Class Method Details

.humanObject



79
80
81
# File 'lib/bio/io/ensembl.rb', line 79

def self.human
  self.new("Homo_sapiens")
end

.mouseObject



83
84
85
# File 'lib/bio/io/ensembl.rb', line 83

def self.mouse
  self.new("Mus_musculus")
end

.server_uri(uri = nil) ⇒ Object



204
205
206
207
208
209
210
# File 'lib/bio/io/ensembl.rb', line 204

def self.server_uri(uri = nil)
  if uri
    @uri = uri
  else
    @uri || EBIServerURI
  end
end

Instance Method Details

#exportview(*args) ⇒ Object

Ensembl ExportView Client.

Retrieve genomic sequence/features from Ensembl ExportView in plain text. Ensembl ExportView exports genomic data (sequence and features) in several file formats including fasta, GFF and tab.

Examples

human = Bio::Ensembl.new('Homo_sapiens')
  or
human = Bio::Ensembl.human

# Genomic sequence in Fasta format
human.exportview(:seq_region_name => 1, 
                 :anchor1 => 1149206, :anchor2 => 1149229)
human.exportview(1, 1149206, 1149229)

# Feature in GFF
human.exportview(:seq_region_name => 1, 
                 :anchor1 => 1149206, :anchor2 => 1150000, 
                 :options => ['similarity', 'repeat', 
                              'genscan', 'variation', 'gene'])
human.exportview(1, 1149206, 1150000, ['variation', 'gene'])

Feature in TAB

human.exportview(:seq_region_name => 1, 
                 :anchor1 => 1149206, :anchor2 => 1150000, 
                 :options => ['similarity', 'repeat', 
                              'genscan', 'variation', 'gene'],
                 :format => 'tab')

Arguments

Bio::Ensembl#exportview method allow both orderd arguments and named arguments. (Note: mandatory arguments are marked by ‘*’).

Orderd Arguments

  1. seq_region_name - Chromosome number (*)

  2. anchor1 - From coordination (*)

  3. anchor2 - To coordination (*)

  4. options - Features to export (in :format => ‘gff’ or ‘tab’)

    ['similarity', 'repeat', 'genscan', 'variation', 
     'gene']
    

Named Arguments

  • :seq_region_name - Chromosome number (*)

  • :anchor1 - From coordination (*)

  • :anchor2 - To coordination (*)

  • :type1 - From coordination type [‘bp’, ]

  • :type2 - To coordination type [‘bp’, ]

  • :upstream - Bp upstream

  • :downstream - Bp downstream

  • :format - File format [‘fasta’, ‘gff’, ‘tab’]

  • :options - Features to export (for :format => ‘gff’ or ‘tab’)

    ['similarity', 'repeat', 'genscan', 'variation', 
     'gene']
    


148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/bio/io/ensembl.rb', line 148

def exportview(*args)
  defaults = {
    :type1 => 'bp', 
    :type2 => 'bp', 
    :downstream => '', 
    :upstream => '', 
    :format => 'fasta',
    :options => [],
    :action => 'export', 
    :_format => 'Text', 
    :output => 'txt', 
    :submit => 'Continue >>'
  }

  if args.first.class == Hash
    options = args.first
    if options[:options] and options[:format] != 'fasta' and options[:format] != 'tab' 
      options.update({:format => 'gff'}) 
    end
  else
    options = {
      :seq_region_name => args[0], 
      :anchor1 => args[1], 
      :anchor2 => args[2],
    }

    case args[3]
    when Array
      options.update({:format => 'gff', :options => args[3]}) 
    when Hash
      options.update(args[3])
    end

    if args[4].class == Hash
      options.update(args[4])
    end
  end

  params = defaults.update(options)

  result, = Bio::Command.post_form("#{@uri}/exportview", params)

  return result.body
end