annotate variant_effect_predictor/Bio/SearchIO/Writer/ResultTableWriter.pm @ 2:a5976b2dce6f

changing defualt values for ensembl database
author mahtabm
date Thu, 11 Apr 2013 17:15:42 +1000
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 # $Id: ResultTableWriter.pm,v 1.13 2002/12/05 13:46:35 heikki Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 Bio::SearchIO::Writer::ResultTableWriter - Outputs tab-delimited data for each Bio::Search::Result::ResultI object.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 =head2 Example 1: Using the default columns
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 use Bio::SearchIO;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12 use Bio::SearchIO::Writer::ResultTableWriter;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 my $in = Bio::SearchIO->new();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 my $writer = Bio::SearchIO::Writer::ResultTableWriter->new();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 my $out = Bio::SearchIO->new( -writer => $writer );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 while ( my $result = $in->next_result() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 $out->write_result($result, ($in->report_count - 1 ? 0 : 1) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 =head2 Example 2: Specifying a subset of columns
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 use Bio::SearchIO;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 use Bio::SearchIO::Writer::ResultTableWriter;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 my $in = Bio::SearchIO->new();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 my $writer = Bio::SearchIO::Writer::ResultTableWriter->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 -columns => [qw(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 query_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 query_length
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 )] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 my $out = Bio::SearchIO->new( -writer => $writer,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 -file => ">result.out" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 while ( my $result = $in->next_result() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 $out->write_result($result, ($in->report_count - 1 ? 0 : 1) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 =head2 Custom Labels
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 You can also specify different column labels if you don't want to use
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 the defaults. Do this by specifying a C<-labels> hash reference
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 parameter when creating the ResultTableWriter object. The keys of the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 hash should be the column number (left-most column = 1) for the label(s)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 you want to specify. Here's an example:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 my $writer = Bio::SearchIO::Writer::ResultTableWriter->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 -columns => [qw( query_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 query_length
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 query_description )],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 -labels => { 1 => 'QUERY_GI',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 2 => 'QUERY_LENGTH' } );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 Bio::SearchIO::Writer::ResultTableWriter outputs data in tab-delimited
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 format for each search result, one row per search result. This is a very
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 coarse-grain level of information since it only includes data
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 stored in the Bio::Search::Result::ResultI object itself and does not
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 include any information about hits or HSPs.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 You most likely will never use this object but instead will use one of
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 its subclasses: Bio::SearchIO::Writer::HitTableWriter or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 Bio::SearchIO::Writer::HSPTableWriter.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 =head2 Available Columns
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 Here are the columns that can be specified in the C<-columns>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 parameter when creating a ResultTableWriter object. If a C<-columns> parameter
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 is not specified, this list, in this order, will be used as the default.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 query_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 query_length
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 query_description
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 For more details about these columns, see the documentation for the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 corresponding method in L<Bio::Search::Result::ResultI|Bio::Search::Result::ResultI>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 =head1 FEEDBACK
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 =head2 Mailing Lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 User feedback is an integral part of the evolution of this and other
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 Bioperl modules. Send your comments and suggestions preferably to one
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 of the Bioperl mailing lists. Your participation is much appreciated.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 bioperl-l@bioperl.org - General discussion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 http://bio.perl.org/MailList.html - About the mailing lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 =head2 Reporting Bugs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 Report bugs to the Bioperl bug tracking system to help us keep track
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 the bugs and their resolution. Bug reports can be submitted via email
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 or the web:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 bioperl-bugs@bio.perl.org
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 http://bugzilla.bioperl.org/
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 =head1 AUTHOR
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 Steve Chervitz E<lt>sac@bioperl.orgE<gt>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 See L<the FEEDBACK section | FEEDBACK> for where to send bug reports
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 and comments.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 =head1 COPYRIGHT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 Copyright (c) 2001 Steve Chervitz. All Rights Reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 This library is free software; you can redistribute it and/or modify
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 it under the same terms as Perl itself.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 =head1 DISCLAIMER
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 This software is provided "as is" without warranty of any kind.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 =head1 SEE ALSO
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 L<Bio::SearchIO::Writer::HitTableWriter>,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 L<Bio::SearchIO::Writer::HSPTableWriter>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 package Bio::SearchIO::Writer::ResultTableWriter;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 use Bio::Root::Root;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 use Bio::SearchIO::SearchWriterI;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 use vars qw( @ISA );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 @ISA = qw( Bio::Root::Root Bio::SearchIO::SearchWriterI );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 # Array fields: column, object, method[/argument], printf format, column label
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 # Methods are defined in Bio::Search::Result::ResultI.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 # Tech note: If a bogus method is supplied, it will result in all values to be zero.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 # Don't know why this is.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 my %column_map = (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 'query_name' => ['1', 'result', 'query_name', 's', 'QUERY' ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 'query_length' => ['2', 'result', 'query_length', 'd', 'LEN_Q'],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 'query_description' => ['3', 'result', 'query_description', 's', 'DESC_Q'],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 sub column_map { return %column_map }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 my ($class, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 my $self = $class->SUPER::new(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 my( $col_spec, $label_spec,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 $filters ) = $self->_rearrange( [qw(COLUMNS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 LABELS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 FILTERS)], @args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 $self->_set_cols( $col_spec );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 $self->_set_labels( $label_spec ) if $label_spec;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 $self->_set_printf_fmt();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 $self->_set_row_data_func();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 $self->_set_column_labels();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 if( defined $filters ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 if( !ref($filters) =~ /HASH/i ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 $self->warn("Did not provide a hashref for the FILTERS option, ignoring.");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 while( my ($type,$code) = each %{$filters} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 $self->filter($type,$code);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 # Purpose : Stores the column spec internally. Also performs QC on the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 # user-supplied column specification.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 sub _set_cols {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 my ($self, $col_spec_ref) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 return if defined $self->{'_cols'}; # only set columns once
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 my %map = $self->column_map;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 if( not defined $col_spec_ref) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 print STDERR "\nUsing default column map.\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 $col_spec_ref = [ map { $_ } sort { $map{$a}->[0] <=> $map{$b}->[0] } keys %map ];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 if( ref($col_spec_ref) eq 'ARRAY') {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 # printf "%d columns to process\n", scalar(@$col_spec_ref);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 my @col_spec = @{$col_spec_ref};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 while( my $item = lc(shift @col_spec) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 if( not defined ($map{$item}) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 $self->throw(-class =>'Bio::Root::BadParameter',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 -text => "Unknown column name: $item"
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 push @{$self->{'_cols'}}, $item;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 #print "pushing on to col $col_num, $inner: $item\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 $self->throw(-class =>'Bio::Root::BadParameter',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 -text => "Can't set columns: not a ARRAY ref",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 -value => $col_spec_ref
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 sub _set_printf_fmt {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 my @cols = $self->columns();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 my %map = $self->column_map;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 my $printf_fmt = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 foreach my $col ( @cols ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 $printf_fmt .= "\%$map{$col}->[3]\t";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 $printf_fmt =~ s/\\t$//;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 $self->{'_printf_fmt'} = $printf_fmt;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 sub printf_fmt { shift->{'_printf_fmt'} }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 # Sets the data to be used for the labels.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 sub _set_labels {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 my ($self, $label_spec) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 if( ref($label_spec) eq 'HASH') {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 foreach my $col ( sort { $a <=> $b } keys %$label_spec ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 # print "LABEL: $col $label_spec->{$col}\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 $self->{'_custom_labels'}->{$col} = $label_spec->{$col};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 $self->throw(-class =>'Bio::Root::BadParameter',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 -text => "Can't set labels: not a HASH ref: $label_spec"
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 sub _set_column_labels {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 my @cols = $self->columns;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 my %map = $self->column_map;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 my $printf_fmt = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 my (@data, $label, @underbars);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 my $i = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 foreach my $col( @cols ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 $i++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 $printf_fmt .= "\%s\t";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 if(defined $self->{'_custom_labels'}->{$i}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 $label = $self->{'_custom_labels'}->{$i};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 $label = $map{$col}->[4];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 push @data, $label;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 push @underbars, '-' x length($label);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 $printf_fmt =~ s/\\t$//;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279 my $str = sprintf "$printf_fmt\n", @data;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 $str =~ s/\t\n/\n/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 $str .= sprintf "$printf_fmt\n", @underbars;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 $str =~ s/\t\n/\n/gs;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285 $self->{'_column_labels'} = $str;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 # Purpose : Generate a function that will call the appropriate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 # methods on the result, hit, and hsp objects to retrieve the column data
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 # specified in the column spec.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 # We should only have to go through the column spec once
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 # for a given ResultTableWriter. To permit this, we'll generate code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294 # for a method that returns an array of the data for a row of output
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 # given a result, hit, and hsp object as arguments.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 sub _set_row_data_func {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 # Now we need to generate a string that can be eval'd to get the data.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 my @cols = $self->columns();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 my %map = $self->column_map;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303 my @data;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 while( my $col = shift @cols ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 my $object = $map{$col}->[1];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 my $method = $map{$col}->[2];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 my $arg = '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 if( $method =~ m!(\w+)/(\w+)! ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309 $method = $1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 $arg = "\"$2\"";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 push @data, "\$$object->$method($arg)";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 my $code = join( ",", @data);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 if( $self->verbose > 0 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317 ## Begin Debugging
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 $self->debug( "Data to print:\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 foreach( 0..$#data) { $self->debug( " [". ($_+ 1) . "] $data[$_]\n");}
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 $self->debug( "CODE:\n$code\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 $self->debug("Printf format: ". $self->printf_fmt. "\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 ## End Debugging
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325 my $func = sub {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 my ($result, $hit, $hsp) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 my @r = eval $code;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 # This should reduce the occurrence of those opaque "all zeros" bugs.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 if( $@ ) { $self->throw("Trouble in ResultTableWriter::_set_row_data_func() eval: $@\n\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 return @r;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332 };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 $self->{'_row_data_func'} = $func;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 sub row_data_func { shift->{'_row_data_func'} }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 =head2 to_string()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 Note: this method is not intended for direct use. The
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 SearchIO::write_result() method calls it automatically if the writer
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 is hooked up to a SearchIO object as illustrated in L<the SYNOPSIS section | SYNOPSIS>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345 Title : to_string()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 Usage : print $writer->to_string( $result_obj, [$include_labels] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 Argument : $result_obj = A Bio::Search::Result::ResultI object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 : $include_labels = boolean, if true column labels are included (default: false)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352 Returns : String containing tab-delimited set of data for each hit
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 : in a ResultI object. Some data is summed across multiple HSPs.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 Throws : n/a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 #----------------
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360 sub to_string {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361 #----------------
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362 my ($self, $result, $include_labels) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 my $str = $include_labels ? $self->column_labels() : '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 my $resultfilter = $self->filter('RESULT');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 if( ! defined $resultfilter ||
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 &{$resultfilter}($result) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368 my @row_data = &{$self->{'_row_data_func'}}( $result );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369 $str .= sprintf "$self->{'_printf_fmt'}\n", @row_data;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 $str =~ s/\t\n/\n/gs;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 return $str;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 sub columns {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379 my @cols;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 if( ref $self->{'_cols'} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381 @cols = @{$self->{'_cols'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384 my %map = $self->column_map;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385 @cols = sort { $map{$a}->[0] <=> $map{$b}->[0] } keys %map;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387 return @cols;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391 =head2 column_labels
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393 Usage : print $result_obj->column_labels();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394 Purpose : Get column labels for to_string().
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395 Returns : String containing column labels. Tab-delimited.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396 Argument : n/a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397 Throws : n/a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 sub column_labels { shift->{'_column_labels'} }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403 =head2 end_report
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405 Title : end_report
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406 Usage : $self->end_report()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407 Function: The method to call when ending a report, this is
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408 mostly for cleanup for formats which require you to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409 have something at the end of the document. Nothing for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 a text message.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411 Returns : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416 sub end_report {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417 return '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420 =head2 filter
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 Title : filter
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423 Usage : $writer->filter('hsp', \&hsp_filter);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424 Function: Filter out either at HSP,Hit,or Result level
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425 Returns : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426 Args : string => data type,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427 CODE reference
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433 # Is this really needed?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434 #=head2 signif_format
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436 # Usage : $writer->signif_format( [FMT] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
437 # Purpose : Allows retrieval of the P/Expect exponent values only
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
438 # : or as a two-element list (mantissa, exponent).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
439 # Usage : $writer->signif_format('exp');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
440 # : $writer->signif_format('parts');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441 # Returns : String or '' if not set.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442 # Argument : String, FMT = 'exp' (return the exponent only)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443 # : = 'parts'(return exponent + mantissa in 2-elem list)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444 # : = undefined (return the raw value)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
445 # Comments : P/Expect values are still stored internally as the full,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
446 # : scientific notation value.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
447 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
448 #=cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
449 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
450 ##-------------
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
451 #sub signif_format {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
452 ##-------------
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
453 # my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
454 # if(@_) { $self->{'_signif_format'} = shift; }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
455 # return $self->{'_signif_format'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
456 #}
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
457
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
458 1;