add some significant milestones
[bioperl-live.git] / Bio / Matrix / Mlagan.pm
blob001f9334475b3a827604b8ed972f73f8e18eca47
1 # $Id$
3 # BioPerl module for Bio::Matrix::Mlagan
5 # Please direct questions and support issues to <bioperl-l@bioperl.org>
7 # Cared for by Sendu Bala <bix@sendu.me.uk>
9 # Copyright Sendu Bala
11 # You may distribute this module under the same terms as perl itself
13 # POD documentation - main docs before the code
15 =head1 NAME
17 Bio::Matrix::Mlagan - A generic matrix with mlagan fields
19 =head1 SYNOPSIS
21 # See L<Bio::Matrix::Generic> for most methods.
22 # These are relevant for mlagan IO:
23 $matrix->gap_open(-400);
24 $matrix->gap_continue(-25);
26 =head1 DESCRIPTION
28 This is based on Bio::Matrix::Generic, differing by storing gap_open and
29 gap_continue data members to allow mlagan IO (see Bio::Matrix::IO::mlagan).
30 (Those values are 'outside' the matrix.)
32 It also limits the structure to a 6x6 matrix with row & column names 'A', 'C',
33 'G', 'T', '.' and 'N'.
35 =head1 FEEDBACK
37 =head2 Mailing Lists
39 User feedback is an integral part of the evolution of this and other
40 Bioperl modules. Send your comments and suggestions preferably to
41 the Bioperl mailing list. Your participation is much appreciated.
43 bioperl-l@bioperl.org - General discussion
44 http://bioperl.org/wiki/Mailing_lists - About the mailing lists
46 =head2 Support
48 Please direct usage questions or support issues to the mailing list:
50 I<bioperl-l@bioperl.org>
52 rather than to the module maintainer directly. Many experienced and
53 reponsive experts will be able look at the problem and quickly
54 address it. Please include a thorough description of the problem
55 with code and data examples if at all possible.
57 =head2 Reporting Bugs
59 Report bugs to the Bioperl bug tracking system to help us keep track
60 of the bugs and their resolution. Bug reports can be submitted via the
61 web:
63 http://bugzilla.open-bio.org/
65 =head1 AUTHOR - Sendu Bala
67 Email bix@sendu.me.uk
69 =head1 APPENDIX
71 The rest of the documentation details each of the object methods.
72 Internal methods are usually preceded with a _
74 =cut
76 package Bio::Matrix::Mlagan;
77 use strict;
79 use base qw(Bio::Matrix::Generic);
82 =head2 new
84 Title : new
85 Usage : my $obj = Bio::Matrix::Generic->new();
86 Function: Builds a new Bio::Matrix::Generic object
87 Returns : an instance of Bio::Matrix::Generic
88 Args : -values => arrayref of arrayrefs of data initialization
89 -matrix_id => id of the matrix
90 -matrix_name => name of the matrix
91 -matrix_init_value => default value to initialize empty cells
92 -gap_open => gap open penalty (int)
93 -gap_continue => gap continue penalty (int)
95 NB: -rownames and -colnames should not be given here, since they are
96 always being set to 'A', 'C', 'G', 'T', '.' and 'N'.
98 =cut
100 sub new {
101 my($class, @args) = @_;
102 my %args = (@args, -rownames => [qw(A C G T . N)],
103 -colnames => [qw(A C G T . N)]);
104 my $self = $class->SUPER::new(%args);
106 $self->_set_from_args(\@args, -methods => [qw(gap_open gap_continue)]);
108 return $self;
111 =head2 gap_open
113 Title : gap_open
114 Usage : $obj->gap_open(-400);
115 Function: Get/set the gap open amount.
116 Returns : int
117 Args : none to get, OR int to set
119 =cut
121 sub gap_open {
122 my $self = shift;
123 if (@_) { $self->{gap_open} = shift }
124 return $self->{gap_open} || return;
127 =head2 gap_continue
129 Title : gap_continue
130 Usage : $obj->gap_continue(-25);
131 Function: Get/set the gap continue amount.
132 Returns : int
133 Args : none to get, OR int to set
135 =cut
137 sub gap_continue {
138 my $self = shift;
139 if (@_) { $self->{gap_continue} = shift }
140 return $self->{gap_continue} || return;
143 =head2 add_row
145 Title : add_row
146 Usage : Do not use
147 Function: This generic method is not suitable for mlagan, where the number of
148 rows is fixed.
149 Returns : Warning
150 Args : none
152 =cut
154 sub add_row {
155 shift->warn("Mlagan matricies are fixed at 6x6");
158 =head2 remove_row
160 Title : remove_row
161 Usage : Do not use
162 Function: This generic method is not suitable for mlagan, where the number of
163 rows is fixed.
164 Returns : Warning
165 Args : none
167 =cut
169 sub remove_row {
170 shift->warn("Mlagan matricies are fixed at 6x6");
173 =head2 add_column
175 Title : add_column
176 Usage : Do not use
177 Function: This generic method is not suitable for mlagan, where the number of
178 columns is fixed.
179 Returns : Warning
180 Args : none
182 =cut
184 sub add_column {
185 shift->warn("Mlagan matricies are fixed at 6x6");
188 =head2 remove_column
190 Title : remove_column
191 Usage : Do not use
192 Function: This generic method is not suitable for mlagan, where the number of
193 columns is fixed.
194 Returns : Warning
195 Args : none
197 =cut
199 sub remove_column {
200 shift->warn("Mlagan matricies are fixed at 6x6");