class Bio::MAFFT

Bio::MAFFT is a wrapper class to execute MAFFT. MAFFT is a very fast multiple sequence alignment software.

Though Bio::MAFFT class currently supports only MAFFT version 3, you can use MAFFT version 5 because the class is a wrapper class.

Attributes

command[R]

Shows last command-line string. Returns nil or an array of String. Note that filenames described in the command-line may already be removed because they are temporary files.

data_stdout[RW]

Last output to the stdout.

exit_status[R]

Last exit status

options[RW]

options

output[R]

Shows latest raw alignment result. Return a string. (Changed in bioruby-1.1.0). Compatibility note: If you want an array of Bio::FastaFormat instances, you should use report.data instead.

program[RW]

program name (usually 'mafft' in UNIX)

report[R]

Shows last alignment result (instance of Bio::MAFFT::Report class) performed by the factory.

Public Class Methods

fftns(n = nil) click to toggle source

Creates a new alignment factory. When n is a number (1,2,3, …), performs 'fftns n'. When n is :i or 'i', performs 'fftnsi'.

# File lib/bio/appl/mafft.rb, line 47
def self.fftns(n = nil)
  opt = []
  if n.to_s == 'i' then
    self.new2(nil, 'fftnsi', *opt)
  else
    opt << n.to_s if n
    self.new2(nil, 'fftns', *opt)
  end
end
fftnsi() click to toggle source

Creates a new alignment factory. Performs 'fftnsi'.

# File lib/bio/appl/mafft.rb, line 59
def self.fftnsi
  self.new2(nil, 'fftnsi')
end
new(program = 'mafft', opt = []) click to toggle source

Creates a new alignment factory. program is the name of the program. opt is options of the program.

# File lib/bio/appl/mafft.rb, line 108
def initialize(program = 'mafft', opt = [])
  @program = program
  @options = opt
  @command = nil
  @output = nil
  @report = nil
  @data_stdout = nil
  @exit_status = nil
end
new2(dir, prog, *opt) click to toggle source

Creates a new alignment factory. dir is the path of the MAFFT program. prog is the name of the program. opt is options of the program.

# File lib/bio/appl/mafft.rb, line 98
def self.new2(dir, prog, *opt)
  if dir then
    prog = File.join(dir, prog)
  end
  self.new(prog, opt)
end
nwap(n = nil) click to toggle source

Creates a new alignment factory. Performs 'nwns –all-positive n' or 'nwnsi –all-positive'. Same as ::nwap(n, true).

# File lib/bio/appl/mafft.rb, line 90
def self.nwap(n = nil)
  self.nwns(n, true)
end
nwns(n = nil, ap = nil) click to toggle source

Creates a new alignment factory. When n is a number (1,2,3, …), performs 'nwns n'. When n is :i or 'i', performs 'nwnsi'. In both case, if all_positive is true, add option '–all-positive'.

# File lib/bio/appl/mafft.rb, line 67
def self.nwns(n = nil, ap = nil)
  opt = []
  opt << '--all-positive' if ap
  if n.to_s == 'i' then
    self.new2(nil, 'nwnsi', *opt)
  else
    opt << n.to_s if n
    self.new2(nil, 'nwns', *opt)
  end
end
nwnsi(all_positive = nil) click to toggle source

Creates a new alignment factory. Performs 'nwnsi'. If all_positive is true, add option '–all-positive'.

# File lib/bio/appl/mafft.rb, line 81
def self.nwnsi(all_positive = nil)
  opt = []
  opt << '--all-positive' if all_positive
  self.new2(nil, 'nwnsi', *opt)
end

Public Instance Methods

log() click to toggle source

log is deprecated (no replacement) and returns empty string.

# File lib/bio/appl/mafft.rb, line 141
def log
  warn "Bio::MAFFT#log is deprecated (no replacement) and returns empty string."
  ''
end
option() click to toggle source

option is deprecated. Instead, please use options.

# File lib/bio/appl/mafft.rb, line 125
def option
  warn "Bio::MAFFT#option is deprecated. Please use options."
  options
end
query(seqs) click to toggle source

Executes the program. If seqs is not nil, perform alignment for seqs. If seqs is nil, simply executes the program.

Compatibility note: When seqs is nil, returns true if the program exits normally, and returns false if the program exits abnormally.

# File lib/bio/appl/mafft.rb, line 179
def query(seqs)
  if seqs then
    query_align(seqs)
  else
    exec_local(@options)
    @exit_status.exitstatus == 0 ? true : false
  end
end
query_align(seqs, *arg) click to toggle source

Note that this method will be renamed to query_alignment.

Performs alignment for seqs. seqs should be Bio::Alignment or Array of sequences or nil.

Compatibility Note: arg is deprecated and ignored.

# File lib/bio/appl/mafft.rb, line 194
def query_align(seqs, *arg)
  if arg.size > 0 then
    warn '2nd and other arguments of Bio::MAFFT#query_align is ignored'
  end
  unless seqs.is_a?(Bio::Alignment)
    seqs = Bio::Alignment.new(seqs)
  end
  query_string(seqs.output_fasta(:width => 70))
end
query_alignment(seqs) click to toggle source

Performs alignment for seqs. seqs should be Bio::Alignment or Array of sequences or nil.

# File lib/bio/appl/mafft.rb, line 206
def query_alignment(seqs)
  query_align(seqs)
end
query_by_filename(fn, *arg) click to toggle source

Performs alignment of sequences in the file named fn.

Compatibility Note: 2nd argument (seqtype) is deprecated and ignored.

# File lib/bio/appl/mafft.rb, line 232
def query_by_filename(fn, *arg)
  if arg.size > 0 then
    warn '2nd argument of Bio::MAFFT#query_filename is ignored'
  end
  opt = @options + [ fn ]
  exec_local(opt)
  @report = Report.new(@output)
  @report
end
query_string(str, *arg) click to toggle source

Performs alignment for str. Str should be a string that can be recognized by the program.

Compatibility Note: arg is deprecated and ignored.

# File lib/bio/appl/mafft.rb, line 214
def query_string(str, *arg)
  if arg.size > 0 then
    warn '2nd and other arguments of Bio::MAFFT#query_string is ignored'
  end
  begin
    tf_in = Tempfile.open('align')
    tf_in.print str
  ensure
    tf_in.close(false)
  end
  r = query_by_filename(tf_in.path, *arg)
  tf_in.close(true)
  r
end
reset() click to toggle source

Clear the internal data and status, except program and options.

# File lib/bio/appl/mafft.rb, line 164
def reset
  @command = nil
  @output = nil
  @report = nil
  @exit_status = nil
  @data_stdout = nil
end