SYNOPSIS
use Zerg::Report;
my $zerg_report = new Zerg::Report("output.blastn");
while($r=$zerg_report->getReport())
{
foreach my $hit (@{$r->{hits}})
{
foreach my $hsp (@{$hit->{hsps}})
{
print "$r->{query_name} $hit->{subject_name} $hsp->{score_bits}\n";
}
}
}
$zerg_report->closeFile();
DESCRIPTION
Zerg::Report uses Zerg to parse a file - or STDIN if file is not given - containing one or multiple BLAST reports and, for each report, stores the obtained fields in a data structure made of arrays and hashes. Please consult the Zerg man page to see which fields are extracted. The method getReport() reads a BLAST report from the input file and returns a reference to a data structure like the one in the example below. When no report is found, it returns undef. It dies from syntax errors in BLAST reports with a stack backtrace. Example of a data structure returned by getReport(): $r = { 'query_name' => 'ME1-0081T-R227-B12-U.G', 'blast_version' => 'BLASTX 1.3.6 [2002-03-05]', 'byte_offset' => 4981, 'query_length' => '444', 'query_annotation' => '' 'round_begins' => [ 0, 129, 201 ], # indicates the first hit in each round of iterated blast 'hits' => [ { 'subject_annotation' => '(NC_003210) similar to cation (calcium) transporting ATPase [Listeria monocytogenes EGD-e]', 'hsps' => [ { 'query_end' => '82', 'subject_ali' => 'ASELEIFAALIECEA-GSTDYDGMLAVASVVMNRVNHRYYPDTITGVIYQSGQFSPVASGKLDKVLKRGIKSSCLEVAKDA', 'query_ali' => 'DAQTRKLAAIAYGEASGANDANEIGGIAWAVANRARAWGGK-TVDGLLAADPNYTYAVKDG-NQRYAKLMKATEAAIAADP', 'subject_end' => '328', 'identities' => '15', 'score' => '87', 'percent_positives' => '41', 'gaps' => '3', 'score_bits' => '37.9', 'alignment_length' => '81', 'evalue' => '0.40', 'percent_identities' => '18', 'positives' => '34', 'query_start' => '4', 'subject_start' => '249' } ], 'subject_length' => '880', 'subject_name' => 'gi|16802882|ref|NP_464367.1|' }, ], };
AUTHORS
Apu� Paquola <[email protected]>, Abimael Machado <[email protected]> IQ-USP Bioinformatics LabLaszlo Kajan <[email protected]>, Technical University of Munich, Germany