Class | Bio::EMBOSS
In: | lib/bio/appl/emboss.rb
Parent: | Object

## Pre-requisites

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

# Rereferences

- emboss.sourceforge.net
- Rice P, Longden I and Bleasby A. # EMBOSS: the European Molecular Biology Open Software Suite. # Trends Genet. 2000 Jun ; 16(6): 276-7

### Methods

entret exec new run seqret

### Attributes

io | [R] | Pipe for the command
result | [R] | Result of the executed command

### Public Class methods

entret(arg)

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

[Source]

         # File lib/bio/appl/emboss.rb, line 109
    109:   def self.entret(arg)
    110:     str = self.retrieve('entret', arg)
    111:   end

new(cmd_line)

WARNING: Bio::EMBOSS.new will be changed in the future because Bio::EMBOSS.new(cmd_line) is inconvenient and potential security hole. Using Bio::EMBOSS.run(program, options…) is strongly recommended.

Initializes a new Bio::EMBOSS object. This provides a holder that can subsequently be executed (see Bio::EMBOSS.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

[Source]

         # File lib/bio/appl/emboss.rb, line 132
    132:   def initialize(cmd_line)
    133:     warn 'Bio::EMBOSS.new(cmd_line) is inconvenient and potential security hole. Using Bio::EMBOSS.run(program, options...) is strongly recommended.'
    134:     @cmd_line = cmd_line + ' -stdout -auto'
    135:   end

run(program, *options)

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

[Source]

         # File lib/bio/appl/emboss.rb, line 187
    187:   def self.run(program, *options)
    188:     cmd = [ program, *options ]
    189:     cmd.push '-auto'
    190:     cmd.push '-stdout'
    191:     return Bio::Command.query_command(cmd)
    192:   end

seqret(arg)

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

[Source]

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

### Public Instance methods

exec()

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

[Source]

         # File lib/bio/appl/emboss.rb, line 146
    146:   def exec
    147:     begin
    148:       @io = IO.popen(@cmd_line, "w+")
    149:       @result = @io.read
    150:       return @result
    151:     ensure
    152:       @io.close
    153:     end
    154:   end

[Validate]