Class: Bio::Blast::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/bio/appl/blast/report.rb,
lib/bio/appl/blast/rexml.rb,
lib/bio/appl/blast/format8.rb

Overview

Bio::Blast::Report

Parsed results of the blast execution for Tab-delimited and XML output format. Tab-delimited reports are consists of

Query id,
Subject id,
percent of identity,
alignment length,
number of mismatches (not including gaps),
number of gap openings,
start of alignment in query,
end of alignment in query,
start of alignment in subject,
end of alignment in subject,
expected value,
bit score.

according to the MEGABLAST document (README.mbl). As for XML output, see the following DTDs.

* http://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.dtd
* http://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.mod
* http://www.ncbi.nlm.nih.gov/dtd/NCBI_Entity.mod

Direct Known Subclasses

Report_tab

Defined Under Namespace

Classes: BlastXmlSplitter, Hit, Hsp, Iteration

Constant Summary collapse

DELIMITER =

for Bio::FlatFile support (only for XML data)

RS = "</BlastOutput>\n"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data, parser = nil) ⇒ Report

Passing a BLAST output from ‘blastall -m 7’ or ‘-m 8’ as a String. Formats are auto detected.



87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/bio/appl/blast/report.rb', line 87

def initialize(data, parser = nil)
  @iterations = []
  @parameters = {}
  case parser
  when :xmlparser		# format 7
    if defined? xmlparser_parse
      xmlparser_parse(data)
    else
      raise NameError, "xmlparser_parse does not defined"
    end
    @reports = blastxml_split_reports
  when :rexml		# format 7
    rexml_parse(data)
    @reports = blastxml_split_reports
  when :tab		# format 8
    tab_parse(data)
  when false
    # do not parse, creates an empty object
  else
    auto_parse(data)
  end
end

Instance Attribute Details

#dbObject (readonly)

database name or title (String)



132
133
134
# File 'lib/bio/appl/blast/report.rb', line 132

def db
  @db
end

#iterationsObject (readonly)

Returns an Array of Bio::Blast::Report::Iteration objects.



111
112
113
# File 'lib/bio/appl/blast/report.rb', line 111

def iterations
  @iterations
end

#parametersObject (readonly)

Returns a Hash containing execution parameters. Valid keys are: ‘matrix’, ‘expect’, ‘include’, ‘sc-match’, ‘sc-mismatch’, ‘gap-open’, ‘gap-extend’, ‘filter’



116
117
118
# File 'lib/bio/appl/blast/report.rb', line 116

def parameters
  @parameters
end

#programObject (readonly)

program name (e.g. “blastp”) (String)



123
124
125
# File 'lib/bio/appl/blast/report.rb', line 123

def program
  @program
end

#query_defObject (readonly)

query definition line (String)



138
139
140
# File 'lib/bio/appl/blast/report.rb', line 138

def query_def
  @query_def
end

#query_idObject (readonly)

query ID (String)



135
136
137
# File 'lib/bio/appl/blast/report.rb', line 135

def query_id
  @query_id
end

#query_lenObject (readonly)

query length (Integer)



141
142
143
# File 'lib/bio/appl/blast/report.rb', line 141

def query_len
  @query_len
end

#referenceObject (readonly)

reference (String)



129
130
131
# File 'lib/bio/appl/blast/report.rb', line 129

def reference
  @reference
end

#reportsObject (readonly)

When the report contains results for multiple query sequences, returns an array of Bio::Blast::Report objects corresponding to the multiple queries. Otherwise, returns nil.

Note for “No hits found”: When no hits found for a query sequence, the result for the query is completely void and no information available in the result XML, including query ID and query definition. The only trace is that iteration number is skipped. This means that if the no-hit query is the last query, the query can not be detected, because the result XML is completely the same as the result XML without the query.



389
390
391
# File 'lib/bio/appl/blast/report.rb', line 389

def reports
  @reports
end

#versionObject (readonly)

BLAST version (e.g. “blastp 2.2.18 [Mar-02-2008]”) (String)



126
127
128
# File 'lib/bio/appl/blast/report.rb', line 126

def version
  @version
end

Class Method Details

.rexml(data) ⇒ Object

Specify to use REXML to parse XML (-m 7) output.



61
62
63
# File 'lib/bio/appl/blast/report.rb', line 61

def self.rexml(data)
  self.new(data, :rexml)
end

.tab(data) ⇒ Object

Specify to use tab delimited output parser.



66
67
68
# File 'lib/bio/appl/blast/report.rb', line 66

def self.tab(data)
  self.new(data, :tab)
end

Instance Method Details

#db_lenObject

Length of BLAST db



