No need to clone Bio-Root
[bioperl-live.git] / Bio / Map / MarkerI.pm
blob19aaef6d305a7bfd9084e0f9088daf80dad74c07
2 # BioPerl module for Bio::Map::MarkerI
4 # Please direct questions and support issues to <bioperl-l@bioperl.org>
6 # Cared for by Sendu Bala <bix@sendu.me.uk>
8 # Copyright Jason Stajich
10 # You may distribute this module under the same terms as perl itself
12 # POD documentation - main docs before the code
14 =head1 NAME
16 Bio::Map::MarkerI - Interface for basic marker functionality
18 =head1 SYNOPSIS
20 # do not use this module directly
21 # See Bio::Map::Marker for an example of
22 # implementation.
24 =head1 DESCRIPTION
26 A Marker is a Bio::Map::Mappable with some properties particular to markers.
27 It also offers a number of convienience methods to make dealing with map
28 elements easier.
30 =head1 FEEDBACK
32 =head2 Mailing Lists
34 User feedback is an integral part of the evolution of this and other
35 Bioperl modules. Send your comments and suggestions preferably to
36 the Bioperl mailing list. Your participation is much appreciated.
38 bioperl-l@bioperl.org - General discussion
39 http://bioperl.org/wiki/Mailing_lists - About the mailing lists
41 =head2 Support
43 Please direct usage questions or support issues to the mailing list:
45 I<bioperl-l@bioperl.org>
47 rather than to the module maintainer directly. Many experienced and
48 reponsive experts will be able look at the problem and quickly
49 address it. Please include a thorough description of the problem
50 with code and data examples if at all possible.
52 =head2 Reporting Bugs
54 Report bugs to the Bioperl bug tracking system to help us keep track
55 of the bugs and their resolution. Bug reports can be submitted via the
56 web:
58 https://github.com/bioperl/bioperl-live/issues
60 =head1 AUTHOR - Jason Stajich
62 Email jason@bioperl.org
64 =head1 CONTRIBUTORS
66 Heikki Lehvaslaiho heikki-at-bioperl-dot-org
67 Lincoln Stein lstein@cshl.org
68 Jason Stajich jason@bioperl.org
69 Chad Matsalla bioinformatics1@dieselwurks.com
70 Sendu Bala bix@sendu.me.uk
72 =head1 APPENDIX
74 The rest of the documentation details each of the object methods.
75 Internal methods are usually preceded with a _
77 =cut
79 package Bio::Map::MarkerI;
80 use strict;
82 use base qw(Bio::Map::MappableI);
84 =head2 get_position_object
86 Title : get_position_class
87 Usage : my $position = $marker->get_position_object();
88 Function: To get an object of the default Position class
89 for this Marker. Subclasses should redefine this method.
90 The Position returned needs to be a L<Bio::Map::PositionI> with
91 -element set to self.
92 Returns : L<Bio::Map::PositionI>
93 Args : none for an 'empty' PositionI object, optionally
94 Bio::Map::MapI and value string to set the Position's -map and -value
95 attributes.
97 =cut
99 sub get_position_object {
100 my $self = shift;
101 $self->throw_not_implemented();
104 =head2 position
106 Title : position
107 Usage : my $position = $mappable->position();
108 $mappable->position($position);
109 Function: Get/Set the Position of this Marker (where it is on which map),
110 purging all other positions before setting.
111 Returns : L<Bio::Map::PositionI>
112 Args : Bio::Map::PositionI
114 Bio::Map::MapI AND
115 scalar
117 scalar, but only if the marker has a default map
119 =cut
121 sub position {
122 my $self = shift;
123 $self->throw_not_implemented();
126 =head2 positions
128 Title : positions
129 Usage : $marker->positions([$pos1, $pos2, $pos3]);
130 Function: Add multiple Bio::Map::PositionI to this marker
131 Returns : n/a
132 Args : array ref of $map/value tuples or array ref of Bio::Map::PositionI
134 =cut
136 sub positions {
137 my $self = shift;
138 $self->throw_not_implemented();
141 =head2 default_map
143 Title : default_map
144 Usage : my $map = $marker->default_map();
145 Function: Get/Set the default map for the marker.
146 Returns : L<Bio::Map::MapI>
147 Args : [optional] new L<Bio::Map::MapI>
149 =cut
151 sub default_map {
152 my $self = shift;
153 $self->throw_not_implemented();
156 =head2 in_map
158 Title : in_map
159 Usage : if ( $marker->in_map($map) ) {}
160 Function: Tests if this marker is found on a specific map
161 Returns : boolean
162 Args : a map unique id OR Bio::Map::MapI
164 =cut