Bio::Blat::Report is a BLAT report parser class. Its object may contain some Bio::Blat::Report::Hits objects.
In BLAT results, the start position of a sequnece is numbered as 0. On the other hand, in many other homology search programs, the start position of a sequence is numbered as 1. To keep compatibility, the BLAT parser adds 1 to every position number except Bio::Blat::Report::Seqdesc and some Bio::Blat specific methods.
Note that Bio::Blat::Report#query_def, query_id, query_len methods simply return first hit’s query_*. If multiple query sequences are given, these values will be incorrect.
Delimiter of each entry. Bio::FlatFile uses it. In Bio::Blat::Report, it it nil (1 entry 1 file).
Splitter for Bio::FlatFile
Returns descriptions of columns. Returns an Array. This would be a Bio::Blat specific method.
Creates a new Bio::Blat::Report object from BLAT result text (String). You can use Bio::FlatFile to read a file. Currently, results created with options -out=psl (default) or -out=pslx are supported.
# File lib/bio/appl/blat/report.rb, line 56 def initialize(text = '') flag = false head = [] @hits = [] text.each_line do |line| if flag then @hits << Hit.new(line) else # for headerless data if /^\d/ =~ line then flag = true redo end line = line.chomp if /\A\-+\s*\z/ =~ line flag = true else head << line end end end @columns = parse_header(head) unless head.empty? end
Adds a header line if the header data is not yet given and the given line is suitable for header. Returns self if adding header line is succeeded. Otherwise, returns false (the line is not added).
# File lib/bio/appl/blat/report.rb, line 84 def add_header_line(line) return false if defined? @columns line = line.chomp case line when /^\d/ @columns = (defined? @header_lines) ? parse_header(@header_lines) : [] return false when /\A\-+\s*\z/ @columns = (defined? @header_lines) ? parse_header(@header_lines) : [] return self else @header_lines ||= [] @header_lines.push line end end
Adds a line to the entry if the given line is regarded as a part of the current entry. If the current entry (self) is empty, or the line has the same query name, the line is added and returns self. Otherwise, returns false (the line is not added).
# File lib/bio/appl/blat/report.rb, line 105 def add_line(line) if /\A\s*\z/ =~ line then return @hits.empty? ? self : false end hit = Hit.new(line.chomp) if @hits.empty? or @hits.first.query.name == hit.query.name then @hits.push hit return self else return false end end
Iterates over each Bio::Blat::Report::Hit object. Same as hits.each.
# File lib/bio/appl/blat/report.rb, line 496 def each_hit(&x) #:yields: hit @hits.each(&x) end
Returns number of hits. Same as hits.size.
# File lib/bio/appl/blat/report.rb, line 492 def num_hits; @hits.size; end
Returns the name of query sequence. CAUTION: query_* methods simply return first hit’s query_*. If multiple query sequences are given, these values will be incorrect.
# File lib/bio/appl/blat/report.rb, line 505 def query_def; (x = @hits.first) ? x.query_def : nil; end
Returns the length of query sequence. CAUTION: query_* methods simply return first hit’s query_*. If multiple query sequences are given, these values will be incorrect.
# File lib/bio/appl/blat/report.rb, line 511 def query_len; (x = @hits.first) ? x.query_len : nil; end
Generated with the Darkfish Rdoc Generator 2.