Class: Bio::Alignment::FactoryTemplate::Simple

Inherits:
Object
  • Object
show all
Defined in:
lib/bio/alignment.rb

Overview

Template class for alignment application factory. The program acts: input: stdin or file, format = fasta format output: stdout (parser should be specified by DEFAULT_PARSER)

Direct Known Subclasses

FileInFileOut, FileInStdoutOut, StdinInFileOut

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(program = self.class::DEFAULT_PROGRAM, options = []) ⇒ Simple

Creates a new alignment factory



2219
2220
2221
2222
2223
2224
2225
2226
2227
# File 'lib/bio/alignment.rb', line 2219

def initialize(program = self.class::DEFAULT_PROGRAM, options = [])
  @program = program
  @options = options
  @command = nil
  @output = nil
  @report = nil
  @exit_status = nil
  @data_stdout = nil
end

Instance Attribute Details

#commandObject (readonly)

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



2238
2239
2240
# File 'lib/bio/alignment.rb', line 2238

def command
  @command
end

#data_stdoutObject

Last output to the stdout.



2251
2252
2253
# File 'lib/bio/alignment.rb', line 2251

def data_stdout
  @data_stdout
end

#exit_statusObject (readonly)

Last exit status



2248
2249
2250
# File 'lib/bio/alignment.rb', line 2248

def exit_status
  @exit_status
end

#optionsObject

options



2233
2234
2235
# File 'lib/bio/alignment.rb', line 2233

def options
  @options
end

#outputObject (readonly)

Last raw result of the program. Return a string (or nil).



2242
2243
2244
# File 'lib/bio/alignment.rb', line 2242

def output
  @output
end

#programObject

program name



2230
2231
2232
# File 'lib/bio/alignment.rb', line 2230

def program
  @program
end

#reportObject (readonly)

Last result object performed by the factory.



2245
2246
2247
# File 'lib/bio/alignment.rb', line 2245

def report
  @report
end

Instance Method Details

#query(seqs) ⇒ Object

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.



2269
2270
2271
2272
2273
2274
2275
2276
# File 'lib/bio/alignment.rb', line 2269

def query(seqs)
  if seqs then
    query_alignment(seqs)
  else
    exec_local(@options)
    @exit_status.exitstatus == 0 ? true : false
  end
end

#query_align(seqs) ⇒ Object

alias of query_alignment.

Compatibility Note: query_align will renamed to query_alignment.



2290
2291
2292
2293
# File 'lib/bio/alignment.rb', line 2290

def query_align(seqs)
  #warn 'query_align is renamed to query_alignment.'
  query_alignment(seqs)
end

#query_alignment(seqs) ⇒ Object

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



2280
2281
2282
2283
2284
2285
# File 'lib/bio/alignment.rb', line 2280

def query_alignment(seqs)
  unless seqs.respond_to?(:output_fasta) then
    seqs = Bio::Alignment.new(seqs)
  end
  query_string(seqs.output_fasta(:width => 70))
end

#query_by_filename(filename_in) ⇒ Object

Performs alignment of sequences in the file named fn.



2303
2304
2305
2306
# File 'lib/bio/alignment.rb', line 2303

def query_by_filename(filename_in)
  _query_local(filename_in, @options)
  @report
end

#query_string(str) ⇒ Object

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



2297
2298
2299
2300
# File 'lib/bio/alignment.rb', line 2297

def query_string(str)
  _query_string(str, @options)
  @report
end

#resetObject

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



2254
2255
2256
2257
2258
2259
2260
# File 'lib/bio/alignment.rb', line 2254

def reset
  @command = nil
  @output = nil
  @report = nil
  @exit_status = nil
  @data_stdout = nil
end