class Bio::Fasta::Report

Summarized results of the fasta execution results.

Constants

FLATFILE_SPLITTER

Splitter for Bio::FlatFile

Attributes

entry_overrun[R]

piece of next entry. Bio::FlatFile uses it.

hits[R]

Returns an Array of Bio::Fasta::Report::Hit objects.

list[R]

Returns the 'The best scores are' lines as a String.

log[R]

Returns the trailing lines including library size, execution date, fasta function used, and fasta versions as a String.

program[R]

Returns a Bio::Fasta::Report::Program object.

query_def[R]

Query definition. For older reports, the value may be nil.

query_len[R]

Query sequence length. For older reports, the value may be nil.

Public Class Methods

new(data) click to toggle source
    # File lib/bio/appl/fasta/format10.rb
 69 def initialize(data)
 70   # Split outputs containing multiple query sequences' results
 71   chunks = data.split(/^(\s*\d+\>\>\>.*)/, 3)
 72   if chunks.size >= 3 then
 73     if chunks[0].strip.empty? then
 74       qdef_line = chunks[1]
 75       data = chunks[1..2].join('')
 76       overruns = chunks[3..-1]
 77     elsif /^\>\>\>/ =~ chunks[0] then
 78       qdef_line = nil
 79       data = chunks.shift
 80       overruns = chunks
 81     else
 82       qdef_line = chunks[1]
 83       data = chunks[0..2].join('')
 84       overruns = chunks[3..-1]
 85     end
 86     @entry_overrun = overruns.join('')
 87     if qdef_line and
 88         /^ *\d+\>\>\>([^ ]+) .+ \- +(\d+) +(nt|aa)\s*$/ =~ qdef_line then
 89       @query_def = $1
 90       @query_len = $2.to_i
 91     end
 92   end
 93 
 94   # header lines - brief list of the hits
 95   if list_start = data.index("\nThe best scores are") then
 96     data = data[(list_start + 1)..-1]
 97     data.sub!(/(.*?)\n\n>>>/m, '')
 98     @list = $1
 99     data.sub!(/>>><<<(.*)$/m, '')
100   else
101     if list_start = data.index(/\n!!\s+/) then
102       data = data[list_start..-1]
103       data.sub!(/\n!!\s+/, '')
104       data.sub!(/.*/) { |x| @list = x; '' }
105     else
106       data = data.sub(/.*/) { |x| @list = x; '' }
107     end
108   end
109 
110   # body lines - fasta execution result
111   program, *hits = data.split(/\n>>/)
112 
113   # trailing lines - log messages of the execution
114   @log = hits.pop
115   @log.sub!(/.*<\n/m, '')
116   @log.strip!
117 
118   # parse results
119   @program = Program.new(program)
120   @hits = []
121 
122   hits.each do |x|
123     @hits.push(Hit.new(x))
124   end
125 end

Public Instance Methods

each() { |x| ... } click to toggle source

Iterates on each Bio::Fasta::Report::Hit object.

    # File lib/bio/appl/fasta/format10.rb
150 def each
151   @hits.each do |x|
152     yield x
153   end
154 end
lap_over(length_min = 0) click to toggle source

Returns an Array of Bio::Fasta::Report::Hit objects having longer overlap length than 'length_min'.

    # File lib/bio/appl/fasta/format10.rb
168 def lap_over(length_min = 0)
169   list = []
170   @hits.each do |x|
171     list.push(x) if x.overlap > length_min
172   end
173   return list
174 end
threshold(evalue_max = 0.1) click to toggle source

Returns an Array of Bio::Fasta::Report::Hit objects having better evalue than 'evalue_max'.

    # File lib/bio/appl/fasta/format10.rb
158 def threshold(evalue_max = 0.1)
159   list = []
160   @hits.each do |x|
161     list.push(x) if x.evalue < evalue_max
162   end
163   return list
164 end