BioPerl
view release on metacpan or search on metacpan
Bio/Map/PositionWithSequence.pm view on Meta::CPAN
Email bix@sendu.me.uk
=head1 APPENDIX
The rest of the documentation details each of the object methods.
Internal methods are usually preceded with a _
=cut
# Let the code begin...
package Bio::Map::PositionWithSequence;
use strict;
use base qw(Bio::Map::Position Bio::LocatableSeq);
=head2 new
Title : new
Usage : my $obj = Bio::Map::PositionWithSequence->new();
Function: Builds a new Bio::Map::PositionWithSequence object
Returns : Bio::Map::PositionWithSequence
Args : -map => Bio::Map::GeneMap object
-element => Bio::Map::Gene object
-relative => Bio::Map::GeneRelative object
-seq => string, length of this string will set the length
of this position's range
* If this position has no range, or if a single value can describe
the range *
-value => scalar : something that describes the single
point position or range of this
Position, most likely an int
* Or if this position has a range, at least two of *
-start => int : value of the start co-ordinate
-end => int : value of the end co-ordinate
-length => int : length of the range
=cut
sub new {
my ($class, @args) = @_;
my $self = $class->SUPER::new(@args);
my ($seq) = $self->_rearrange([qw( SEQ )], @args);
$self->seq($seq) if $seq;
return $self;
}
=head2 seq
Title : seq
Usage : my $string = $obj->seq();
Function: Get/set the sequence as a string of letters.
Returns : scalar
Args : Optionally on set the new value (a string). An optional second
argument presets the alphabet (otherwise it will be guessed).
=cut
sub seq {
my ($self, $str, $alpha) = @_;
# done like this because SUPER will set seq to undef if undef supplied,
# but GeneMap wants to send undef, undef, 1 to decendants of this method
my $seq;
if ($str) {
$alpha ? ($seq = $self->SUPER::seq($str, $alpha)) : ($seq = $self->SUPER::seq($str));
}
else {
$seq = $self->SUPER::seq;
}
if ($seq) {
$self->length(length($seq));
return $seq;
}
return;
}
1;
( run in 1.121 second using v1.01-cache-2.11-cpan-39bf76dae61 )