Ensembl/ensembl-io — pull request #1 by avullo (2014-07-11 14:04:52+00:00)
Title: Feature/blast parser

This is a parser of BLAST+ applications (e.g. blast_formatter) formatted outputs.

WARNING:
Support is only provided for a LIMITED number of ouptut formats, the column based ones.

In other words, this parser will only correctly parse output files which have been
produced by a BLAST+ application by specifying one of the following "alignment view options":

- 6: tabular
- 7: tabular with comment lines
- 10: comma-separated values

The parser's "open" method understand two arguments, the first is the name of the file to
parse, and the second is the same string as the output format given to the BLAST+ application
with the option '-outfmt'.

Valid output formats are those containing just the alignment view option with no format specifiers,
e.g. '6', '7' or '10', in which case the parser will parse the columns as if they were in
the order of the blast_formatter default format specifiers:

'seqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore',

or will parse the columns as if they were in the order specified in the open method second
argument, e.g.:

'7 qacc sacc evalue score nident pident qstart qend sstart send length positive ppos qseq sseq'

will parse qacc, sacc, ... separated by tabs.

IMPORTANT:
The parser automatically generates get_raw_[field_name] and get_[field_name] accessor methods
for [field_name], where [field_name] is the name of a format specifier specified in the output
format string.
Invoking a getter method for a field which is not in the output format raises an exception.

Tests have been done for all three supported alignment view options (6, 7 and 10). Option 7 has
been tested with the output format used by Compara in Bio::EnsEMBL::Compara::RunnableDB::BlastAndParsePAF,
and with an output format as closely as possible to that used by the Ensembl Web team in their NCBIBLAST module in the private sanger-plugins repo.