Bio::Map Position
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Summary
Bio::Map::Position - A single position of a Marker in a Map
Package variables
No package variables defined.
Included modules
Bio::Map::PositionI
Bio::Root::Root
Inherit
Bio::Map::PositionI Bio::Root::Root
Synopsis
    use Bio::Map::Position;
    my $position = new Bio::Map::Position(-map => $map, 
					  -marker => $marker
					  -value => 100
					  );
Description
This object is an implementation of the PositionI interface that
handles the specific values of a position. This allows an element
(e.g. Marker) to have multiple positions within a map and still be
treated as a single entity.
This does not directly handle the concept of a relative map in which
no known exact positions exist but markers are just ordered relative
to one another - in that case arbitrary values must be assigned for
position values.
No units are assumed here - units are handled by context of which Map
a position is placed in or the subclass of this Position.
Methods
newDescriptionCode
mapDescriptionCode
markerDescriptionCode
valueDescriptionCode
numericDescriptionCode
Methods description
newcode    nextTop
 Title   : new
 Usage   : my $obj = new Bio::Map::Position();
 Function: Builds a new Bio::Map::Position object 
 Returns : Bio::Map::Position
 Args    : -map     a  object
           -marker  a  object
           -value   string or number
mapcodeprevnextTop
 Title   : map
 Usage   : my $id = map->$map;
 Function: Get/Set the map the position is in.
 Returns : Bio::Map::MapI
Args : [optional] new Bio::Map::MapI
markercodeprevnextTop
 Title   : marker
 Usage   : my $id = marker->$marker;
 Function: Get/Set the marker the position is in.
 Returns : Bio::Map::MarkerI
Args : [optional] new Bio::Map::MarkerI
valuecodeprevnextTop
 Title   : value
 Usage   : my $pos = $position->value;
 Function: Get/Set the value for this postion
 Returns : scalar, value
 Args    : [optional] new value to set
numericcodeprevnextTop
 Title   : numeric
 Usage   : my $num = $position->numeric;
 Function: Read-only method that is guarantied to return a numeric 
           representation for this position. 
 Returns : numeric (int or real) 
 Args    : none
Methods code
newdescriptionprevnextTop
sub new {
    my($class,@args) = @_;
    my $self = $class->SUPER::new(@args);
  
    my ($map, $marker, $value) = 
	$self->_rearrange([qw( MAP 
			       MARKER 
			       VALUE
			       )], @args);

    $map     && $self->map($map);
    $marker  && $self->marker($marker);
    $value   && $self->value($value);

    return $self;
}
mapdescriptionprevnextTop
sub map {
   my ($self,$map) = @_;
   if( defined $map ) {
       $self->throw("This is [$map], not a Bio::Map::MapI object")
	   unless $map->isa('Bio::Map::MapI');
       $self->{'_map'} = $map;
   }
   return $self->{'_map'};
}
markerdescriptionprevnextTop
sub marker {
   my ($self,$marker) = @_;
   if( defined $marker ) {
       $self->thow("This is [$marker], not a Bio::Map::MarkerI object")
	   unless $marker->isa('Bio::Map::MarkerI');
       $self->{'_marker'} = $marker;
   }
   return $self->{'_marker'};
}
valuedescriptionprevnextTop
sub value {
   my ($self,$value) = @_;
   if( defined $value ) {
       $self->{'_value'} = $value;
   }
   return $self->{'_value'};
}
numericdescriptionprevnextTop
sub numeric {
   my ($self) = @_;
   my $num = $self->{'_value'} || 0;

   # expand this to cover scientific notation, too!
$self->throw("This value [$num] is not numeric!") unless $num && $num =~ /^[+-]?[\d.]+$/; return $num;
}
General documentation
FEEDBACKTop
Mailing ListsTop
User feedback is an integral part of the evolution of this and other
Bioperl modules. Send your comments and suggestions preferably to
the Bioperl mailing list. Your participation is much appreciated.
  bioperl-l@bioperl.org              - General discussion
  http://bioperl.org/MailList.shtml  - About the mailing lists
Reporting BugsTop
Report bugs to the Bioperl bug tracking system to help us keep track
of the bugs and their resolution. Bug reports can be submitted via
email or the web:
  bioperl-bugs@bioperl.org
  http://bugzilla.bioperl.org/
AUTHOR - Jason StajichTop
Email jason@bioperl.org
Describe contact details here
CONTRIBUTORSTop
Lincoln Stein, lstein@cshl.org
Heikki Lehvaslaiho, heikki@ebi.ac.uk
Chad Matsalla, bioinformatics1@dieselwurks.com
APPENDIXTop
The rest of the documentation details each of the object methods.
Internal methods are usually preceded with a _