197
# File 'lib/bio/appl/blast/report.rb', line 197

def db_len;    statistics['db-len'];    end

#db_numObject

Number of sequences in BLAST db



195
# File 'lib/bio/appl/blast/report.rb', line 195

def db_num;    statistics['db-num'];    end

#each_hitObject Also known as: each

Iterates on each Bio::Blast::Report::Hit object of the the last Iteration. Shortcut for the last iteration’s hits (for blastall)



173
174
175
176
177
# File 'lib/bio/appl/blast/report.rb', line 173

def each_hit
  @iterations.last.each do |x|
    yield x
  end
end

#each_iterationObject

Iterates on each Bio::Blast::Report::Iteration object. (for blastpgp)



165
166
167
168
169
# File 'lib/bio/appl/blast/report.rb', line 165

def each_iteration
  @iterations.each do |x|
    yield x
  end
end

#eff_spaceObject

Effective search space



201
# File 'lib/bio/appl/blast/report.rb', line 201

def eff_space; statistics['eff-space']; end

#entrez_queryObject

Limit of request to Entrez : shortcuts for @parameters



162
# File 'lib/bio/appl/blast/report.rb', line 162

def entrez_query; @parameters['entrez-query'];     end

#entropyObject

Karlin-Altschul parameter H



207
# File 'lib/bio/appl/blast/report.rb', line 207

def entropy;   statistics['entropy'];   end

#expectObject

Expectation threshold (-e) : shortcuts for @parameters



146
# File 'lib/bio/appl/blast/report.rb', line 146

def expect;       @parameters['expect'];           end

#filterObject

Filtering options (-F) : shortcuts for @parameters



158
# File 'lib/bio/appl/blast/report.rb', line 158

def filter;       @parameters['filter'];           end

#gap_extendObject

Gap extension cost (-E) : shortcuts for @parameters



156
# File 'lib/bio/appl/blast/report.rb', line 156

def gap_extend;   @parameters['gap-extend'];       end

#gap_openObject

Gap opening cost (-G) : shortcuts for @parameters



154
# File 'lib/bio/appl/blast/report.rb', line 154

def gap_open;     @parameters['gap-open'];         end

#hitsObject

Returns a Array of Bio::Blast::Report::Hits of the last iteration. Shortcut for the last iteration’s hits



182
183
184
# File 'lib/bio/appl/blast/report.rb', line 182

def hits
  @iterations.last.hits
end

#hsp_lenObject

Effective HSP length



199
# File 'lib/bio/appl/blast/report.rb', line 199

def hsp_len;   statistics['hsp-len'];   end

#inclusionObject

Inclusion threshold (-h) : shortcuts for @parameters



148
# File 'lib/bio/appl/blast/report.rb', line 148

def inclusion;    @parameters['include'];          end

#kappaObject

Karlin-Altschul parameter K



203
# File 'lib/bio/appl/blast/report.rb', line 203

def kappa;     statistics['kappa'];     end

#lambdaObject

Karlin-Altschul parameter Lamba



205
# File 'lib/bio/appl/blast/report.rb', line 205

def lambda;    statistics['lambda'];    end

#matrixObject

Matrix used (-M) : shortcuts for @parameters



144
# File 'lib/bio/appl/blast/report.rb', line 144

def matrix;       @parameters['matrix'];           end

#messageObject

Returns a String (or nil) containing execution message of the last iteration (typically “CONVERGED”). Shortcut for the last iteration’s message (for checking ‘CONVERGED’)



212
213
214
# File 'lib/bio/appl/blast/report.rb', line 212

def message
  @iterations.last.message
end

#patternObject

PHI-BLAST pattern : shortcuts for @parameters



160
# File 'lib/bio/appl/blast/report.rb', line 160

def pattern;      @parameters['pattern'];          end

#sc_matchObject

Match score for NT (-r) : shortcuts for @parameters



150
# File 'lib/bio/appl/blast/report.rb', line 150

def sc_match;     @parameters['sc-match'];         end

#sc_mismatchObject

Mismatch score for NT (-q) : shortcuts for @parameters



152
# File 'lib/bio/appl/blast/report.rb', line 152

def sc_mismatch;  @parameters['sc-mismatch'];      end

#statisticsObject

Returns a Hash containing execution statistics of the last iteration. Valid keys are: ‘db-num’, ‘db-len’, ‘hsp-len’, ‘eff-space’, ‘kappa’, ‘lambda’, ‘entropy’ Shortcut for the last iteration’s statistics.



190
191
192
# File 'lib/bio/appl/blast/report.rb', line 190

def statistics
  @iterations.last.statistics
end