Bio::S...eWriter(3pm)
π NAME π
Bio::SearchIO::Writer::HitTableWriter β tab-delimited data for Bio::Search::Hit::HitI objects. π
okay bestie so you've landed on the Bio::SearchIO::Writer::HitTableWriter(3pm) page, straight out of the User Contributed Perl Documentation, and honestly? it's lowkey one of the most useful little writers in the whole SearchIO squad. it takes your search results and turns every Hit into one cute tidy tab-delimited row. let's get into it β¨
π SYNOPSIS π
Example 1: Using the default columns
use Bio::SearchIO;
use Bio::SearchIO::Writer::HitTableWriter;
my $in = Bio::SearchIO->new();
my $writer = Bio::SearchIO::Writer::HitTableWriter->new();
my $out = Bio::SearchIO->new( -writer => $writer );
while ( my $result = $in->next_result() ) {
$out->write_result($result, ($in->report_count - 1 ? 0 : 1) );
}
Example 2: Specifying a subset of columns
like, what if you don't want ALL the columns? totally valid, bestie, you pick:
use Bio::SearchIO;
use Bio::SearchIO::Writer::HitTableWriter;
my $in = Bio::SearchIO->new();
my $writer = Bio::SearchIO::Writer::HitTableWriter->new(
-columns => [qw(
query_name
query_length
hit_name
hit_length
frac_identical_query
expect
)] );
my $out = Bio::SearchIO->new( -writer => $writer,
-file => ">searchio.out" );
while ( my $result = $in->next_result() ) {
$out->write_result($result, ($in->report_count - 1 ? 0 : 1) );
}
Custom Labels
you can also rename your column headers if the defaults aren't your vibe. π you do this by passing a -labels hash reference parameter when you create the HitTableWriter object. the keys of that hash have to be the column number (left-most column = 1, iykyk) for whichever label(s) you want to specify. here's the example:
my $writer = Bio::SearchIO::Writer::HitTableWriter->new(
-columns => [qw( query_name
query_length
hit_name
hit_length )],
-labels => { 1 => 'QUERY_GI',
3 => 'HIT_IDENTIFIER' } );
πΈ DESCRIPTION πΈ
Bio::SearchIO::Writer::HitTableWriter spits out summary data for every single Hit inside a search result. output is tab-delimited, one row per Hit. periodt. π
the reason it's called summary data (and not me just being dramatic) is this: if a hit contains multiple HSPs, those HSPs get tiled and the data you see is a summary across all of them. which columns are affected? see below, bestie. and for the full tea on HSP tiling, go read the docs in Bio::Search::Hit::BlastHit. π
Available Columns
here's every column you can drop into the -columns parameter when you build a HitTableWriter object. and heads up: if you don't pass -columns at all, this exact list, in this exact order, is the default. no cap. π
query_nameβ Sequence identifier of the query.query_lengthβ Full length of the query sequencehit_nameβ Sequence identifier of the hithit_lengthβ Full length of the hit sequenceroundβ Round number for hit (PSI-BLAST)expectβ Expect value for the alignmentscoreβ Score for the alignment (e.g., BLAST score)bitsβ Bit score for the alignmentnum_hspsβ Number of HSPs (not the "N" value)frac_identical_query*β fraction of identical substitutions in queryfrac_identical_hit*β fraction of identical substitutions in hitfrac_conserved_query*β fraction of conserved substitutions in queryfrac_conserved_hit*β fraction of conserved substitutions in hitfrac_aligned_query*β fraction of the query sequence that is alignedfrac_aligned_hit*β fraction of the hit sequence that is alignedlength_aln_query*β Length of the aligned portion of the query sequencelength_aln_hit*β Length of the aligned portion of the hit sequencegaps_query*β Number of gap characters in the aligned query sequencegaps_hit*β Number of gap characters in the aligned hit sequencegaps_total*β Number of gap characters in the aligned query and hit sequencesstart_query*β Starting coordinate of the aligned portion of the query sequenceend_query*β Ending coordinate of the aligned portion of the query sequencestart_hit*β Starting coordinate of the aligned portion of the hit sequenceend_hit*β Ending coordinate of the aligned portion of the hit sequencestrand_queryβ Strand of the aligned query sequencestrand_hitβ Strand of the aligned hit sequenceframeβ Frame of the alignment (0,1,2)ambiguous_alnβ Ambiguous alignment indicator ('qs', 'q', 's')hit_descriptionβ Full description of the hit sequencequery_descriptionβ Full description of the query sequencerankβ The rank order of the hitnum_hitsβ Number of hits for the query finding this hit
β the ones marked with a * report data summed across all HSPs after tiling them β that's so we don't count data from overlapping regions multiple times. iconic behavior honestly.
for more deets about any of these columns, peek at the documentation for the corresponding method in Bio::Search::Result::BlastHit.
π¦ TODO π¦
Figure out the best way to incorporate algorithm-specific score columns. The best route is probably to have algorithm-specific subclasses (e.g., BlastHitTableWriter, FastaHitTableWriter).
(manifesting this one, bestie π)
π FEEDBACK π
Mailing Lists
User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to one of the Bioperl mailing lists. Your participation is much appreciated. π«Ά
bioperl-l@bioperl.org - General discussion
http://bioperl.org/wiki/Mailing_lists - About the mailing lists
Support
Please direct usage questions or support issues to the mailing list:
bioperl-l@bioperl.org
rather than to the module maintainer directly. Many experienced and responsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.
Reporting Bugs
Report bugs to the Bioperl bug tracking system to help us keep track the bugs and their resolution. Bug reports can be submitted via the web:
https://github.com/bioperl/bioperl-live/issues
π AUTHOR π
Steve Chervitz <sac@bioperl.org>
See the FEEDBACK section for where to send bug reports and comments.
π COPYRIGHT π
Copyright (c) 2001, 2002 Steve Chervitz. All Rights Reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
π DISCLAIMER π
This software is provided "as is" without warranty of any kind.
π§ SEE ALSO π§
Bio::SearchIO::Writer::HitTableWriter, Bio::SearchIO::Writer::ResultTableWriter
β¨ METHODS β¨
to_string()
β οΈ heads up bestie: this method is not intended for direct use. TheSearchIO::write_result()method calls it automatically if the writer is hooked up to aSearchIOobject as illustrated in the SYNOPSIS section.
- Title:
to_string() - Usage:
print $writer->to_string( $result_obj, [$include_labels] ); - Argument:
$result_obj= ABio::Search::Result::BlastResultobject - Argument:
$include_labels= boolean, if true column labels are included (default:false) - Returns: String containing tab-delimited set of data for each hit in a
BlastResultobject. Some data is summed across multiple HSPs. - Throws: n/a
end_report
- Title:
end_report - Usage:
$self->end_report() - Function: The method to call when ending a report, this is mostly for cleanup for formats which require you to have something at the end of the document. Nothing for a text message.
- Returns: string
- Args: none
filter
- Title:
filter - Usage:
$writer->filter('hsp', \&hsp_filter); - Function: Filter out either at HSP,Hit,or Result level
- Returns: none
- Args: string => data type, CODE reference
okay that's the whole page, bestie, you ate it π
β¨ this was Bio::S...eWriter(3pm), page generated by perl v5.32.1 on 2021-08-15, and yeah the title got truncated by the terminal so it looks a little mysterious, but you know exactly what it is now. go write some tab-delimited files. mwah ππ¦π
π¦ where this page comes from
- debian bookworm: libbio-perl-perl 1.7.8-1 Β· Perl
- debian trixie: libbio-perl-perl 1.7.8-1 Β· Perl
- ubuntu jammy: libbio-perl-perl 1.7.8-1 Β· Perl
- ubuntu noble: libbio-perl-perl 1.7.8-1 Β· Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms