class Bio::EMBOSS
Pre-requisites¶ ↑
You must have the EMBOSS suite installed locally. You can download from the project website (see References below).
Rereferences¶ ↑
-
Rice P, Longden I and Bleasby A. \
EMBOSS: the European Molecular Biology Open Software Suite. \ Trends Genet. 2000 Jun ; 16(6): 276-7
Attributes
Pipe for the command
Result of the executed command
Public Class Methods
Combines the initialization and execution for the emboss
entret
command.
puts Bio::EMBOSS.entret('embl:xlrhodop')
is equivalent to:
object = Bio::EMBOSS.new('entret embl:xlrhodop') puts object.exec
Arguments:
-
(required) arg: argument given to the emboss entret command
- Returns
# File lib/bio/appl/emboss.rb, line 109 def self.entret(arg) str = self.retrieve('entret', arg) end
WARNING: ::new will be changed in the future because ::new is inconvenient and potential security hole. Using ::run(program, options…) is strongly recommended.
Initializes a new Bio::EMBOSS object. This provides a holder that can subsequently be executed (see #exec). The object does not hold any actual data when initialized.
e = Bio::EMBOSS.new('seqret embl:xlrhodop')
For e to actually hold data, it has to be executed:
puts e.exec
For an overview of commands that can be used with this method, see the emboss website.
Arguments:
-
(required) command: emboss command
- Returns
-
Bio::EMBOSS object
# File lib/bio/appl/emboss.rb, line 132 def initialize(cmd_line) warn 'Bio::EMBOSS.new(cmd_line) is inconvenient and potential security hole. Using Bio::EMBOSS.run(program, options...) is strongly recommended.' @cmd_line = cmd_line + ' -stdout -auto' end
Runs an emboss program and get the result as string. Note that “-auto -stdout” are automatically added to the options.
Example 1:
result = Bio::EMBOSS.run('seqret', 'embl:xlrhodop')
Example 2:
result = Bio::EMBOSS.run('water', '-asequence', 'swissprot:slpi_human', '-bsequence', 'swissprot:slpi_mouse')
Example 3:
options = %w( -asequence swissprot:slpi_human -bsequence swissprot:slpi_mouse ) result = Bio::EMBOSS.run('needle', *options)
For an overview of commands that can be used with this method, see the emboss website.
Arguments:
-
(required) program: command name, or filename of an emboss program
-
options: options given to the emboss program
- Returns
# File lib/bio/appl/emboss.rb, line 187 def self.run(program, *options) cmd = [ program, *options ] cmd.push '-auto' cmd.push '-stdout' return Bio::Command.query_command(cmd) end
Combines the initialization and execution for the emboss
seqret
command.
puts Bio::EMBOSS.seqret('embl:xlrhodop')
is equivalent to:
object = Bio::EMBOSS.new('seqret embl:xlrhodop') puts object.exec
Arguments:
-
(required) arg: argument given to the emboss seqret command
- Returns
# File lib/bio/appl/emboss.rb, line 93 def self.seqret(arg) str = self.retrieve('seqret', arg) end
Private Class Methods
# File lib/bio/appl/emboss.rb, line 196 def self.retrieve(cmd, arg) cmd = [ cmd, arg, '-auto', '-stdout' ] return Bio::Command.query_command(cmd) end
Public Instance Methods
A Bio::EMBOSS object has to be executed before it can return any result.
obj_A = Bio::EMBOSS.new('transeq -sbegin 110 -send 1171 embl:xlrhodop') puts obj_A.result #=> nil obj_A.exec puts obj_A.result #=> a FASTA-formatted sequence obj_B = Bio::EMBOSS.new('showfeat embl:xlrhodop') obj_B.exec puts obj_B.result
# File lib/bio/appl/emboss.rb, line 146 def exec begin @io = IO.popen(@cmd_line, "w+") @result = @io.read return @result ensure @io.close end end