class Bio::EMBOSS

Pre-requisites

You must have the EMBOSS suite installed locally. You can download from the project website (see References below).

Rereferences

Attributes

io[R]

Pipe for the command

result[R]

Result of the executed command

Public Class Methods

entret(arg) click to toggle source

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

String

# File lib/bio/appl/emboss.rb, line 109
def self.entret(arg)
  str = self.retrieve('entret', arg)
end
new(cmd_line) click to toggle source

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
run(program, *options) click to toggle source

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

String

# 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
seqret(arg) click to toggle source

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

String

# File lib/bio/appl/emboss.rb, line 93
def self.seqret(arg)
  str = self.retrieve('seqret', arg)
end

Public Instance Methods

exec() click to toggle source

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