Revision history for Perl extension Bio::Tools::Blast.pm and related modules.
0.091 Thu May 18 15:15:35 2000
(These fixes were made on both branch-06 and the main trunk).
- Fixed Webblast.pm (jitterbug PR #220). It now uses SeqIO and IO::Scalar
for sending formatted query sequence data to the BLAST servers.
- Fixed the examples/blast/ scripts related to remote BLASTing.
- Added single quotes to an '_expect' data member in Sbjct
(reported by Janet Young in jitterbug PR #218).
- Fixed regexp bug in Blast::HTML.pm that caused accessions with
. and _ characters to not be recognized.
0.09 Wed Mar 22 00:44:01 2000
- Handles Blast reports that don't contain description sections.
- Handles parsing of NCBI 2.0.9 Blast2 reports.
- Identifiers of hits are assumed to be the first
chunk of non-whitespace characters in the description line
Does not assume any semantics in the structure of the identifier.
(Blast::Sbjct::_set_id() formerly attempted to extract database
name from the seq identifiers, but this was prone to breaking).
- Fixed bug in the parsing of reports that lack an hits
(incorporated code fix submitted by Michael B. Thornton
jitterbug PR#114, PR#173).
- New helper script retrieve_blast.pl added to examples/blast/
for retrieving Blast reports from NCBI after running
run_blast_remote.pl See docs in retrieve_blast.pl for details.
- Updated Webblast.pm with new URLs for the NCBI servers.
- Fixed bug (jitterbug PR#84) in the parsing of alignments that would
cause occaisionally cause some significant hits to be missed
(incorporates code suggested by Peter van Heusden).
- Added support to Blast.pm for not parsing alignment data
using the new NO_ALIGNS parsing option. Also added -noaligns
command-line option to blast_config.pl (addresses jitterbug PR#93).
- Blast::hit() method doesn't blow up if there are no hits
(fixes jitterbug PR#129).
- Addressed jitterbug PR#96 by correcting docs. If the significance
is defined but of bad format, no default is set.
- HSP.pm properly handles bit scores expressed using floating point
and scientific notation (fixes jitterbug report PR#110).
- Fixed logic error in HSP.pm that would incorrectly throw an
exception when the number of identical residues was zero
(fixes jitterbug PR#164).
- HSP::strand() returns -1, 0, 1 instead of 'Minus', 'Plus', ''
to be in-line with with behavior of SeqFeature.
Fixes within Bio::Root
----------------------
- Fixed bug reported in PR#85. Bio::Root::Utilities::get_newline()
returns "\n" by default.
- IOManager::read doesn't call alarm() if it isn't available
(fixes bug #PR98).
- Root::Object::_set_io() does not pass @_ to the IOManager constructor
call (incorporates suggestion from Scot Harker, jitterbut PR#192).
0.085 Tue Jun 29 05:15:40 1999 (bioperl 0.05.1)
(Note: the $VERSION variable was not changed to 0.085 in this release!)
- Fixed bugs reported in PR#s: 30, 31, 41, 44, 45, 47, 48
- Blast.pm no longer throws exceptions for hitless reports,
even if a -signif criterion is specified.
- Better support for PSI Blasts (running and parsing) based on
comments/suggestions from Ross Crowhurst and Lu Sun.
- Bug fixes in Webblast.pm regarding blastServerURL and filenames
with special characters (bug reports from James Diggans and
Bradford Powell, respectively).
- Removed =head3 tags that were causing pod2man warnings.
- Fixed -best parsing switch.
- Added better POD to Webblast.pm
0.080 Sat Apr 24 19:39:37 1999 (bioperl 0.05)
- Complete re-implementation of the Blast report parsing strategy.
The parser now always streamifies all Blast report(s) and
segments them hit-wise instead of report-wise. This improves
performance and memory usage (but doesn't solve the memory leak).
- Documented a workaround for the memory leak (see the docs for
Blast.pm under the section "Memory Usage Issues").
- Webblast.pm now uses LWP instead of postclient.pl to post network
Blast requests (thanks to Ross Crowhurst for code submission).
This is a much more robust mechanism, although it now requires you
to have LWP installed ("a good thing"). For example, it makes it
easy to send requests and receive results through a firewall.
It can run Blast1, Blast2, and PSI-Blast at NCBI and also supports
WashU-Blast servers.
- Fixed some miscellaneous parsing bugs and errors reported by
Greg Colello, Xie Tao, and Richard Copley from the pre-release
- Updated example/blast scripts. Renamed parse.pl and parse2.pl to
parse_blast.pl and parse_blast2.pl. parse_stream.pl is gone
(since parse_blast.pl now handles both files and streams).
Renamed run.pl to run_blast_remote.pl and added additional
options to keep it in synch with the new Webblast.pm.
0.075 Wed Feb 17 01:29:57 1999 (bioperl 0.04.4)
- Bug fix in Blast::Run::postclient.pl which was always printing
usage information (reported by Ross Crowhurst).
- Improved error detection & reporting in Blast::Run::Webblast
and Blast::Run::postclient.pl.
- Bug fixes in HSP.pm: _set_match_stats() now properly handles
BLASTN output format and matches() properly handles BLASTX
reports.
- Fixed detection of substitution matrix type in Blast.pm.
- Updated Blast example scripts in examples/blast/
(in particular, run.pl).
0.074 Wed Feb 3 04:10:06 1999 (bioperl 0.04.3)
- Modified blast_config.pl to make the -prog and -db command-line
arguments mandatory. There are no default values for $opt_blast
and $opt_db. Also removed the -dna command-line argument.
- Fixed alignment section parsing bug in Blast.pm (bug report #24);
affects _parse_hsp_string().
- Modified Blast::_display_hits() to use table_tiled(), thus
avoiding the buggy Sbjct::_display_hits().
- Bug fix in Blast::HTML.pm regarding detection of HTML formatting.
- Changes in HSP::_set_data() to support BLAST-GP version 2.0.8.
- Changed the #! line of Bio/Tools/Blast/Run/postclient.pl
to the more standard /usr/bin/perl and predeclared some vars
to avoid compiler warnings.
- blast_config.pl and seqtools.pl were modified to include support
for the -wait option (sets timeout during file/stream reading).
- Assorted touch-ups to example/blast scripts.
0.073 Mon Dec 28 15:18:29 1998 (bioperl 0.04.2)
- Made changes in Sbjct.pm and HSP.pm to allow parsing of older
versions of Blast. This affected HSP::_set_data() ("Query:?")
and Sbjct::_set_hsps() ("\s*Score").
- Improved error handling in Sbjct::_set_hsps() and error
detection in HSP_set_data().
- Added methods for obtaining the number of identical and conserved
residues (sans gaps) sequences in HSP.pm (num_identical,
num_conserved).
- Modified the default behavior of frac_identical() and
frac_conserved() to use the procedure used in the BLAST report:
BLAST-GP: uses total length of alignment in denominator
WU-BLAST: uses length of query sequence (sans gaps) in denominator.
When these methods are called with an argument ('sbjct' or 'query'),
the length of the sbjct or query sequence (sans gaps) is used in
the denominator (recommended).
- Fixed error in test #29 in the t/Blast.t test script.
0.072 Wed Dec 16 05:05:21 1998 (bioperl 0.04.1)
- Fixed out of range exception in HSP::matches() as suggested by
Michael Lonetto in bio.perl.org bug report #11.
- Made changes in Sbjct.pm and HSP.pm to deal with the reporting of
TBLAST[NX] data in amino acid coordinate space. This affects
frac_identical() and frac_conserved() in HSP.pm, and _tile_hsps(),
length_aln(), frac_aligned_query(), frac_aligned_hit(),
frac_unaligned_query(), frac_unaligned_hit() in Sbjct.pm.
These also in response to bug report #11.
- Fixed behavior of frac_identical() and frac_aligned() in
both Sbjct.pm and HSP.pm to correspond to the data reported
by Blast. Default behavior now includes gaps instead of ignoring
them as before. This was in response to a report by Eli Venter.
- Cleaned up a few "uninitialized value" warnings.
0.071 Thu Dec 10 18:41:51 1998 (bioperl 0.04)
- Bio::Tools::Blast::Sbjct::_set_id() to no longer uppercases
sequence ids for sbjct sequences. (Note however that the Blast
dataset may have been built with a tool that uppercases all
sequence ids. Check your raw Blast report.).
- Bio::Tools::Blast::HTML.pm incorporates the new URL for
information about the Bioperl Blast module.
0.07 Thu Dec 3 13:43:06 1998
- Reduced memory leak that becomes apparent when parsing many Blast
reports. This resulted in changes to Bio::Tools::Blast::_get_parse_func()
and the addition of a new function to Bio::Root::Object.pm that
explicitly breaks cyclic object reference structures.
(This problem was highlighted by recently Lincoln Stein, who is has
created a BoulderIO-based Blast parser. See BoulderIO-1.10 or later).
- Fixed support in blast_config.pl for supplying a custom filtering
function as a string using the -filt_func command-line option.
Added some examples of this to the parse.pl example script.
- Added start() and end() methods to Bio::Tools::Blast::HSP
and Bio::Tools::Blast::Sbjct.pm. Sbjct also received a range()
method (based on discussion with Ewan Birney).
- Fixed bugs in Blast.pm related to accessing the name of the
database, expecially in conjunction with stream parsing.
- A few fixes in Blast.pm and Sbjct regarding handling of
hit sequence and database names (reported by John Calley and
and Karl-Heinz Ott).
- Fixed regexp in Blast::_parse_hsp_data (reported by Brian Karlak).
- Added columns for start/end of the query/sbjct sequences to the
table_tiled() output. Added columns for HSP query/sbjct strand
and frame information to the table() output.
- Changes in Bio::Root::Object.pm regarding strict() and verbose()
which are no longer object-specific.
- Increased documentation in Bio::Root::Object.pm.
- Removed autoloading and several deprecated methods from the
Bio::Root::Object and Utilities.
0.062 Fri Sep 4 00:45:05 1998
- Fixed bugs in Blast::_set_hits() which caused no hits to be
saved when _parse_hsp_data() threw an exception.
- Assorted documentation changes. This includes a fix in
the docs of Bio::Root::Object.pm that caused a compilation error
when you try to use it without installing it via Makefile.PL.
Most modules now have docs for data members in their PODs.
- Added method strip_html() to Bio::Tools::WWW.pm (a more general
version than that found in Bio::Tools::Blast::HTML.pm).
- Includes Bio::Seq.pm version 0.050 (formerly Bio::PreSeq.pm).
This version has Ewan Birney's modifications (start() and end()
methods added; numbering() now deprecated).
- By popular demand, Bio::Root::Object::src_obj() has been changed
to the more intuitive parent(). All modules have been updated to
incorporate this change.
0.061 Wed Aug 26 12:30:34 1998
- Fixed memory leak problem associated with Blast::_set_hits() that
lead to excessive memory usage when parsing large numbers reports,
expecially when using the -check_all=>1 parsing option.
(This may have solved the parse_stream.pl memory leak.)
- Fixed regexp in Sbjct::_set_hsps() to recognize sequence lengths
containing commas (reported by Lincoln Stein).
- Blast::signif() now always returns number in scientific notation.
- Fixed bug in Bio::Root::IOManager::display() (wasn't returning true).
- Changed Makefile.PL to always save backups for in-place edits
and prevents the 'inplace edit without backup' warning (reported by
Bobby Otillar).
- Assorted documentation changes/additions.
0.06 Sun Aug 16 18:31:27 1998
- Fixed bug in HSP::_set_match_stats() that failed to recognize Frames
on the + strand.
- Added HSP::strand() method for retrieval of strand information for
query and sbjct HSP sequences from nucleotide Blasts.
- Changed calls to Perl's length() function to CORE::length()
to avoid confusing the Perl 5.005_001 interpreter with
Bio::Tools::HSP::length() and Bio::Tools::Sbjct::length().
(Reported by Mike Cariaso).
- Added column to the output of the Blast::table_tiled() method
to include fraction-aligned of the sbjct sequence.
- Uses new version of Bio::Root::Object.pm that has new exception
handling policy: exceptions and warnings are no longer by default
attached to the objects that threw them. See notes about this in
Bio::Root::Object.pm. (Main reason for 0.003-point jump in version).
- Added some safety net methods in Sbjct.pm: frac_aligned_sbjct()
and num_unaligned_sbjct(), which map to frac_aligned_hit() and
num_unaligned_hit(), respectively (API consistency issue).
- Minor changes/fixes in some of the demo scripts (seqtools.pl et al.).
- Removed "Modifications" notes from Blast-related modules. Added
pointer to distribution site instead, which consolidates this info.
- Modules can be used by copying directly from the lib/ directory into
your perl/lib directory without loss of functionality but at the expense of
increased startup time. It is still recommended that you use the standard
Makefile.PL procedure, however, since this will properly autosplit
the modules as well as run other checks.
0.057 Thu Jul 23 02:28:26 1998
- HSP.pm handles "match" sequence lines that are not properly padded.
Affects HSP::_set_data() and other HSP.pm methods that use residue
strings or indices (seq_str(), seq_inds()). (Reported by Libby Shoop).
- Added signif_fmt() method to Blast.pm to allow retrieval of
P/Expect value data in different formats (e.g., exponent only).
- Changes in the table() methods of Blast.pm to accomodate signif_fmt().
- Minor changes in destructors to improve memory management.
- Added warnings in Blast.pm and parse_stream.pl regarding
memory usage issue when parsing Blast streams.
- Updated HTML::get_html_func() to work with the new version of
Bio::Root::IOManager::read().
- Added new rexexps to HTML::_markup_report() to deal with hits
which lack a database identifier (e.g., gi|210095).
Added a few other SGD-specific markups to this method.
- New demo script "parse_multi.pl" provided as an alternative to the
memory-hungry parse_stream.pl when crunching many reports.
- Minor changes to parsing demo scripts and blast_config.pl.
- Added more tests to the t/blast.t test script.
- Small change in error handling in Webblast::_blast(): detects
when the Blast report file is empty and unlinks it.
- When the -email option is used, the list of files returned by
blast_remote() contains the string 'email' as the first element.
This provides a signal to Bio::Tools::Blast.pm.
0.056 Wed Jul 15 03:42:20 1998
- Fixed bug in HSP::seq_str() in which white space was not removed
from sequences generated by merging multiple lines, leading
to excessive warnings when building Bio::PreSeq objects.
This also involved related fixes in Bio::PreSeq.pm and
Bio::Root::Utilities.pm (q.v.). (Reported by Tim Dudgeon).
- Fixed bug in PreSeq.pm that caused bounds checking to fail
incorrectly when sequence numbering does not begin at 1.
- Uncompressing Blast reports no longer requires write access
in the directory containing the compressed files.
- Added another example script eg/blast/parse2.pl.
- Bio::Root::IOManager::read() now requires the supplied parsing
function reference to return true for each record parsed
(otherwise parsing stops).
0.055 Tue Jun 23 13:56:34 1998
- Fixed parsing problems for hit sequences without descriptions
or without database identifiers. This affected
Blast::_parse_hsp_data() and in Sbjct.pm, the methods
_set_id(), _set_desc(), and _set_hsps(). Most seriously,
_set_hsps() failed to locate the 'Length = ' line for
sequences without descriptions.
- Parses parameter data from NCBI Blast 2.0.5 (format change from 2.0.4)
This affected Blast::_set_parameters() and Blast::_parse_hsp_data().
(Reported by Elliot Lefkowitz.)
- Minor change in HSP::_set_seq() regexp for identifying sequence data.
- Table output methods remove tabs from ends of lines.
- Updated Bio::Tools::Blast::HTML.pm to work with the
new version of read() updated in 0.054.
- Improved file_date() method of Bio::Root::Utilities.pm
0.054 Tue Jun 16 20:24:36 1998
- Minor change in the way Bio::Root::IOManager::read() works
(now checks return value of called func ref). Only affects
module internals.
- Minor changes in eg/ scripts and some documentation additions.
- Fixed a bug in Makefile.PL regarding detection of UnivAln.pm.
0.053 Fri Jun 12 20:55:27 1998
- Added the "collapse" functionality to the seq_inds() method of
HSP.pm and added a seq_inds() method to Sbjct.pm.
- Added a new demo script eg/blast/parse_positions.pl.
- Remove the "-residues" and "-tile_hsps" parsing options since
they are not necessary.
0.052 Thu Jun 11 20:18:45 1998
- Minor bug fixes in I/O methods.
- Improved documentation for Bio::Root modules.
- Miscellaneous documentation additions.
0.051 Wed Jun 10 12:26:06 1998
- Bio::Tools::Blast::HSP.pm does some additional deferring of
sequence data processing for a slight performance enhancement.
- Fixed formatting bug in Bio::Tools::Blast::HTML.pm that caused
uneven formatting of some description lines.
- Minor bug fixes in parsing code of Bio::Tools::Blast.pm.
- Some documentation additions.
- Makefile prints warning if Perl version is < 5.003.
0.05 Fri Jun 5 15:58:22 1998
- Improved gapped Blast support.
- Enhanced IO (reads from existing file or STDIN).
- Enhanced parsing: can parse an input stream containing
many reports.
- Created modularized version of Alex Dong Li's webblast.
- Added support for running Blasts remotely at NCBI using
Bio::Tools::Blast::Run::Webblast.pm.
- Added support for running local Blasts using the skeletal
Bio::Tools::Blast::Run::LocalBlast.pm.
_ Bio::Tools::Blast::HSP.pm can create Bio::PreSeq.pm sequence
objects and Bio::UnivAln.pm sequence alignment objects on demand.
- Encapsulated HTML-formatting code into the new module
Bio::Tools::Blast::HTML.pm. Updated markup regexps.
- Blast.pm module can parse HTML-formatted reports
(but beware of unforseen changes in the HTML!).
- Enhanced tab-delimited table output methods.
- Improved documentation: compatible with 5.004 pod2html.
- Created a variety of demo scripts (see eg/blast/)
- Miscellaneous bug fixes and API adjustments..
- Bundled for distribution with MakeMaker and created test sript.
0.03 Fri Mar 27 23:35:32 1998
- Support for gapped Blast added.
- Improved parsing strategy.
- Inherits from Bio::Tools::SeqAnal.pm instead of Bio::Root::Object.pm
- Added more documentation.
- Miscellaneous bug fixes.
0.01 March 1996
- original version.
- Parses Blast 1.x report files.